aboutsummaryrefslogtreecommitdiffstats
path: root/src/java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-10-25 11:35:05 +0200
committerSven Gothel <[email protected]>2012-10-25 11:35:05 +0200
commitabbe6ce0973fbd82971ace1866515beefcc41817 (patch)
tree436ec13917574704841984c820e429e88fcb873a /src/java
parent661a625ed69faf701b6e868225148f630c2002d8 (diff)
Fix Bug 608: Push down TempJarCache.findLibrary(..) from JNILibLoaderBase.loadLibraryInternal() to NativeLibrary.findLibrary(..)
This allows using TempJarCache (if used/initialized) for native 'tool' libraries as well. This is the case of JOAL's attempt to load the provided 'libopenal.so'
Diffstat (limited to 'src/java')
-rw-r--r--src/java/com/jogamp/common/jvm/JNILibLoaderBase.java14
-rwxr-xr-xsrc/java/com/jogamp/common/os/NativeLibrary.java17
2 files changed, 15 insertions, 16 deletions
diff --git a/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java b/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
index 827b361..94f451e 100644
--- a/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
+++ b/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
@@ -425,20 +425,8 @@ public class JNILibLoaderBase {
throw (UnsatisfiedLinkError) new UnsatisfiedLinkError("can not load library "+libraryName).initCause(e);
}
} else {
- if(TempJarCache.isInitialized()) {
- final String libraryPath = TempJarCache.findLibrary(libraryName);
- if(null != libraryPath) {
- if(DEBUG) {
- System.err.println("JNILibLoaderBase: loadLibraryInternal("+libraryName+") -> System.load("+libraryPath+") (TempJarCache)");
- }
- System.load(libraryPath);
- return; // done
- } else if(DEBUG) {
- System.err.println("JNILibLoaderBase: loadLibraryInternal("+libraryName+") -> TempJarCache not mapped");
- }
- }
// System.err.println("sun.boot.library.path=" + Debug.getProperty("sun.boot.library.path", false));
- final String libraryPath = NativeLibrary.findLibrary(libraryName, cl);
+ final String libraryPath = NativeLibrary.findLibrary(libraryName, cl); // implicit TempJarCache usage if used/initialized
if(DEBUG) {
System.err.print("JNILibLoaderBase: loadLibraryInternal("+libraryName+"): CL: "+libraryPath);
}
diff --git a/src/java/com/jogamp/common/os/NativeLibrary.java b/src/java/com/jogamp/common/os/NativeLibrary.java
index 1fc2e65..f5265af 100755
--- a/src/java/com/jogamp/common/os/NativeLibrary.java
+++ b/src/java/com/jogamp/common/os/NativeLibrary.java
@@ -41,6 +41,8 @@
package com.jogamp.common.os;
import com.jogamp.common.util.IOUtil;
+import com.jogamp.common.util.cache.TempJarCache;
+
import jogamp.common.os.MacOSXDynamicLinkerImpl;
import jogamp.common.os.PlatformPropsImpl;
import jogamp.common.os.UnixDynamicLinkerImpl;
@@ -460,9 +462,18 @@ public class NativeLibrary implements DynamicLookupHelper {
return null;
}
public static String findLibrary(final String libName, final ClassLoader loader) {
- final String res = findLibraryImpl(libName, loader);
- if (DEBUG) {
- System.err.println("NativeLibrary.findLibrary(<"+libName+">, "+loader+"): "+res);
+ String res = null;
+ if(TempJarCache.isInitialized()) {
+ res = TempJarCache.findLibrary(libName);
+ if (DEBUG) {
+ System.err.println("NativeLibrary.findLibrary(<"+libName+">) (TempJarCache): "+res);
+ }
+ }
+ if(null == res) {
+ res = findLibraryImpl(libName, loader);
+ if (DEBUG) {
+ System.err.println("NativeLibrary.findLibrary(<"+libName+">, "+loader+") (CL): "+res);
+ }
}
return res;
}