This is an automated email from the ASF dual-hosted git repository.

kishoreg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new cd86f60  Adding a null check inside getDataSource method for 
potentially invalid column name (#5923)
cd86f60 is described below

commit cd86f60f92268f1408b79423bfe6c8eccda1ba07
Author: icefury71 <chinmay.cere...@gmail.com>
AuthorDate: Wed Sep 9 11:51:46 2020 -0700

    Adding a null check inside getDataSource method for potentially invalid 
column name (#5923)
---
 .../pinot/core/indexsegment/immutable/ImmutableSegmentImpl.java   | 8 +++++++-
 .../pinot/core/indexsegment/mutable/MutableSegmentImpl.java       | 3 ++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/immutable/ImmutableSegmentImpl.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/immutable/ImmutableSegmentImpl.java
index 42484cb..52537f5 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/immutable/ImmutableSegmentImpl.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/immutable/ImmutableSegmentImpl.java
@@ -23,9 +23,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import javax.annotation.Nullable;
+
+import com.google.common.base.Preconditions;
 import org.apache.pinot.core.common.DataSource;
 import org.apache.pinot.core.segment.index.column.ColumnIndexContainer;
 import org.apache.pinot.core.segment.index.datasource.ImmutableDataSource;
+import org.apache.pinot.core.segment.index.metadata.ColumnMetadata;
 import org.apache.pinot.core.segment.index.metadata.SegmentMetadataImpl;
 import org.apache.pinot.core.segment.index.readers.Dictionary;
 import org.apache.pinot.core.segment.index.readers.ForwardIndexReader;
@@ -91,7 +94,10 @@ public class ImmutableSegmentImpl implements 
ImmutableSegment {
 
   @Override
   public DataSource getDataSource(String column) {
-    return new 
ImmutableDataSource(_segmentMetadata.getColumnMetadataFor(column), 
_indexContainerMap.get(column));
+    ColumnMetadata columnMetadata = 
_segmentMetadata.getColumnMetadataFor(column);
+    Preconditions.checkNotNull(columnMetadata,
+        "ColumnMetadata for " + column + " should not be null. " + 
"Potentially invalid column name specified.");
+    return new ImmutableDataSource(columnMetadata, 
_indexContainerMap.get(column));
   }
 
   @Override
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/mutable/MutableSegmentImpl.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/mutable/MutableSegmentImpl.java
index 5f04f0e..d6cfcc6 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/mutable/MutableSegmentImpl.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/indexsegment/mutable/MutableSegmentImpl.java
@@ -639,7 +639,8 @@ public class MutableSegmentImpl implements MutableSegment {
       if (fieldSpec == null) {
         // If the column was added during ingestion, we will construct the 
column provider based on its fieldSpec to provide values
         fieldSpec = _newlyAddedColumnsFieldMap.get(column);
-        Preconditions.checkNotNull(fieldSpec, "FieldSpec for " + column + " 
should not be null");
+        Preconditions.checkNotNull(fieldSpec,
+            "FieldSpec for " + column + " should not be null. " + "Potentially 
invalid column name specified.");
       }
       // TODO: Refactor virtual column provider to directly generate data 
source
       VirtualColumnContext virtualColumnContext = new 
VirtualColumnContext(fieldSpec, _numDocsIndexed);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to