RFR [9] 8047674: java/net/URLPermission/nstest/lookup.sh NoClassDefFoundError when run in concurrent mode

Chris Hegarty chris.hegarty at oracle.com
Mon Jun 23 10:51:36 UTC 2014


This test has been seen to fail occasionally when run with concurrency 
enabled. I believe the reason to be two fold:

  1) The order of the tags may trigger the compilation of the test
     classes before the library classes, causing the test classes to
     implicitly compile the library classes into the tests classes
     directory, rather than the shared higher level library directory,
     ( if the library classes are not already compiled, hence the reason
     the failure appears intermittently).

  2) The test needs to specify the TESTCLASSPATH variable, rather than
     TESTCLASSES. So it can find the library classes in the
     shared higher level library directory.

diff --git a/test/java/net/URLPermission/nstest/lookup.sh 
b/test/java/net/URLPermission/nstest/lookup.sh
--- a/test/java/net/URLPermission/nstest/lookup.sh
+++ b/test/java/net/URLPermission/nstest/lookup.sh
@@ -24,9 +24,9 @@

  # @test
  # @library /lib/testlibrary
+# @build jdk.testlibrary.*
  # @compile -XDignore.symbol.file=true SimpleNameService.java
  #            LookupTest.java SimpleNameServiceDescriptor.java
-# @build jdk.testlibrary.*
  # @run shell/timeout=50 lookup.sh
  #

@@ -42,8 +42,7 @@
      ;;
  esac

-
-port=`${TESTJAVA}/bin/java -cp ${TESTCLASSES} LookupTest -getport`
+port=`${TESTJAVA}/bin/java -cp ${TESTCLASSPATH} LookupTest -getport`

  cat << POLICY > policy
  grant {
@@ -60,4 +59,4 @@
  ${TESTJAVA}/bin/java ${TESTVMOPTS} \
      -Djava.security.policy=file:./policy \
      -Dsun.net.spi.nameservice.provider.1=simple,sun \
-    -cp ${TESTCLASSES}${PS}${TESTSRC} LookupTest -runtest ${port}
+    -cp ${TESTCLASSPATH}${PS}${TESTSRC} LookupTest -runtest ${port}

-Chris.


More information about the net-dev mailing list