[ https://issues.apache.org/jira/browse/HIVE-2182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13094195#comment-13094195 ]
John Sichi commented on HIVE-2182: ---------------------------------- I agree with Chinna that in general we don't know whether the client-side class availability matches the MR availability, so this extra check is useful. However, can we improve the diagnostics? At a minimum, we want to know what class is missing; if we can also say which .jar we saw it in on the client-side, that would be great. Code format nitpick: put opening curly brace on same line as if keyword. > 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.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