diff --git a/pom.xml b/pom.xml
index fdfe086..655c569 100755
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
org.xerial.snappy
snappy-java
- 1.0.5.2
+ 1.0.5.3
Snappy for Java
snappy-java: A fast compression/decompression library
bundle
diff --git a/src/main/java/org/xerial/snappy/SnappyLoader.java b/src/main/java/org/xerial/snappy/SnappyLoader.java
index 99b0e7a..579e228 100755
--- a/src/main/java/org/xerial/snappy/SnappyLoader.java
+++ b/src/main/java/org/xerial/snappy/SnappyLoader.java
@@ -38,10 +38,7 @@ import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.ProtectionDomain;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Properties;
+import java.util.*;
/**
* Internal only - Do not use this class. This class loads a native
@@ -366,8 +363,10 @@ public class SnappyLoader
*/
private static File extractLibraryFile(String libFolderForCurrentOS, String libraryFileName, String targetFolder) {
String nativeLibraryFilePath = libFolderForCurrentOS + "/" + libraryFileName;
- final String prefix = "snappy-" + getVersion() + "-";
- String extractedLibFileName = prefix + libraryFileName;
+
+ // Attach UUID to the native library file to ensure multiple class loaders can read the libsnappy-java multiple times.
+ String uuid = UUID.randomUUID().toString();
+ String extractedLibFileName = String.format("snappy-%s-%s-%s", getVersion(), uuid, libraryFileName);
File extractedLibFile = new File(targetFolder, extractedLibFileName);
try {