> The test `java/lang/ClassLoader/loadLibraryUnload/LoadLibraryUnloadTest.java` > Fails intermittently when expected output from a subprocess is not found. > > I suspect a race between the Cleaner that is going to call JNI_OnUnload (in > NativeLibraries.java:377) when the ClassLoader is no longer referenced and > the test code that exits as soon as it detects that the p.Class1 is no longer > referenced. > > The proposed fix is to create a canary object referenced by the native > library and released when the library is unloaded. > The Java side of the test provides the canary object and uses a WeakReference > to wait for it to be released. > When released the child process exits and the driver test will find all of > the output it expects.
Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Cleanup waiting for library unload ------------- Changes: - all: https://git.openjdk.org/jdk/pull/9474/files - new: https://git.openjdk.org/jdk/pull/9474/files/ce2425fd..68532938 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=9474&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=9474&range=00-01 Stats: 16 lines in 1 file changed: 4 ins; 4 del; 8 mod Patch: https://git.openjdk.org/jdk/pull/9474.diff Fetch: git fetch https://git.openjdk.org/jdk pull/9474/head:pull/9474 PR: https://git.openjdk.org/jdk/pull/9474