You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ol...@apache.org on 2009/10/27 21:58:06 UTC

svn commit: r830335 - in /hadoop/pig/trunk: ./ src/org/apache/pig/ src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/plans/ src/org/apache/pig/backend/hadoop/executionengin...

Author: olga
Date: Tue Oct 27 20:58:04 2009
New Revision: 830335

URL: http://svn.apache.org/viewvc?rev=830335&view=rev
Log:
PIG-1051: FINDBUGS: NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE (olgan)

Modified:
    hadoop/pig/trunk/CHANGES.txt
    hadoop/pig/trunk/src/org/apache/pig/StandAloneParser.java
    hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/Launcher.java
    hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/plans/PhysicalPlan.java
    hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POFRJoin.java
    hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POOptimizedForEach.java
    hadoop/pig/trunk/src/org/apache/pig/builtin/IntSum.java
    hadoop/pig/trunk/src/org/apache/pig/builtin/MAX.java
    hadoop/pig/trunk/src/org/apache/pig/builtin/MIN.java
    hadoop/pig/trunk/src/org/apache/pig/builtin/SUM.java
    hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOProject.java
    hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/OpLimitOptimizer.java
    hadoop/pig/trunk/test/findbugsExcludeFile.xml

Modified: hadoop/pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/CHANGES.txt (original)
+++ hadoop/pig/trunk/CHANGES.txt Tue Oct 27 20:58:04 2009
@@ -26,6 +26,8 @@
 
 IMPROVEMENTS
 
+PIG-1051: FINDBUGS: NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE (olgan)
+
 PIG-1050: FINDBUGS: DLS_DEAD_LOCAL_STORE: Dead store to local variable (olgan)
 
 PIG-1043: FINDBUGS: SIC_INNER_SHOULD_BE_STATIC: Should be a static inner class

Modified: hadoop/pig/trunk/src/org/apache/pig/StandAloneParser.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/StandAloneParser.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/StandAloneParser.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/StandAloneParser.java Tue Oct 27 20:58:04 2009
@@ -54,9 +54,11 @@
                 return;
             }
             
-            if (line.toLowerCase().equals("quit")) break;
-            if (line.toLowerCase().startsWith("#")) continue;
-            else tryParse(line);
+            if (line != null){
+                if (line.toLowerCase().equals("quit")) break;
+                if (line.toLowerCase().startsWith("#")) continue;
+                else tryParse(line);
+            }
             
         }
         

Modified: hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/Launcher.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/Launcher.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/Launcher.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/Launcher.java Tue Oct 27 20:58:04 2009
@@ -470,7 +470,11 @@
                 		}
             			
                 		//could receive a number format exception here but it will be propagated up the stack                		
-                		int errCode = Integer.parseInt(code);
+                		int errCode;
+                        if (code != null) 
+                            errCode = Integer.parseInt(code);
+                        else
+                            errCode = 2998;
                 		
                 		//create the exception with the message and then set the error code and error source
                 		FuncSpec funcSpec = new FuncSpec(exceptionName, exceptionMessage);		                		

