From 4ee2936297c43f294972620b8ad248fb640570ca Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Thu, 23 Jun 2011 22:26:01 +0900 Subject: [PATCH] Removed garbage code --- .../java/org/xerial/snappy/SnappyLoader.java | 24 +++++++++---------- .../java/org/xerial/snappy/SnappyNative.java | 6 +++-- .../org/xerial/snappy/SnappyLoaderTest.java | 14 ++--------- .../java/org/xerial/snappy/SnappyTest.java | 8 +------ 4 files changed, 19 insertions(+), 33 deletions(-) diff --git a/src/main/java/org/xerial/snappy/SnappyLoader.java b/src/main/java/org/xerial/snappy/SnappyLoader.java index 2c31e5b..b5ee247 100755 --- a/src/main/java/org/xerial/snappy/SnappyLoader.java +++ b/src/main/java/org/xerial/snappy/SnappyLoader.java @@ -31,6 +31,7 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Method; import java.net.URL; import java.security.DigestInputStream; import java.security.MessageDigest; @@ -57,8 +58,8 @@ import java.util.Properties; *
  • One of the libraries embedded in snappy-java-(version).jar extracted into * (System property: java.io.tempdir or if * org.xerial.snappy.tempdir is set, use this folder.) - *
  • Folders in LD_PATH environment variable (This is the default path that - * JVM searches for native libraries) + *
  • Folders specified by java.lib.path system property (This is the default + * path that JVM searches for native libraries) * * *

    @@ -109,7 +110,7 @@ public class SnappyLoader if (!isInitialized) { final String nativeLoaderClassName = "org.xerial.snappy.SnappyNativeLoader"; - final String[] preloadClass = new String[] { "org.xerial.snappy.SnappyNative", + final String[] classesToPreload = new String[] { "org.xerial.snappy.SnappyNative", "org.xerial.snappy.SnappyErrorCode" }; try { @@ -123,15 +124,15 @@ public class SnappyLoader // Load a byte code byte[] byteCode = getByteCode("/org/xerial/snappy/SnappyNativeLoader.bytecode"); // In addition, load the SnappyNative and SnappyException class in the system class loader - List preloadClassByteCode = new ArrayList(preloadClass.length); - for (String each : preloadClass) { + List preloadClassByteCode = new ArrayList(classesToPreload.length); + for (String each : classesToPreload) { preloadClassByteCode.add(getByteCode(String.format("/%s.class", each.replaceAll("\\.", "/")))); } // Create a new class to the system class loader Class< ? > classLoader = Class.forName("java.lang.ClassLoader"); - java.lang.reflect.Method defineClass = classLoader.getDeclaredMethod("defineClass", new Class[] { - String.class, byte[].class, int.class, int.class, ProtectionDomain.class }); + Method defineClass = classLoader.getDeclaredMethod("defineClass", new Class[] { String.class, + byte[].class, int.class, int.class, ProtectionDomain.class }); ClassLoader systemClassLoader = getSystemClassLoader(); defineClass.setAccessible(true); @@ -140,9 +141,9 @@ public class SnappyLoader defineClass.invoke(systemClassLoader, nativeLoaderClassName, byteCode, 0, byteCode.length, System.class.getProtectionDomain()); - for (int i = 0; i < preloadClass.length; ++i) { + for (int i = 0; i < classesToPreload.length; ++i) { byte[] b = preloadClassByteCode.get(i); - defineClass.invoke(systemClassLoader, preloadClass[i], b, 0, b.length, + defineClass.invoke(systemClassLoader, classesToPreload[i], b, 0, b.length, System.class.getProtectionDomain()); } } @@ -153,12 +154,11 @@ public class SnappyLoader // Load the loader class Class< ? > loaderClass = systemClassLoader.loadClass(nativeLoaderClassName); if (loaderClass != null) { - java.lang.reflect.Method loadMethod = loaderClass.getDeclaredMethod("load", - new Class[] { String.class }); + Method loadMethod = loaderClass.getDeclaredMethod("load", new Class[] { String.class }); File nativeLib = findNativeLibrary(); loadMethod.invoke(null, nativeLib.getAbsolutePath()); - for (String each : preloadClass) { + for (String each : classesToPreload) { systemClassLoader.loadClass(each); } diff --git a/src/main/java/org/xerial/snappy/SnappyNative.java b/src/main/java/org/xerial/snappy/SnappyNative.java index 42e0882..d97b3b3 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.java +++ b/src/main/java/org/xerial/snappy/SnappyNative.java @@ -28,7 +28,9 @@ import java.io.IOException; import java.nio.ByteBuffer; /** - * Interface to access the native code of Snappy + * Interface to access the native code of Snappy. Although the methods in this + * class are public, do not use them. + * * * @author leo * @@ -67,7 +69,7 @@ public class SnappyNative public native static boolean isValidCompressedBuffer(Object input, int offset, int len) throws IOException; protected static void throw_error(int errorCode) throws IOException { - throw new IOException(SnappyErrorCode.getErrorMessage(errorCode)); + throw new IOException(String.format("%s(%d)", SnappyErrorCode.getErrorMessage(errorCode), errorCode)); } } diff --git a/src/test/java/org/xerial/snappy/SnappyLoaderTest.java b/src/test/java/org/xerial/snappy/SnappyLoaderTest.java index dab9fb4..a47c302 100755 --- a/src/test/java/org/xerial/snappy/SnappyLoaderTest.java +++ b/src/test/java/org/xerial/snappy/SnappyLoaderTest.java @@ -89,17 +89,7 @@ public class SnappyLoaderTest @Test public void load() throws Exception { - //SnappyLoader.load(); - // Class< ? > c1 = Class.forName("org.xerial.snappy.SnappyNative"); - // Class< ? > c2 = Class.forName("org.xerial.snappy.Snappy"); - // ClassLoader cl1 = c1.getClassLoader(); - // ClassLoader cl2 = c2.getClassLoader(); - // Method m = c1.getDeclaredMethod("nativeLibraryVersion"); - // m.setAccessible(true); - // String version = (String) m.invoke(null); - // _logger.info(version); - - //_logger.info(SnappyNative.nativeLibraryVersion()); - _logger.info(Snappy.getNativeLibraryVersion()); + SnappyLoader.load(); + _logger.debug(Snappy.getNativeLibraryVersion()); } } diff --git a/src/test/java/org/xerial/snappy/SnappyTest.java b/src/test/java/org/xerial/snappy/SnappyTest.java index b60982e..1347c62 100755 --- a/src/test/java/org/xerial/snappy/SnappyTest.java +++ b/src/test/java/org/xerial/snappy/SnappyTest.java @@ -296,15 +296,9 @@ public class SnappyTest fail("cannot reach here since the input is invalid data"); } catch (IOException e) { + _logger.debug(e); //assertEquals(SnappyErrorCode.FAILED_TO_UNCOMPRESS, e.errorCode); } - // catch (Exception e) { - // Class< ? > c = e.getClass(); - // ClassLoader cl = c.getClassLoader(); - // - // ClassLoader cl2 = SnappyException.class.getClassLoader(); - // _logger.error(e); - // } }