You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by fo...@apache.org on 2020/01/02 13:00:12 UTC

[parquet-mr] branch master updated: PARQUET-1726: Use Java 8 Multi Exception Handling (#714)

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

fokko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-mr.git


The following commit(s) were added to refs/heads/master by this push:
     new 1e15f60  PARQUET-1726: Use Java 8 Multi Exception Handling (#714)
1e15f60 is described below

commit 1e15f604302ab96904eaa1c3d435d2a5b3632d3f
Author: belugabehr <12...@users.noreply.github.com>
AuthorDate: Thu Jan 2 08:00:06 2020 -0500

    PARQUET-1726: Use Java 8 Multi Exception Handling (#714)
---
 .../org/apache/parquet/avro/AvroConverters.java    |  9 ++----
 .../apache/parquet/avro/AvroRecordConverter.java   |  4 +--
 .../java/org/apache/parquet/cli/json/AvroJson.java |  8 ++----
 .../org/apache/parquet/CorruptDeltaByteArrays.java |  5 +---
 .../java/org/apache/parquet/CorruptStatistics.java | 12 +-------
 .../parquet/column/impl/ColumnReadStoreImpl.java   |  4 +--
 .../values/plain/BinaryPlainValuesReader.java      |  8 ++----
 .../parquet/filter2/predicate/Operators.java       |  4 +--
 .../java/org/apache/parquet/VersionParser.java     |  5 +---
 .../org/apache/parquet/util/DynConstructors.java   | 22 ++++-----------
 .../java/org/apache/parquet/util/DynMethods.java   |  6 ++--
 .../parquet/column/values/bitpacking/Packer.java   | 11 ++------
 .../org/apache/parquet/format/event/Consumers.java |  4 +--
 .../apache/parquet/hadoop/DirectCodecFactory.java  |  8 ++----
 .../apache/parquet/hadoop/ParquetInputFormat.java  | 11 +++-----
 .../apache/parquet/hadoop/ParquetOutputFormat.java |  4 +--
 .../parquet/hadoop/metadata/ParquetMetadata.java   |  8 ------
 .../apache/parquet/hadoop/util/ContextUtil.java    | 32 +++++++---------------
 .../apache/parquet/hadoop/util/HadoopStreams.java  | 13 ++-------
 .../org/apache/parquet/pig/TupleWriteSupport.java  |  4 +--
 .../apache/parquet/pig/convert/TupleConverter.java |  7 ++---
 .../apache/parquet/pig/summary/SummaryData.java    |  8 ------
 .../hadoop/thrift/ThriftBytesWriteSupport.java     |  4 +--
 .../parquet/hadoop/thrift/ThriftReadSupport.java   |  8 ++----
 24 files changed, 50 insertions(+), 159 deletions(-)

diff --git a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java
index cc49cc2..b9c07cf 100644
--- a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java
+++ b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java
@@ -273,13 +273,8 @@ public class AvroConverters {
     public Object convert(Binary binary) {
       try {
         return ctor.newInstance(binary.toStringUsingUTF8());
-      } catch (InstantiationException e) {
-        throw new ParquetDecodingException(
-            "Cannot convert binary to " + stringableName, e);
-      } catch (IllegalAccessException e) {
-        throw new ParquetDecodingException(
-            "Cannot convert binary to " + stringableName, e);
-      } catch (InvocationTargetException e) {
+      } catch (InstantiationException | IllegalAccessException
+          | InvocationTargetException e) {
         throw new ParquetDecodingException(
             "Cannot convert binary to " + stringableName, e);
       }
diff --git a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java
index 93bde65..743d6aa 100644
--- a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java
+++ b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java
@@ -381,9 +381,7 @@ class AvroRecordConverter<T> extends AvroConverters.AvroGroupConverter {
 
       try {
         return (Class<T>) getClassMethod.invoke(schema);
-      } catch (IllegalAccessException e) {
-        return null;
-      } catch (InvocationTargetException e) {
+      } catch (IllegalAccessException | InvocationTargetException e) {
         return null;
       }
     }
diff --git a/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java b/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java
index f67b99f..4b989d7 100644
--- a/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java
+++ b/parquet-cli/src/main/java/org/apache/parquet/cli/json/AvroJson.java
@@ -80,9 +80,7 @@ public class AvroJson {
   public static <T> T parse(String json, Class<T> returnType) {
     try {
       return MAPPER.readValue(json, returnType);
-    } catch (JsonParseException e) {
-      throw new IllegalArgumentException("Invalid JSON", e);
-    } catch (JsonMappingException e) {
+    } catch (JsonParseException | JsonMappingException e) {
       throw new IllegalArgumentException("Invalid JSON", e);
     } catch (IOException e) {
       throw new RuntimeIOException("Cannot initialize JSON parser", e);
@@ -96,9 +94,7 @@ public class AvroJson {
   public static <T> T parse(InputStream json, Class<T> returnType) {
     try {
       return MAPPER.readValue(json, returnType);
-    } catch (JsonParseException e) {
-      throw new IllegalArgumentException("Invalid JSON stream", e);
-    } catch (JsonMappingException e) {
+    } catch (JsonParseException | JsonMappingException e) {
       throw new IllegalArgumentException("Invalid JSON stream", e);
     } catch (IOException e) {
       throw new RuntimeIOException("Cannot initialize JSON parser", e);
diff --git a/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java b/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java
index d19e489..221a876 100644
--- a/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java
+++ b/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java
@@ -84,10 +84,7 @@ public class CorruptDeltaByteArrays {
     try {
       return requiresSequentialReads(VersionParser.parse(createdBy), encoding);
 
-    } catch (RuntimeException e) {
-      warnParseError(createdBy, e);
-      return true;
-    } catch (VersionParser.VersionParseException e) {
+    } catch (RuntimeException | VersionParser.VersionParseException e) {
       warnParseError(createdBy, e);
       return true;
     }
diff --git a/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java b/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java
index 5724602..1f93735 100644
--- a/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java
+++ b/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java
@@ -94,17 +94,7 @@ public class CorruptStatistics {
 
       // this file was created after the fix
       return false;
-    } catch (RuntimeException e) {
-      // couldn't parse the created_by field, log what went wrong, don't trust the stats,
-      // but don't make this fatal.
-      warnParseErrorOnce(createdBy, e);
-      return true;
-    } catch (SemanticVersionParseException e) {
-      // couldn't parse the created_by field, log what went wrong, don't trust the stats,
-      // but don't make this fatal.
-      warnParseErrorOnce(createdBy, e);
-      return true;
-    } catch (VersionParseException e) {
+    } catch (RuntimeException | SemanticVersionParseException | VersionParseException e) {
       // couldn't parse the created_by field, log what went wrong, don't trust the stats,
       // but don't make this fatal.
       warnParseErrorOnce(createdBy, e);
diff --git a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReadStoreImpl.java b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReadStoreImpl.java
index 755985d..a39e5e1 100644
--- a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReadStoreImpl.java
+++ b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReadStoreImpl.java
@@ -65,9 +65,7 @@ public class ColumnReadStoreImpl implements ColumnReadStore {
     ParsedVersion version;
     try {
       version = VersionParser.parse(createdBy);
-    } catch (RuntimeException e) {
-      version = null;
-    } catch (VersionParseException e) {
+    } catch (RuntimeException | VersionParseException e) {
       version = null;
     }
     this.writerVersion = version;
diff --git a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
index 6411325..9cbedc5 100644
--- a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
+++ b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
@@ -38,9 +38,7 @@ public class BinaryPlainValuesReader extends ValuesReader {
     try {
       int length = BytesUtils.readIntLittleEndian(in);
       return Binary.fromConstantByteBuffer(in.slice(length));
-    } catch (IOException e) {
-      throw new ParquetDecodingException("could not read bytes at offset " + in.position(), e);
-    } catch (RuntimeException e) {
+    } catch (IOException | RuntimeException e) {
       throw new ParquetDecodingException("could not read bytes at offset " + in.position(), e);
     }
   }
@@ -50,9 +48,7 @@ public class BinaryPlainValuesReader extends ValuesReader {
     try {
       int length = BytesUtils.readIntLittleEndian(in);
       in.skipFully(length);
-    } catch (IOException e) {
-      throw new ParquetDecodingException("could not skip bytes at offset " + in.position(), e);
-    } catch (RuntimeException e) {
+    } catch (IOException | RuntimeException e) {
       throw new ParquetDecodingException("could not skip bytes at offset " + in.position(), e);
     }
   }
diff --git a/parquet-column/src/main/java/org/apache/parquet/filter2/predicate/Operators.java b/parquet-column/src/main/java/org/apache/parquet/filter2/predicate/Operators.java
index eca0f67..f39a5d3 100644
--- a/parquet-column/src/main/java/org/apache/parquet/filter2/predicate/Operators.java
+++ b/parquet-column/src/main/java/org/apache/parquet/filter2/predicate/Operators.java
@@ -402,9 +402,7 @@ public final class Operators {
     public U getUserDefinedPredicate() {
       try {
         return udpClass.newInstance();
-      } catch (InstantiationException e) {
-        throw new RuntimeException(String.format(INSTANTIATION_ERROR_MESSAGE, udpClass), e);
-      } catch (IllegalAccessException e) {
+      } catch (InstantiationException | IllegalAccessException e) {
         throw new RuntimeException(String.format(INSTANTIATION_ERROR_MESSAGE, udpClass), e);
       }
     }
diff --git a/parquet-common/src/main/java/org/apache/parquet/VersionParser.java b/parquet-common/src/main/java/org/apache/parquet/VersionParser.java
index fc4ff6c..88b39a6 100644
--- a/parquet-common/src/main/java/org/apache/parquet/VersionParser.java
+++ b/parquet-common/src/main/java/org/apache/parquet/VersionParser.java
@@ -53,10 +53,7 @@ public class VersionParser {
       try {
         sv = SemanticVersion.parse(version);
         hasSemver = true;
-      } catch (RuntimeException e) {
-        sv = null;
-        hasSemver = false;
-      } catch (SemanticVersionParseException e) {
+      } catch (RuntimeException | SemanticVersionParseException e) {
         sv = null;
         hasSemver = false;
       }
diff --git a/parquet-common/src/main/java/org/apache/parquet/util/DynConstructors.java b/parquet-common/src/main/java/org/apache/parquet/util/DynConstructors.java
index e1dddf1..19a1093 100644
--- a/parquet-common/src/main/java/org/apache/parquet/util/DynConstructors.java
+++ b/parquet-common/src/main/java/org/apache/parquet/util/DynConstructors.java
@@ -47,9 +47,7 @@ public class DynConstructors {
     public C newInstanceChecked(Object... args) throws Exception {
       try {
         return ctor.newInstance(args);
-      } catch (InstantiationException e) {
-        throw e;
-      } catch (IllegalAccessException e) {
+      } catch (InstantiationException | IllegalAccessException e) {
         throw e;
       } catch (InvocationTargetException e) {
         throwIfInstance(e.getCause(), Exception.class);
@@ -136,13 +134,11 @@ public class DynConstructors {
       try {
         Class<?> targetClass = Class.forName(className, true, loader);
         impl(targetClass, types);
-      } catch (NoClassDefFoundError e) {
+      } catch (NoClassDefFoundError | ClassNotFoundException e) {
         // cannot load this implementation
         problems.put(className, e);
-      } catch (ClassNotFoundException e) {
-        // not the right implementation
-        problems.put(className, e);
       }
+
       return this;
     }
 
@@ -176,12 +172,9 @@ public class DynConstructors {
       try {
         Class targetClass = Class.forName(className, true, loader);
         hiddenImpl(targetClass, types);
-      } catch (NoClassDefFoundError e) {
+      } catch (NoClassDefFoundError | ClassNotFoundException e) {
         // cannot load this implementation
         problems.put(className, e);
-      } catch (ClassNotFoundException e) {
-        // not the right implementation
-        problems.put(className, e);
       }
       return this;
     }
@@ -196,11 +189,8 @@ public class DynConstructors {
         Constructor<T> hidden = targetClass.getDeclaredConstructor(types);
         AccessController.doPrivileged(new MakeAccessible(hidden));
         ctor = new Ctor<T>(hidden, targetClass);
-      } catch (SecurityException e) {
-        // unusable
-        problems.put(methodName(targetClass, types), e);
-      } catch (NoSuchMethodException e) {
-        // not the right implementation
+      } catch (NoSuchMethodException | SecurityException e) {
+        // unusable or not the right implementation
         problems.put(methodName(targetClass, types), e);
       }
       return this;
diff --git a/parquet-common/src/main/java/org/apache/parquet/util/DynMethods.java b/parquet-common/src/main/java/org/apache/parquet/util/DynMethods.java
index e4f025d..c2de44a 100644
--- a/parquet-common/src/main/java/org/apache/parquet/util/DynMethods.java
+++ b/parquet-common/src/main/java/org/apache/parquet/util/DynMethods.java
@@ -386,10 +386,8 @@ public class DynMethods {
         Method hidden = targetClass.getDeclaredMethod(methodName, argClasses);
         AccessController.doPrivileged(new MakeAccessible(hidden));
         this.method = new UnboundMethod(hidden, name);
-      } catch (SecurityException e) {
-        // unusable
-      } catch (NoSuchMethodException e) {
-        // not the right implementation
+      } catch (SecurityException | NoSuchMethodException e) {
+        // unusable or not the right implementation
       }
       return this;
     }
diff --git a/parquet-encoding/src/main/java/org/apache/parquet/column/values/bitpacking/Packer.java b/parquet-encoding/src/main/java/org/apache/parquet/column/values/bitpacking/Packer.java
index f345596..177b45f 100644
--- a/parquet-encoding/src/main/java/org/apache/parquet/column/values/bitpacking/Packer.java
+++ b/parquet-encoding/src/main/java/org/apache/parquet/column/values/bitpacking/Packer.java
@@ -76,15 +76,8 @@ public enum Packer {
   private static Object getStaticField(String className, String fieldName) {
     try {
       return Class.forName(className).getField(fieldName).get(null);
-    } catch (IllegalArgumentException e) {
-      throw new RuntimeException(e);
-    } catch (IllegalAccessException e) {
-      throw new RuntimeException(e);
-    } catch (NoSuchFieldException e) {
-      throw new RuntimeException(e);
-    } catch (SecurityException e) {
-      throw new RuntimeException(e);
-    } catch (ClassNotFoundException e) {
+    } catch (IllegalArgumentException | IllegalAccessException
+        | NoSuchFieldException | SecurityException | ClassNotFoundException e) {
       throw new RuntimeException(e);
     }
   }
diff --git a/parquet-format-structures/src/main/java/org/apache/parquet/format/event/Consumers.java b/parquet-format-structures/src/main/java/org/apache/parquet/format/event/Consumers.java
index ef87997..ae6e908 100644
--- a/parquet-format-structures/src/main/java/org/apache/parquet/format/event/Consumers.java
+++ b/parquet-format-structures/src/main/java/org/apache/parquet/format/event/Consumers.java
@@ -183,9 +183,7 @@ class TBaseStructConsumer<T extends TBase<T, ? extends TFieldIdEnum>> extends St
   protected T newObject() {
     try {
       return c.newInstance();
-    } catch (InstantiationException e) {
-      throw new RuntimeException(c.getName(), e);
-    } catch (IllegalAccessException e) {
+    } catch (InstantiationException | IllegalAccessException e) {
       throw new RuntimeException(c.getName(), e);
     }
   }
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DirectCodecFactory.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DirectCodecFactory.java
index d201fc8..007c374 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DirectCodecFactory.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/DirectCodecFactory.java
@@ -65,10 +65,8 @@ class DirectCodecFactory extends CodecFactory implements AutoCloseable {
       tempClass = Class.forName("org.apache.hadoop.io.compress.DirectDecompressionCodec");
       tempCreateMethod = tempClass.getMethod("createDirectDecompressor");
       tempDecompressMethod = tempClass.getMethod("decompress", ByteBuffer.class, ByteBuffer.class);
-    } catch (ClassNotFoundException e) {
+    } catch (ClassNotFoundException | NoSuchMethodException e) {
       // do nothing, the class will just be assigned null
-    } catch (NoSuchMethodException e) {
-      // do nothing, the method will just be assigned null
     }
     DIRECT_DECOMPRESSION_CODEC_CLASS = tempClass;
     CREATE_DIRECT_DECOMPRESSOR_METHOD = tempCreateMethod;
@@ -212,9 +210,7 @@ class DirectCodecFactory extends CodecFactory implements AutoCloseable {
       output.clear();
       try {
         DECOMPRESS_METHOD.invoke(decompressor, (ByteBuffer) input.limit(compressedSize), (ByteBuffer) output.limit(uncompressedSize));
-      } catch (IllegalAccessException e) {
-        throw new DirectCodecPool.ParquetCompressionCodecException(e);
-      } catch (InvocationTargetException e) {
+      } catch (IllegalAccessException | InvocationTargetException e) {
         throw new DirectCodecPool.ParquetCompressionCodecException(e);
       }
       output.position(uncompressedSize);
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetInputFormat.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetInputFormat.java
index 7eab611..c3c52e3 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetInputFormat.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetInputFormat.java
@@ -195,10 +195,9 @@ public class ParquetInputFormat<T> extends FileInputFormat<Void, T> {
       }
 
       return unboundRecordFilter;
-    } catch (InstantiationException e) {
-      throw new BadConfigurationException("could not instantiate unbound record filter class", e);
-    } catch (IllegalAccessException e) {
-      throw new BadConfigurationException("could not instantiate unbound record filter class", e);
+    } catch (InstantiationException | IllegalAccessException e) {
+      throw new BadConfigurationException(
+          "could not instantiate unbound record filter class", e);
     }
   }
 
@@ -312,9 +311,7 @@ public class ParquetInputFormat<T> extends FileInputFormat<Void, T> {
       Class<? extends ReadSupport<T>> readSupportClass){
     try {
       return readSupportClass.newInstance();
-    } catch (InstantiationException e) {
-      throw new BadConfigurationException("could not instantiate read support class", e);
-    } catch (IllegalAccessException e) {
+    } catch (InstantiationException | IllegalAccessException e) {
       throw new BadConfigurationException("could not instantiate read support class", e);
     }
   }
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetOutputFormat.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetOutputFormat.java
index db73fb6..676e2ca 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetOutputFormat.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetOutputFormat.java
@@ -503,9 +503,7 @@ public class ParquetOutputFormat<T> extends FileOutputFormat<Void, T> {
     Class<?> writeSupportClass = getWriteSupportClass(configuration);
     try {
       return (WriteSupport<T>)checkNotNull(writeSupportClass, "writeSupportClass").newInstance();
-    } catch (InstantiationException e) {
-      throw new BadConfigurationException("could not instantiate write support class: " + writeSupportClass, e);
-    } catch (IllegalAccessException e) {
+    } catch (InstantiationException | IllegalAccessException e) {
       throw new BadConfigurationException("could not instantiate write support class: " + writeSupportClass, e);
     }
   }
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/metadata/ParquetMetadata.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/metadata/ParquetMetadata.java
index 8c7a33a..00d02a4 100755
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/metadata/ParquetMetadata.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/metadata/ParquetMetadata.java
@@ -69,10 +69,6 @@ public class ParquetMetadata {
       } else {
         objectMapper.writeValue(stringWriter, parquetMetaData);
       }
-    } catch (JsonGenerationException e) {
-      throw new RuntimeException(e);
-    } catch (JsonMappingException e) {
-      throw new RuntimeException(e);
     } catch (IOException e) {
       throw new RuntimeException(e);
     }
@@ -87,10 +83,6 @@ public class ParquetMetadata {
   public static ParquetMetadata fromJSON(String json) {
     try {
       return objectMapper.readValue(new StringReader(json), ParquetMetadata.class);
-    } catch (JsonParseException e) {
-      throw new RuntimeException(e);
-    } catch (JsonMappingException e) {
-      throw new RuntimeException(e);
     } catch (IOException e) {
       throw new RuntimeException(e);
     }
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/ContextUtil.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/ContextUtil.java
index 1114ed3..7c5f93e 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/ContextUtil.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/ContextUtil.java
@@ -206,11 +206,8 @@ public class ContextUtil {
     try {
       return (JobContext)
           JOB_CONTEXT_CONSTRUCTOR.newInstance(conf, jobId);
-    } catch (InstantiationException e) {
-      throw new IllegalArgumentException("Can't instantiate JobContext", e);
-    } catch (IllegalAccessException e) {
-      throw new IllegalArgumentException("Can't instantiate JobContext", e);
-    } catch (InvocationTargetException e) {
+    } catch (InstantiationException | IllegalAccessException
+        | InvocationTargetException e) {
       throw new IllegalArgumentException("Can't instantiate JobContext", e);
     }
   }
@@ -228,12 +225,10 @@ public class ContextUtil {
     try {
       return (TaskAttemptContext)
           TASK_CONTEXT_CONSTRUCTOR.newInstance(conf, taskAttemptId);
-    } catch (InstantiationException e) {
-      throw new IllegalArgumentException("Can't instantiate TaskAttemptContext", e);
-    } catch (IllegalAccessException e) {
-      throw new IllegalArgumentException("Can't instantiate TaskAttemptContext", e);
-    } catch (InvocationTargetException e) {
-      throw new IllegalArgumentException("Can't instantiate TaskAttemptContext", e);
+    } catch (InstantiationException | IllegalAccessException
+        | InvocationTargetException e) {
+      throw new IllegalArgumentException("Can't instantiate TaskAttemptContext",
+          e);
     }
   }
 
@@ -248,11 +243,8 @@ public class ContextUtil {
     try {
       return (Counter)
           GENERIC_COUNTER_CONSTRUCTOR.newInstance(name, displayName, value);
-    } catch (InstantiationException e) {
-      throw new IllegalArgumentException("Can't instantiate Counter", e);
-    } catch (IllegalAccessException e) {
-      throw new IllegalArgumentException("Can't instantiate Counter", e);
-    } catch (InvocationTargetException e) {
+    } catch (InstantiationException | IllegalAccessException
+        | InvocationTargetException e) {
       throw new IllegalArgumentException("Can't instantiate Counter", e);
     }
   }
@@ -267,9 +259,7 @@ public class ContextUtil {
   public static Configuration getConfiguration(JobContext context) {
     try {
       return (Configuration) GET_CONFIGURATION_METHOD.invoke(context);
-    } catch (IllegalAccessException e) {
-      throw new IllegalArgumentException("Can't invoke method", e);
-    } catch (InvocationTargetException e) {
+    } catch (IllegalAccessException | InvocationTargetException e) {
       throw new IllegalArgumentException("Can't invoke method", e);
     }
   }
@@ -314,9 +304,7 @@ public class ContextUtil {
   private static Object invoke(Method method, Object obj, Object... args) {
     try {
       return method.invoke(obj, args);
-    } catch (IllegalAccessException e) {
-      throw new IllegalArgumentException("Can't invoke method " + method.getName(), e);
-    } catch (InvocationTargetException e) {
+    } catch (IllegalAccessException | InvocationTargetException e) {
       throw new IllegalArgumentException("Can't invoke method " + method.getName(), e);
     }
   }
diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/HadoopStreams.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/HadoopStreams.java
index c35e98f..37e285d 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/HadoopStreams.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/util/HadoopStreams.java
@@ -54,10 +54,7 @@ public class HadoopStreams {
         byteBufferReadableClass.isInstance(stream.getWrappedStream())) {
       try {
         return h2SeekableConstructor.newInstance(stream);
-      } catch (InstantiationException e) {
-        LOG.warn("Could not instantiate H2SeekableInputStream, falling back to byte array reads", e);
-        return new H1SeekableInputStream(stream);
-      } catch (IllegalAccessException e) {
+      } catch (InstantiationException | IllegalAccessException e) {
         LOG.warn("Could not instantiate H2SeekableInputStream, falling back to byte array reads", e);
         return new H1SeekableInputStream(stream);
       } catch (InvocationTargetException e) {
@@ -72,9 +69,7 @@ public class HadoopStreams {
   private static Class<?> getReadableClass() {
     try {
       return Class.forName("org.apache.hadoop.fs.ByteBufferReadable");
-    } catch (ClassNotFoundException e) {
-      return null;
-    } catch (NoClassDefFoundError e) {
+    } catch (ClassNotFoundException | NoClassDefFoundError e) {
       return null;
     }
   }
@@ -84,9 +79,7 @@ public class HadoopStreams {
     try {
       return (Class<SeekableInputStream>) Class.forName(
           "org.apache.parquet.hadoop.util.H2SeekableInputStream");
-    } catch (ClassNotFoundException e) {
-      return null;
-    } catch (NoClassDefFoundError e) {
+    } catch (ClassNotFoundException | NoClassDefFoundError e) {
       return null;
     }
   }
diff --git a/parquet-pig/src/main/java/org/apache/parquet/pig/TupleWriteSupport.java b/parquet-pig/src/main/java/org/apache/parquet/pig/TupleWriteSupport.java
index 2cf676c..68a7d7d 100644
--- a/parquet-pig/src/main/java/org/apache/parquet/pig/TupleWriteSupport.java
+++ b/parquet-pig/src/main/java/org/apache/parquet/pig/TupleWriteSupport.java
@@ -97,9 +97,7 @@ public class TupleWriteSupport extends WriteSupport<Tuple> {
       recordConsumer.startMessage();
       writeTuple(rootSchema, rootPigSchema, t);
       recordConsumer.endMessage();
-    } catch (ExecException e) {
-      throw new RuntimeException(e);
-    } catch (FrontendException e) {
+    } catch (ExecException | FrontendException e) {
       throw new RuntimeException(e);
     }
   }
diff --git a/parquet-pig/src/main/java/org/apache/parquet/pig/convert/TupleConverter.java b/parquet-pig/src/main/java/org/apache/parquet/pig/convert/TupleConverter.java
index 48bb753..7b7fadb 100644
--- a/parquet-pig/src/main/java/org/apache/parquet/pig/convert/TupleConverter.java
+++ b/parquet-pig/src/main/java/org/apache/parquet/pig/convert/TupleConverter.java
@@ -142,10 +142,9 @@ public class TupleConverter extends GroupConverter {
       default:
         throw new TupleConversionException("unsupported pig type: " + pigField);
       }
-    } catch (FrontendException e) {
-      throw new TupleConversionException("error while preparing converter for:\n" + pigField + "\n" + type, e);
-    } catch (RuntimeException e) {
-      throw new TupleConversionException("error while preparing converter for:\n" + pigField + "\n" + type, e);
+    } catch (FrontendException | RuntimeException e) {
+      throw new TupleConversionException(
+          "error while preparing converter for:\n" + pigField + "\n" + type, e);
     }
   }
 
diff --git a/parquet-pig/src/main/java/org/apache/parquet/pig/summary/SummaryData.java b/parquet-pig/src/main/java/org/apache/parquet/pig/summary/SummaryData.java
index e392740..2d97dbb 100644
--- a/parquet-pig/src/main/java/org/apache/parquet/pig/summary/SummaryData.java
+++ b/parquet-pig/src/main/java/org/apache/parquet/pig/summary/SummaryData.java
@@ -58,10 +58,6 @@ public abstract class SummaryData {
     StringWriter stringWriter = new StringWriter();
     try {
       mapper.writeValue(stringWriter, summaryData);
-    } catch (JsonGenerationException e) {
-      throw new RuntimeException(e);
-    } catch (JsonMappingException e) {
-      throw new RuntimeException(e);
     } catch (IOException e) {
       throw new RuntimeException(e);
     }
@@ -71,10 +67,6 @@ public abstract class SummaryData {
   public static <T extends SummaryData> T fromJSON(String json, Class<T> clazz) {
     try {
       return objectMapper.readValue(new StringReader(json), clazz);
-    } catch (JsonParseException e) {
-      throw new RuntimeException(e);
-    } catch (JsonMappingException e) {
-      throw new RuntimeException(e);
     } catch (IOException e) {
       throw new RuntimeException(e);
     }
diff --git a/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftBytesWriteSupport.java b/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftBytesWriteSupport.java
index 6f5d50d..78fe2d7 100644
--- a/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftBytesWriteSupport.java
+++ b/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftBytesWriteSupport.java
@@ -106,9 +106,7 @@ public class ThriftBytesWriteSupport extends WriteSupport<BytesWritable> {
     if (this.protocolFactory == null) {
       try {
         this.protocolFactory = getTProtocolFactoryClass(configuration).newInstance();
-      } catch (InstantiationException e) {
-        throw new RuntimeException(e);
-      } catch (IllegalAccessException e) {
+      } catch (InstantiationException | IllegalAccessException e) {
         throw new RuntimeException(e);
       }
     }
diff --git a/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftReadSupport.java b/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftReadSupport.java
index 1a3a2c0..9b6881e 100644
--- a/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftReadSupport.java
+++ b/parquet-thrift/src/main/java/org/apache/parquet/hadoop/thrift/ThriftReadSupport.java
@@ -264,18 +264,14 @@ public class ThriftReadSupport<T> extends ReadSupport<T> {
         Constructor<ThriftRecordConverter<T>> constructor =
             converterClass.getConstructor(Class.class, MessageType.class, StructType.class, Configuration.class);
         return constructor.newInstance(thriftClass, requestedSchema, descriptor, conf);
-      } catch (IllegalAccessException e) {
+      } catch (IllegalAccessException | NoSuchMethodException e) {
         // try the other constructor pattern
-      } catch (NoSuchMethodException e) {
-        // try to find the other constructor pattern
       }
 
       Constructor<ThriftRecordConverter<T>> constructor =
           converterClass.getConstructor(Class.class, MessageType.class, StructType.class);
       return constructor.newInstance(thriftClass, requestedSchema, descriptor);
-    } catch (InstantiationException e) {
-      throw new RuntimeException("Failed to construct Thrift converter class: " + converterClassName, e);
-    } catch (InvocationTargetException e) {
+    } catch (InstantiationException | InvocationTargetException e) {
       throw new RuntimeException("Failed to construct Thrift converter class: " + converterClassName, e);
     } catch (IllegalAccessException e) {
       throw new RuntimeException("Cannot access constructor for Thrift converter class: " + converterClassName, e);