diff --git ql/src/java/org/apache/hadoop/hive/ql/io/orc/CompressionCodec.java ql/src/java/org/apache/hadoop/hive/ql/io/orc/CompressionCodec.java index 2da490e..5e2d880 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/CompressionCodec.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/orc/CompressionCodec.java @@ -21,6 +21,8 @@ import java.nio.ByteBuffer; import java.util.EnumSet; +import javax.annotation.Nullable; + interface CompressionCodec { public enum Modifier { @@ -62,6 +64,6 @@ boolean compress(ByteBuffer in, ByteBuffer out, ByteBuffer overflow * @param modifiers compression modifiers * @return codec for use after optional modification */ - CompressionCodec modify(EnumSet modifiers); + CompressionCodec modify(@Nullable EnumSet modifiers); } diff --git ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java index ee85a17..620d4d4 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java @@ -485,6 +485,7 @@ public OutStream createStream(int column, modifiers = EnumSet.of(Modifier.FASTEST, Modifier.BINARY); break; default: + LOG.warn("Missing ORC compression modifiers for " + kind); modifiers = null; break; } diff --git ql/src/java/org/apache/hadoop/hive/ql/io/orc/ZlibCodec.java ql/src/java/org/apache/hadoop/hive/ql/io/orc/ZlibCodec.java index a7fd91b..03cc3c5 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/ZlibCodec.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/orc/ZlibCodec.java @@ -24,6 +24,8 @@ import java.util.zip.Deflater; import java.util.zip.Inflater; +import javax.annotation.Nullable; + import org.apache.hadoop.hive.shims.HadoopShims; import org.apache.hadoop.hive.shims.HadoopShims.DirectCompressionType; import org.apache.hadoop.hive.shims.HadoopShims.DirectDecompressorShim; @@ -130,7 +132,12 @@ public void directDecompress(ByteBuffer in, ByteBuffer out) } @Override - public CompressionCodec modify(EnumSet modifiers) { + public CompressionCodec modify(@Nullable EnumSet modifiers) { + + if (modifiers == null) { + return this; + } + int l = this.level; int s = this.strategy;