From 62f7547abb0819d1ca1e669645ee1a9d26cd60b0 Mon Sep 17 00:00:00 2001 From: Yilong Li Date: Tue, 10 Mar 2015 11:50:14 -0500 Subject: [PATCH 1/2] fixed NPE in LZ4Factory when it is loaded by the bootstrap classloader --- src/java/net/jpountz/lz4/LZ4Factory.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/java/net/jpountz/lz4/LZ4Factory.java b/src/java/net/jpountz/lz4/LZ4Factory.java index 66f98a1b..7d1cf271 100644 --- a/src/java/net/jpountz/lz4/LZ4Factory.java +++ b/src/java/net/jpountz/lz4/LZ4Factory.java @@ -146,7 +146,9 @@ public static LZ4Factory fastestInstance() { @SuppressWarnings("unchecked") private static T classInstance(String cls) throws NoSuchFieldException, SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException { - final Class c = LZ4Factory.class.getClassLoader().loadClass(cls); + ClassLoader loader = LZ4Factory.class.getClassLoader(); + loader = loader == null ? ClassLoader.getSystemClassLoader() : loader; + final Class c = loader.loadClass(cls); Field f = c.getField("INSTANCE"); return (T) f.get(null); } From 81a6d1d83a0153836b2e164b99f7d0afe2c80c19 Mon Sep 17 00:00:00 2001 From: Yilong Li Date: Tue, 10 Mar 2015 13:23:33 -0500 Subject: [PATCH 2/2] fixed NPE in XXHashFactory similarly --- src/java/net/jpountz/xxhash/XXHashFactory.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/java/net/jpountz/xxhash/XXHashFactory.java b/src/java/net/jpountz/xxhash/XXHashFactory.java index c9c905c6..ab03dff1 100644 --- a/src/java/net/jpountz/xxhash/XXHashFactory.java +++ b/src/java/net/jpountz/xxhash/XXHashFactory.java @@ -140,7 +140,9 @@ public static XXHashFactory fastestInstance() { @SuppressWarnings("unchecked") private static T classInstance(String cls) throws NoSuchFieldException, SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException { - final Class c = XXHashFactory.class.getClassLoader().loadClass(cls); + ClassLoader loader = XXHashFactory.class.getClassLoader(); + loader = loader == null ? ClassLoader.getSystemClassLoader() : loader; + final Class c = loader.loadClass(cls); Field f = c.getField("INSTANCE"); return (T) f.get(null); }