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>


Reply via email to