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


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