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>