Lorand Bendig created PIG-3969: ---------------------------------- Summary: Javascript UDF fails if no outputschema is defined Key: PIG-3969 URL: https://issues.apache.org/jira/browse/PIG-3969 Project: Pig Issue Type: Bug Affects Versions: 0.12.0 Reporter: Lorand Bendig Assignee: Lorand Bendig Fix For: 0.14.0
Example to reproduce the issue: {code} cat simple.js function test(word) { return word; } register 'simple.js' using org.apache.pig.scripting.js.JsScriptEngine as myfuncs; A = LOAD 'data' as (a:chararray); B = FOREACH A GENERATE myfuncs.test($0); {code} Pig Stack Trace --------------- ERROR 1200: <line 1, column 3> mismatched input '.' expecting EOF ... Caused by: java.lang.IllegalArgumentException: test.outputSchema is not a valid schema: <line 1, column 3> mismatched input '.' expecting EOF at org.apache.pig.scripting.js.JsFunction.<init>(JsFunction.java:184) ... 38 more Caused by: Failed to parse: <line 1, column 3> mismatched input '.' expecting EOF at org.apache.pig.parser.QueryParserDriver.parseSchema(QueryParserDriver.java:94) at org.apache.pig.parser.QueryParserDriver.parseSchema(QueryParserDriver.java:108) at org.apache.pig.impl.util.Utils.parseSchema(Utils.java:222) at org.apache.pig.impl.util.Utils.getSchemaFromString(Utils.java:196) at org.apache.pig.scripting.js.JsFunction.<init>(JsFunction.java:182) ... 38 more Problem: if no output schema is defined, an {{org.mozilla.javascript.Undefined}} object will be passed to {{Utils#getSchemaFromString}} which causes the exception. Should: if there's no schema defined, udf should return an unnamed bytearray field. -- This message was sent by Atlassian JIRA (v6.2#6252)