Skip to content

org.mozilla.javascript.EcmaError: ReferenceError for function #19

@ghost

Description

Consider this code:

var lib = {
	foo: function(node) {
		logger.debug("" + node.name);
	}
};

var sql = "select 'workspace://SpacesStore/af9f95ac-dfdd-4787-b044-22e2026c4e74'"; // some existing NodeRef

var result = database.query("dataSource", sql);

var nodesToMigrate = [];

for each (var row in result) {
    var node = search.findNode(row[0]);
    if (!node || !node.exists()) {
        continue;
    }
    nodesToMigrate.push(node);
}

var process = function process(node) {
    logger.info("processing " + node.typeShort + " " + node.nodeRef);

    // calling function from `lib` fails!
    lib.foo(node);
};

var beforeProcessFunction = function beforeProcess() {
};

var afterProcessFunction = function afterProcess() {
};

batch.runForNodes('Process-', 2, 10, nodesToMigrate, process, true, beforeProcessFunction, afterProcessFunction);

Observed Behaviour

This will throw

Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "lib" is not defined. (AlfrescoJS#4)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
        at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3750)
        at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1728)
        at org.mozilla.javascript.gen.AlfrescoJS_108._c_process_1(AlfrescoJS:4)
        at org.mozilla.javascript.gen.AlfrescoJS_108.call(AlfrescoJS)
        at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:63)
        at org.mozilla.javascript.gen.AlfrescoJS_108._c_script_0(AlfrescoJS:7)
        at org.mozilla.javascript.gen.AlfrescoJS_108.call(AlfrescoJS)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
        at org.mozilla.javascript.gen.AlfrescoJS_108.call(AlfrescoJS)
        at org.mozilla.javascript.gen.AlfrescoJS_108.exec(AlfrescoJS)
        at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:502)
        ... 29 more

Expected Behaviour

The lib.foo function is executed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions