NPE thrown during illustrate
----------------------------

                 Key: PIG-2170
                 URL: https://issues.apache.org/jira/browse/PIG-2170
             Project: Pig
          Issue Type: Bug
          Components: impl
    Affects Versions: 0.10
            Reporter: Mat Kelcey


working with version
https://svn.apache.org/repos/asf/pig/trunk@1146777
fetched from git 
 git://git.apache.org/pig.git a7e1228a0fdfe76c3cff0e749e252dba8d387052

using file /tmp/data.tsv
id1     123
id1     234
id2     345
id2     456

this is the most cutdown/simplest script i can make that illustrates (no pun 
intended) the problem
grunt> data = load '/tmp/data.tsv'  as (id:chararray, value:long);
grunt> cogrouped = cogroup data by id;
grunt> exists = foreach cogrouped generate (IsEmpty(data.value) ? 0 : 1) as 
exists;

grunt> dump exists 
is ok

but
grunt> illustrate exists
throws
java.lang.NullPointerException
        at 
org.apache.pig.pen.IllustratorAttacher.visitBinCond(IllustratorAttacher.java:360)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond.visit(POBinCond.java:145)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond.visit(POBinCond.java:36)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:69)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.walk(DepthFirstWalker.java:52)
        at 
org.apache.pig.pen.IllustratorAttacher.innerPlanAttach(IllustratorAttacher.java:417)
        at 
org.apache.pig.pen.IllustratorAttacher.visitPOForEach(IllustratorAttacher.java:229)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.visit(POForEach.java:117)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.visit(POForEach.java:47)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:69)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:71)
        at 
org.apache.pig.impl.plan.DepthFirstWalker.walk(DepthFirstWalker.java:52)
        at org.apache.pig.impl.plan.PlanVisitor.visit(PlanVisitor.java:51)
        at 
org.apache.pig.pen.ExampleGenerator.getData(ExampleGenerator.java:246)
        at 
org.apache.pig.pen.ExampleGenerator.getData(ExampleGenerator.java:238)
        at 
org.apache.pig.pen.LineageTrimmingVisitor.init(LineageTrimmingVisitor.java:103)
        at 
org.apache.pig.pen.LineageTrimmingVisitor.<init>(LineageTrimmingVisitor.java:98)
        at 
org.apache.pig.pen.ExampleGenerator.getExamples(ExampleGenerator.java:166)
        at org.apache.pig.PigServer.getExamples(PigServer.java:1201)
        at 
org.apache.pig.tools.grunt.GruntParser.processIllustrate(GruntParser.java:698)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.Illustrate(PigScriptParser.java:591)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:306)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:188)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:67)
        at org.apache.pig.Main.run(Main.java:487)
        at org.apache.pig.Main.main(Main.java:108)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

with pig.log containing
java.io.IOException: Exception : null
        at org.apache.pig.PigServer.getExamples(PigServer.java:1207)
        at 
org.apache.pig.tools.grunt.GruntParser.processIllustrate(GruntParser.java:698)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.Illustrate(PigScriptParser.java:591)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:306)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:188)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:67)
        at org.apache.pig.Main.run(Main.java:487)
        at org.apache.pig.Main.main(Main.java:108)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

something to do with the IsEmpty since...
grunt> data = load '/tmp/data.tsv'  as (id:chararray, value:long);
grunt> cogrouped = cogroup data by id;
grunt> exists = foreach cogrouped generate data.value as exists;
illustrates ok

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to