You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Daniel Dai (JIRA)" <ji...@apache.org> on 2011/02/18 02:50:12 UTC

[jira] Resolved: (PIG-1843) NPE in schema generation

     [ https://issues.apache.org/jira/browse/PIG-1843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Dai resolved PIG-1843.
-----------------------------

      Resolution: Fixed
    Hadoop Flags: [Reviewed]

Patch committed to both trunk and 0.8 branch.

> NPE in schema generation
> ------------------------
>
>                 Key: PIG-1843
>                 URL: https://issues.apache.org/jira/browse/PIG-1843
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.8.0
>            Reporter: Daniel Dai
>            Assignee: Daniel Dai
>             Fix For: 0.9.0, 0.8.0
>
>         Attachments: PIG-1843-1.patch
>
>
> Hit NPE in following script:
> {code}
> a = load 'table_testBagDereferenceInMiddle2' as (a0:chararray);
> b = foreach a generate MapGenerate(STRSPLIT(a0).$0));
> {code}
> {code}
> public class MapGenerate extends EvalFunc<Map> {
>     @Override
>     public Map exec(Tuple input) throws IOException {
>         Map m = new HashMap();
>         m.put("key", new Integer(input.size()));
>         return m;
>     }
>     
>     @Override
>     public Schema outputSchema(Schema input) {
>         return new Schema(new Schema.FieldSchema(getSchemaName("parselong", input), DataType.MAP));
>     }
> }
> {code}
> Error message:
> Caused by: java.lang.NullPointerException
>         at org.apache.pig.EvalFunc.getSchemaName(EvalFunc.java:76)
>         at string.PARSELONG.outputSchema(PARSELONG.java:63)
>         at org.apache.pig.newplan.logical.expression.UserFuncExpression.getFieldSchema(UserFuncExpression.java:154)
>         at org.apache.pig.newplan.logical.optimizer.FieldSchemaResetter.execute(SchemaResetter.java:192)
>         at org.apache.pig.newplan.logical.expression.AllSameExpressionVisitor.visit(AllSameExpressionVisitor.java:143)
>         at org.apache.pig.newplan.logical.expression.UserFuncExpression.accept(UserFuncExpression.java:71)
>         at org.apache.pig.newplan.ReverseDependencyOrderWalker.walk(ReverseDependencyOrderWalker.java:70)
>         at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:50)
>         at org.apache.pig.newplan.logical.optimizer.SchemaResetter.visit(SchemaResetter.java:104)
>         at org.apache.pig.newplan.logical.relational.LOGenerate.accept(LOGenerate.java:240)
>         at org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
>         at org.apache.pig.newplan.logical.optimizer.SchemaResetter.visit(SchemaResetter.java:93)
>         at org.apache.pig.newplan.logical.relational.LOForEach.accept(LOForEach.java:73)
>         at org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
>         at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:50)
>         at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(HExecutionEngine.java:279)
>         at org.apache.pig.PigServer.compilePp(PigServer.java:1480)
>         at org.apache.pig.PigServer.explain(PigServer.java:1042)

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