From efe35610dce2eecd10e305f5f83e95df685cbefa Mon Sep 17 00:00:00 2001 From: Dain Sundstrom Date: Wed, 7 Aug 2024 16:17:04 -0700 Subject: [PATCH] Try to caputre exception --- .../io/airlift/compress/v2/HadoopNative.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/test/java/io/airlift/compress/v2/HadoopNative.java b/src/test/java/io/airlift/compress/v2/HadoopNative.java index 370b0543..7496b2d8 100644 --- a/src/test/java/io/airlift/compress/v2/HadoopNative.java +++ b/src/test/java/io/airlift/compress/v2/HadoopNative.java @@ -68,14 +68,9 @@ private static void requireNativeZlib() { Configuration conf = new Configuration(); if (!ZlibFactory.isNativeZlibLoaded(conf)) { - Throwable cause = null; - try { - Method initIDs = ZlibCompressor.class.getDeclaredMethod("initIDs"); - initIDs.setAccessible(true); - initIDs.invoke(null); - } - catch (ReflectiveOperationException e) { - cause = e; + Throwable cause = initZlib(ZlibCompressor.class); + if (cause == null) { + cause = initZlib(ZlibDecompressor.class); } throw new RuntimeException("native zlib is not loaded", cause); } @@ -91,6 +86,19 @@ private static void requireNativeZlib() } } + private static Throwable initZlib(Class clazz) + { + try { + Method initIDs = clazz.getDeclaredMethod("initIDs"); + initIDs.setAccessible(true); + initIDs.invoke(null); + return null; + } + catch (ReflectiveOperationException e) { + return e; + } + } + private static void setStatic(Field field, Object value) throws IllegalAccessException {