[ https://issues.apache.org/jira/browse/HIVE-2182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13102821#comment-13102821 ]
jirapos...@reviews.apache.org commented on HIVE-2182: ----------------------------------------------------- ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/1759/ ----------------------------------------------------------- (Updated 2011-09-12 17:27:12.064230) 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 (updated) ----- trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java 1169710 trunk/ql/src/test/queries/clientnegative/udfnull.q PRE-CREATION trunk/ql/src/test/results/clientnegative/udfnull.q.out PRE-CREATION trunk/ql/src/test/results/compiler/plan/cast1.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/groupby1.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/groupby2.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/groupby3.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/groupby4.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/groupby5.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/groupby6.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/input20.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/input8.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/join2.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/sample1.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/sample2.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/sample3.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/sample4.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/sample5.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/sample6.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/sample7.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/udf1.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/udf4.q.xml 1169710 trunk/ql/src/test/results/compiler/plan/udf6.q.xml 1169710 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.3.patch, > HIVE-2182.4.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