From a76261ac9e40eb57e942db2c7aea8b8a5e904ff2 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Thu, 13 Feb 2014 22:43:31 +0100 Subject: fdo#74683: java.lang.System.mapLibraryName dylib vs. jnilib confusion Change-Id: I8fd7b908613a90c983f2244383432dd50ba10cdb --- .../com/sun/star/sdbcx/comp/hsqldb/NativeLibraries.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'connectivity') diff --git a/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeLibraries.java b/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeLibraries.java index db3d5f185ff8..866f550f0a1b 100644 --- a/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeLibraries.java +++ b/connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeLibraries.java @@ -44,8 +44,18 @@ final class NativeLibraries { } catch (UnsatisfiedLinkError e) { ClassLoader cl = NativeLibraries.class.getClassLoader(); if (cl instanceof URLClassLoader) { - URL url = ((URLClassLoader) cl).findResource( - System.mapLibraryName(libname)); + String sysname = System.mapLibraryName(libname); + // At least Oracle's 1.7.0_51 now maps to .dylib rather than + // .jnilib: + if (System.getProperty("os.name").startsWith("Mac") + && sysname.endsWith(".dylib")) + { + sysname + = sysname.substring( + 0, sysname.length() - "dylib".length()) + + "jnilib"; + } + URL url = ((URLClassLoader) cl).findResource(sysname); if (url != null) { try { System.load( -- cgit