Modified: hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/plans/PhysicalPlan.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/plans/PhysicalPlan.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/plans/PhysicalPlan.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/plans/PhysicalPlan.java Tue Oct 27 20:58:04 2009
@@ -257,13 +257,13 @@
                 new ArrayList<PhysicalOperator>(inputs.size());
             PhysicalOperator cloneOp = matches.get(op);
             if (cloneOp == null) {
-                String msg = "Unable to find clone for op " + cloneOp.name();
+                String msg = "Unable to find clone for op " + op.name();
                 throw new CloneNotSupportedException(msg);
             }
             for (PhysicalOperator iOp : inputs) {
                 PhysicalOperator cloneIOp = matches.get(iOp);
                 if (cloneIOp == null) {
-                    String msg = "Unable to find clone for op " + cloneIOp.name();
+                    String msg = "Unable to find clone for op " + iOp.name();
                     throw new CloneNotSupportedException(msg);
                 }
                 newInputs.add(cloneIOp);

Modified: hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POFRJoin.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POFRJoin.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POFRJoin.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POFRJoin.java Tue Oct 27 20:58:04 2009
@@ -95,22 +95,6 @@
     private transient BagFactory mBagFactory;
     private boolean setUp;
     
-    public POFRJoin(OperatorKey k) throws PlanException, ExecException {
-        this(k,-1,null, null, null, null, -1);
-    }
-
-    public POFRJoin(OperatorKey k, int rp) throws PlanException, ExecException {
-        this(k, rp, null, null, null, null, -1);
-    }
-
-    public POFRJoin(OperatorKey k, List<PhysicalOperator> inp) throws PlanException, ExecException {
-        this(k, -1, inp, null, null, null, -1);
-    }
-
-    public POFRJoin(OperatorKey k, int rp, List<PhysicalOperator> inp) throws PlanException, ExecException {
-        this(k,rp,inp,null, null, null, -1);
-    }
-    
     public POFRJoin(OperatorKey k, int rp, List<PhysicalOperator> inp, List<List<PhysicalPlan>> ppLists, List<List<Byte>> keyTypes, FileSpec[] replFiles, int fragment) throws ExecException{
         super(k,rp,inp);
         

Modified: hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POOptimizedForEach.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POOptimizedForEach.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POOptimizedForEach.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POOptimizedForEach.java Tue Oct 27 20:58:04 2009
@@ -133,7 +133,7 @@
 
             if(lineageTracer != null && res.result != null) {
         	//we check for res.result since that can also be null in the case of flatten
-        	tIn = (ExampleTuple) inp.result;
+        	tIn = (ExampleTuple) input;
         	ExampleTuple tOut = new ExampleTuple((Tuple) res.result);
         	tOut.synthetic = tIn.synthetic;
         	lineageTracer.insert(tOut);

Modified: hadoop/pig/trunk/src/org/apache/pig/builtin/IntSum.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/builtin/IntSum.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/builtin/IntSum.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/builtin/IntSum.java Tue Oct 27 20:58:04 2009
@@ -81,7 +81,9 @@
                         Long.valueOf(i) : null);
             }catch(NumberFormatException nfe){
                 // treat this particular input as null
-                return tfact.newTuple(null);
+                Tuple t = tfact.newTuple(1);
+                t.set(0, null);
+                return t;
             } catch (ExecException e) {
                 throw e;
             } catch (Exception e) {

Modified: hadoop/pig/trunk/src/org/apache/pig/builtin/MAX.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/builtin/MAX.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/builtin/MAX.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/builtin/MAX.java Tue Oct 27 20:58:04 2009
@@ -84,7 +84,9 @@
                 return tfact.newTuple(dba != null ?
                         Double.valueOf(dba.toString()): null);
             } catch (NumberFormatException e) {
-                return tfact.newTuple(null);
+                Tuple t = tfact.newTuple(1);
+                t.set (0, null);
+                return t;
             } catch (ExecException ee) {
                 throw ee;
             } catch (Exception e) {

Modified: hadoop/pig/trunk/src/org/apache/pig/builtin/MIN.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/builtin/MIN.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/builtin/MIN.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/builtin/MIN.java Tue Oct 27 20:58:04 2009
@@ -85,7 +85,9 @@
                         Double.valueOf(dba.toString()) : null);
             } catch (NumberFormatException e) {
                 // invalid input, send null
-                return tfact.newTuple(null);
+                Tuple t =  tfact.newTuple(1);
+                t.set(0, null);
+                return t;
             } catch (ExecException ee) {
                 throw ee;
             } catch (Exception e) {

Modified: hadoop/pig/trunk/src/org/apache/pig/builtin/SUM.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/builtin/SUM.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/builtin/SUM.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/builtin/SUM.java Tue Oct 27 20:58:04 2009
@@ -86,7 +86,9 @@
                         Double.valueOf(dba.toString()): null);
             }catch(NumberFormatException nfe){
                 // treat this particular input as null
-                return tfact.newTuple(null);
+                Tuple t = tfact.newTuple(1);
+                t.set(0, null);
+                return t;
             } catch (ExecException e) {
                 throw e;
             } catch (Exception e) {

Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOProject.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOProject.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOProject.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOProject.java Tue Oct 27 20:58:04 2009
@@ -184,6 +184,13 @@
         for (int i : mProjection) {
             log.debug("Column: " + i);
         }
+
+        if (mExp == null){
+            String msg = "The input for a projection operator cannot be null";
+            int errCode = 2998;
+            throw new FrontendException(msg, errCode, PigException.BUG, false, null);
+        }
+
         LogicalOperator expressionOperator = mExp;
         log.debug("expressionOperator = " + expressionOperator);
         log.debug("mIsStar: " + mIsStar);
@@ -193,28 +200,22 @@
             if (mIsStar) {
                 log.debug("mIsStar is true");
                 try {
-                    if (null != expressionOperator) {
-                        log.debug("expressionOperator is not null "
-                                + expressionOperator.getClass().getName() + " " + expressionOperator);
-                        if(!mSentinel) {
-                            //we have an expression operator and hence a list of field shcemas
-                            Schema.FieldSchema fs = ((ExpressionOperator)expressionOperator).getFieldSchema();
-                            mFieldSchema = new Schema.FieldSchema(fs);
-                            mFieldSchema.setParent(fs.canonicalName, expressionOperator);
-                        } else {
-                            //we have a relational operator as input and hence a schema
-                            log.debug("expression operator alias: " + expressionOperator.getAlias());
-                            log.debug("expression operator schema: " + expressionOperator.getSchema());
-                            log.debug("expression operator type: " + expressionOperator.getType());
-                            //TODO
-                            //the type of the operator will be unknown. when type checking is in place
-                            //add the type of the operator as a parameter to the fieldschema creation
-                            mFieldSchema = new Schema.FieldSchema(expressionOperator.getAlias(), expressionOperator.getSchema(), DataType.TUPLE);
-                            mFieldSchema.setParent(null, expressionOperator);
-                            //mFieldSchema = new Schema.FieldSchema(expressionOperator.getAlias(), expressionOperator.getSchema());
-                        }
+                    if(!mSentinel) {
+                        //we have an expression operator and hence a list of field shcemas
+                        Schema.FieldSchema fs = ((ExpressionOperator)expressionOperator).getFieldSchema();
+                         mFieldSchema = new Schema.FieldSchema(fs);
+                         mFieldSchema.setParent(fs.canonicalName, expressionOperator);
                     } else {
-                        log.warn("The input for a projection operator cannot be null");
+                        //we have a relational operator as input and hence a schema
+                        log.debug("expression operator alias: " + expressionOperator.getAlias());
+                        log.debug("expression operator schema: " + expressionOperator.getSchema());
+                        log.debug("expression operator type: " + expressionOperator.getType());
+                        //TODO
+                        //the type of the operator will be unknown. when type checking is in place
+                        //add the type of the operator as a parameter to the fieldschema creation
+                        mFieldSchema = new Schema.FieldSchema(expressionOperator.getAlias(), expressionOperator.getSchema(), DataType.TUPLE);
+                        mFieldSchema.setParent(null, expressionOperator);
+                        //mFieldSchema = new Schema.FieldSchema(expressionOperator.getAlias(), expressionOperator.getSchema());
                     }
                     mIsFieldSchemaComputed = true;
                 } catch (FrontendException fee) {
@@ -226,7 +227,6 @@
                 //its n list of columns to project including a single column
                 List<Schema.FieldSchema> fss = new ArrayList<Schema.FieldSchema>(mProjection.size());
                 //try {
-                    if (null != expressionOperator) {
                         log.debug("expressionOperator is not null");
                         if(mProjection.size() == 1) {
                             //if there is only one element then extract and return the field schema
@@ -345,10 +345,6 @@
                             }
                         }
     
-                    } else {
-                        log.warn("The input for a projection operator cannot be null");
-                        //fss.add(new Schema.FieldSchema(null, DataType.BYTEARRAY));
-                    }
                 //} catch(ParseException pe) {
                 //    mFieldSchema = null;
                 //    mIsFieldSchemaComputed = false;

Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/OpLimitOptimizer.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/OpLimitOptimizer.java?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/OpLimitOptimizer.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/OpLimitOptimizer.java Tue Oct 27 20:58:04 2009
@@ -103,7 +103,7 @@
             LogicalOperator lo = nodes.get(0);
             if (lo == null || !(lo instanceof LOLimit)) {
                 int errCode = 2005;
-                String msg = "Expected " + LOLimit.class.getSimpleName() + ", got " + lo.getClass().getSimpleName();
+                String msg = "Expected " + LOLimit.class.getSimpleName() + ", got " + (lo == null ? lo : lo.getClass().getSimpleName());
                 throw new OptimizerException(msg, errCode, PigException.BUG);
             }
 

Modified: hadoop/pig/trunk/test/findbugsExcludeFile.xml
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/test/findbugsExcludeFile.xml?rev=830335&r1=830334&r2=830335&view=diff
==============================================================================
--- hadoop/pig/trunk/test/findbugsExcludeFile.xml (original)
+++ hadoop/pig/trunk/test/findbugsExcludeFile.xml Tue Oct 27 20:58:04 2009
@@ -12,6 +12,16 @@
     <Match>
         <Class name="org.apache.pig.tools.parameters.JavaCharStream" />
     </Match>
+    <!--Ignore PigPen since it is not actively supported -->
+    <Match>
+        <Package name="org.apache.pig.pen.util" />
+    </Match>
+    <Match>
+        <Package name="org.apache.pig.pen" />
+    </Match>
+    <Match>
+        <Package name="org.apache.pig.data.parser.*" />
+    </Match>
     <!-- Ingnore non-serializable comparators --> 
     <Match>
         <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
@@ -131,4 +141,47 @@
         <Class name="org.apache.pig.data.DistinctDataBag$DistinctDataBagIterator$TContainer" />
         <Bug pattern="SIC_INNER_SHOULD_BE_STATIC" />
     </Match>
+    <Match>
+        <Class name="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.CountingMap" />
+        <Method name="put" />
+        <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.logicalLayer.optimizer.OpLimitOptimizer" />
+        <Method name = "check" />
+        <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.logicalLayer.optimizer.PushDownForeachFlatten" />
+        <Method name = "getOperator" />
+        <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.logicalLayer.optimizer.StreamOptimizer" />
+        <Method name = "check" />
+        <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.logicalLayer.optimizer.TypeCastInserter" />
+        <Method name = "getOperator" />
+        <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.logicalLayer.schema.Schema" />
+        <Method name = "mergeSchema" />
+        <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.util.LineageTracer" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.logicalLayer.optimizer.OpLimitOptimizer" />
+        <Method name = "transform" />
+        <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.pig.impl.logicalLayer.optimizer.PushUpFilter" />
+        <Method name = "getOperator" />
+        <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+    </Match>
 </FindBugsFilter>