DRILL-7875: Drill Fails to Splunk Indexes with no Timestamp
diff --git a/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java b/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java
index d499a3f..7a129a0 100644
--- a/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java
+++ b/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java
@@ -125,7 +125,7 @@
 
   private void openFile(FileSchemaNegotiator negotiator) {
     try {
-      fileReaderShp = negotiator.fileSystem().open(split.getPath());
+      fileReaderShp = negotiator.fileSystem().openPossiblyCompressedStream(split.getPath());
       byte[] shpBuf = new byte[fileReaderShp.available()];
       fileReaderShp.read(shpBuf);
 
@@ -135,10 +135,10 @@
       ShapefileReader shpReader = new ShapefileReader();
       geomCursor = shpReader.getGeometryCursor(byteBuffer);
 
-      fileReaderDbf = negotiator.fileSystem().open(hadoopDbf);
+      fileReaderDbf = negotiator.fileSystem().openPossiblyCompressedStream(hadoopDbf);
       dbfReader = new DbfReader(fileReaderDbf);
 
-      fileReaderPrj = negotiator.fileSystem().open(hadoopPrj);
+      fileReaderPrj = negotiator.fileSystem().openPossiblyCompressedStream(hadoopPrj);
       byte[] prjBuf = new byte[fileReaderPrj.available()];
       fileReaderPrj.read(prjBuf);
       fileReaderPrj.close();
diff --git a/contrib/storage-splunk/src/main/java/org/apache/drill/exec/store/splunk/SplunkBatchReader.java b/contrib/storage-splunk/src/main/java/org/apache/drill/exec/store/splunk/SplunkBatchReader.java
index 50c1575..b74338c 100644
--- a/contrib/storage-splunk/src/main/java/org/apache/drill/exec/store/splunk/SplunkBatchReader.java
+++ b/contrib/storage-splunk/src/main/java/org/apache/drill/exec/store/splunk/SplunkBatchReader.java
@@ -369,8 +369,12 @@
 
     @Override
     public void load(String[] record) {
-      int value = Integer.parseInt(record[columnIndex]);
-      columnWriter.setInt(value);
+      if (record[columnIndex] != null) {
+        int value = Integer.parseInt(record[columnIndex]);
+        columnWriter.setInt(value);
+      } else {
+        columnWriter.setNull();
+      }
     }
   }
 
@@ -385,8 +389,12 @@
 
     @Override
     public void load(String[] record) {
-      long value = Long.parseLong(record[columnIndex]) * 1000;
-      columnWriter.setTimestamp(Instant.ofEpochMilli(value));
+      if (record[columnIndex] != null) {
+        long value = Long.parseLong(record[columnIndex]) * 1000;
+        columnWriter.setTimestamp(Instant.ofEpochMilli(value));
+      } else {
+        columnWriter.setNull();
+      }
     }
   }
 }