Github user ilooner commented on a diff in the pull request:
https://github.com/apache/drill/pull/1101#discussion_r165136635
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggTemplate.java
---
@@ -397,11 +384,9 @@ private void delayedSetup() {
}
numPartitions = BaseAllocator.nextPowerOfTwo(numPartitions); // in
case not a power of 2
- if ( schema == null ) { estValuesBatchSize = estOutgoingAllocSize =
estMaxBatchSize = 0; } // incoming was an empty batch
--- End diff --
All the unit and functional tests passed without an NPE. The null check was
redundant because the code in **doWork** that calls **delayedSetup** sets the
schema if it is null.
```
// This would be called only once - first time actual data arrives on
incoming
if ( schema == null && incoming.getRecordCount() > 0 ) {
this.schema = incoming.getSchema();
currentBatchRecordCount = incoming.getRecordCount(); // initialize
for first non empty batch
// Calculate the number of partitions based on actual incoming data
delayedSetup();
}
```
So schema will never be null when delayed setup is called
---