On Mar 28, 2012, at 5:52 AM, Michael McMahon <michael.x.mcma...@oracle.com> wrote:
> On 28/03/12 08:40, Alan Bateman wrote: >> I just checked a Mac OSX 10.6.8 system with 6u29 installed and >> System.mapLibraryName("foo") returns foo.jnilib. Do you know if this was >> always the case? If so then I think there is an argument to be made that the >> default should be .jnilib and .dynlib be the fallback, especially if it's >> going to break anyone using mapLibraryName (my guess is that mapLibraryName >> usages are rare, at least compared to System.loadLibrary). I don't know this for certain, but I suspect it's been that way for a long time. > Maybe, we should be doing what Dan Daugherty suggested yesterday and > re-mapping the native > filename in the case where a full absolute path is passed in (which is the > code-path > when System.load() is called above) > > My reasoning (for rejecting that) was that an absolute path is a request for > an explicit name > eg. System.load("/abs/path/libfoo.dylib") and it seems odd to go modifying > the path that > the user provided (as opposed to the System.loadLibrary("foo") case, where we > have to > construct the path internally). But, I hadn't considered the case above where > the path > is constructed by calling System.mapLibraryName(). > > So, I think a better approach might be to just to check for the old ".jnilib" > suffix in all > the cases, rather than changing System.mapLibraryName(). Otherwise, we'll > have an inconsistency > forever more between the output of that method and the library suffix that we > want people > to use. > > I've attached the jdk8 diffs for doing this. Thanks! I'll give it a try this morning. I have a couple of JNLP-based apps that were hitting this, too, so I'll do some extra testing. -- Scott