DRILL-244: NPE when updating assignment affinity metric

Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/4ccea489
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/4ccea489
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/4ccea489

Branch: refs/heads/master
Commit: 4ccea48905cca4a822521c83ad2ff31eb62bfa06
Parents: c93a5a1
Author: Steven Phillips <[email protected]>
Authored: Thu Sep 12 20:11:55 2013 -0700
Committer: Steven Phillips <[email protected]>
Committed: Fri Sep 20 15:10:56 2013 -0700

----------------------------------------------------------------------
 .../org/apache/drill/exec/store/parquet/ParquetGroupScan.java  | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/4ccea489/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
index 09dc2f7..10fcdff 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetGroupScan.java
@@ -341,7 +341,11 @@ public class ParquetGroupScan extends AbstractGroupScan {
 
           endpointAssignments.put(minorFragmentId, 
rowGroupInfo.getRowGroupReadEntry());
           logger.debug("Assigned rowGroup {} to minorFragmentId {} endpoint 
{}", rowGroupInfo.getRowGroupIndex(), minorFragmentId, 
endpoints.get(minorFragmentId).getAddress());
-          assignmentAffinityStats.update(bytesPerEndpoint.get(currentEndpoint) 
/ rowGroupInfo.getLength());
+          if (bytesPerEndpoint.get(currentEndpoint) != null) {
+            
assignmentAffinityStats.update(bytesPerEndpoint.get(currentEndpoint) / 
rowGroupInfo.getLength());
+          } else {
+            assignmentAffinityStats.update(0);
+          }
           iter.remove();
           fragmentPointer = (minorFragmentId + 1) % endpoints.size();
           break;

Reply via email to