[ 
https://issues.apache.org/jira/browse/HIVE-2182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13100631#comment-13100631
 ] 

jirapos...@reviews.apache.org commented on HIVE-2182:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1759/
-----------------------------------------------------------

Review request for hive and John Sichi.


Summary
-------

while executing UDF if the implementation jar is not present in MR class path 
it is throwing nullpointer exception instead of throwing nullpointer exception 
throwing meaning full exception with the required details.


This addresses bug HIVE-2182.
    https://issues.apache.org/jira/browse/HIVE-2182


Diffs
-----

  trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java 
1166865 
  trunk/ql/src/test/queries/clientnegative/udfnull.q PRE-CREATION 
  trunk/ql/src/test/results/clientnegative/udfnull.q.out PRE-CREATION 

Diff: https://reviews.apache.org/r/1759/diff


Testing
-------

Added unit tests


Thanks,

chinna



> Avoid null pointer exception when executing UDF
> -----------------------------------------------
>
>                 Key: HIVE-2182
>                 URL: https://issues.apache.org/jira/browse/HIVE-2182
>             Project: Hive
>          Issue Type: Bug
>          Components: Query Processor
>    Affects Versions: 0.5.0, 0.8.0
>         Environment: Hadoop 0.20.1, Hive0.8.0 and SUSE Linux Enterprise 
> Server 10 SP2 (i586) - Kernel 2.6.16.60-0.21-smp (5)
>            Reporter: Chinna Rao Lalam
>            Assignee: Chinna Rao Lalam
>         Attachments: HIVE-2182.1.patch, HIVE-2182.2.patch, HIVE-2182.patch
>
>
> For using UDF's executed following steps
> {noformat}
> add jar /home/udf/udf.jar;
> create temporary function grade as 'udf.Grade';
> select m.userid,m.name,grade(m.maths,m.physics,m.chemistry) from marks m;
> {noformat}
> But from the above steps if we miss the first step (add jar) and execute 
> remaining steps
> {noformat}
> create temporary function grade as 'udf.Grade';
> select m.userid,m.name,grade(m.maths,m.physics,m.chemistry) from marks m;
> {noformat}
> In tasktracker it is throwing this exception
> {noformat}
> Caused by: java.lang.RuntimeException: Map operator initialization failed
>                at 
> org.apache.hadoop.hive.ql.exec.ExecMapper.configure(ExecMapper.java:121)
>                ... 18 more
> Caused by: java.lang.RuntimeException: java.lang.NullPointerException
>                at 
> org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:115)
>                at 
> org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge.initialize(GenericUDFBridge.java:126)
>                at 
> org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.initialize(ExprNodeGenericFuncEvaluator.java:133)
>                at 
> org.apache.hadoop.hive.ql.exec.Operator.initEvaluators(Operator.java:878)
>                at 
> org.apache.hadoop.hive.ql.exec.Operator.initEvaluatorsAndReturnStruct(Operator.java:904)
>                at 
> org.apache.hadoop.hive.ql.exec.SelectOperator.initializeOp(SelectOperator.java:60)
>                at 
> org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:357)
>                at 
> org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:433)
>                at 
> org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:389)
>                at 
> org.apache.hadoop.hive.ql.exec.TableScanOperator.initializeOp(TableScanOperator.java:133)
>                at 
> org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:357)
>                at 
> org.apache.hadoop.hive.ql.exec.MapOperator.initializeOp(MapOperator.java:444)
>                at 
> org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:357)
>                at 
> org.apache.hadoop.hive.ql.exec.ExecMapper.configure(ExecMapper.java:98)
>                ... 18 more
> Caused by: java.lang.NullPointerException
>                at 
> java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
>                at 
> org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:107)
>                ... 31 more
> {noformat}
> Instead of null pointer exception it should throw meaning full exception

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

        

Reply via email to