changeset 17566:6124931a770f

Merge
author amurillo
date Fri, 26 Aug 2016 10:02:50 -0700
parents a8028ad28ece 5f9f12b3024f
children 80f8d74959a0 6840c15304e7
files
diffstat 39 files changed, 149 insertions(+), 119 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.attach/aix/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/src/jdk.attach/aix/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 10:02:50 2016 -0700
@@ -76,20 +76,29 @@
                 sendQuitTo(pid);
 
                 // give the target VM time to start the attach mechanism
-                int i = 0;
-                long delay = 200;
-                int retries = (int)(attachTimeout() / delay);
+                final int delay_step = 100;
+                final long timeout = attachTimeout();
+                long time_spend = 0;
+                long delay = 0;
                 do {
+                    // Increase timeout on each attempt to reduce polling
+                    delay += delay_step;
                     try {
                         Thread.sleep(delay);
                     } catch (InterruptedException x) { }
                     path = findSocketFile(pid);
-                    i++;
-                } while (i <= retries && path == null);
+
+                    time_spend += delay;
+                    if (time_spend > timeout/2 && path == null) {
+                        // Send QUIT again to give target VM the last chance to react
+                        sendQuitTo(pid);
+                    }
+                } while (time_spend <= timeout && path == null);
                 if (path == null) {
                     throw new AttachNotSupportedException(
-                        "Unable to open socket file: target process not responding " +
-                        "or HotSpot VM not loaded");
+                        String.format("Unable to open socket file %s: " +
+                          "target process %d doesn't respond within %dms " +
+                          "or HotSpot VM not loaded", f.getPath(), pid, time_spend));
                 }
             } finally {
                 f.delete();
--- a/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 10:02:50 2016 -0700
@@ -44,9 +44,6 @@
     // Any changes to this needs to be synchronized with HotSpot.
     private static final String tmpdir = "/tmp";
 
-    // Indicates if this machine uses the old LinuxThreads
-    static boolean isLinuxThreads;
-
     // The patch to the socket file created by the target VM
     String path;
 
@@ -73,44 +70,37 @@
         if (path == null) {
             File f = createAttachFile(pid);
             try {
-                // On LinuxThreads each thread is a process and we don't have the
-                // pid of the VMThread which has SIGQUIT unblocked. To workaround
-                // this we get the pid of the "manager thread" that is created
-                // by the first call to pthread_create. This is parent of all
-                // threads (except the initial thread).
-                if (isLinuxThreads) {
-                    int mpid;
-                    try {
-                        mpid = getLinuxThreadsManager(pid);
-                    } catch (IOException x) {
-                        throw new AttachNotSupportedException(x.getMessage());
-                    }
-                    assert(mpid >= 1);
-                    sendQuitToChildrenOf(mpid);
-                } else {
-                    sendQuitTo(pid);
-                }
+                sendQuitTo(pid);
 
                 // give the target VM time to start the attach mechanism
-                int i = 0;
-                long delay = 200;
-                int retries = (int)(attachTimeout() / delay);
+                final int delay_step = 100;
+                final long timeout = attachTimeout();
+                long time_spend = 0;
+                long delay = 0;
                 do {
+                    // Increase timeout on each attempt to reduce polling
+                    delay += delay_step;
                     try {
                         Thread.sleep(delay);
                     } catch (InterruptedException x) { }
                     path = findSocketFile(pid);
-                    i++;
-                } while (i <= retries && path == null);
+
+                    time_spend += delay;
+                    if (time_spend > timeout/2 && path == null) {
+                        // Send QUIT again to give target VM the last chance to react
+                        sendQuitTo(pid);
+                    }
+                } while (time_spend <= timeout && path == null);
                 if (path == null) {
                     throw new AttachNotSupportedException(
-                        "Unable to open socket file: target process not responding " +
-                        "or HotSpot VM not loaded");
+                        String.format("Unable to open socket file %s: " +
+                          "target process %d doesn't respond within %dms " +
+                          "or HotSpot VM not loaded", f.getPath(), pid, time_spend));
                 }
             } finally {
                 f.delete();
             }
-        }
+      }
 
         // Check that the file owner/permission to avoid attaching to
         // bogus process
@@ -340,6 +330,5 @@
 
     static {
         System.loadLibrary("attach");
-        isLinuxThreads = isLinuxThreads();
     }
 }
--- a/src/jdk.attach/macosx/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/src/jdk.attach/macosx/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 10:02:50 2016 -0700
@@ -70,26 +70,34 @@
         // Then we attempt to find the socket file again.
         path = findSocketFile(pid);
         if (path == null) {
-            File f = new File(tmpdir, ".attach_pid" + pid);
-            createAttachFile(f.getPath());
+            File f = createAttachFile(pid);
             try {
                 sendQuitTo(pid);
 
                 // give the target VM time to start the attach mechanism
-                int i = 0;
-                long delay = 200;
-                int retries = (int)(attachTimeout() / delay);
+                final int delay_step = 100;
+                final long timeout = attachTimeout();
+                long time_spend = 0;
+                long delay = 0;
                 do {
+                    // Increase timeout on each attempt to reduce polling
+                    delay += delay_step;
                     try {
                         Thread.sleep(delay);
                     } catch (InterruptedException x) { }
                     path = findSocketFile(pid);
-                    i++;
-                } while (i <= retries && path == null);
+
+                    time_spend += delay;
+                    if (time_spend > timeout/2 && path == null) {
+                        // Send QUIT again to give target VM the last chance to react
+                        sendQuitTo(pid);
+                    }
+                } while (time_spend <= timeout && path == null);
                 if (path == null) {
                     throw new AttachNotSupportedException(
-                        "Unable to open socket file: target process not responding " +
-                        "or HotSpot VM not loaded");
+                        String.format("Unable to open socket file %s: " +
+                          "target process %d doesn't respond within %dms " +
+                          "or HotSpot VM not loaded", f.getPath(), pid, time_spend));
                 }
             } finally {
                 f.delete();
@@ -282,6 +290,12 @@
         write(fd, b, 0, 1);
     }
 
+    private File createAttachFile(int pid) throws IOException {
+        String fn = ".attach_pid" + pid;
+        File f = new File(tmpdir, fn);
+        createAttachFile0(f.getPath());
+        return f;
+    }
 
     //-- native methods
 
@@ -299,7 +313,7 @@
 
     static native void write(int fd, byte buf[], int off, int bufLen) throws IOException;
 
-    static native void createAttachFile(String path);
+    static native void createAttachFile0(String path);
 
     static native String getTempDir();
 
--- a/src/jdk.attach/macosx/native/libattach/VirtualMachineImpl.c	Fri Aug 26 08:16:42 2016 -0400
+++ b/src/jdk.attach/macosx/native/libattach/VirtualMachineImpl.c	Fri Aug 26 10:02:50 2016 -0700
@@ -270,7 +270,7 @@
  * Method:    createAttachFile
  * Signature: (Ljava.lang.String;)V
  */
-JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_createAttachFile(JNIEnv *env, jclass cls, jstring path)
+JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_createAttachFile0(JNIEnv *env, jclass cls, jstring path)
 {
     const char* _path;
     jboolean isCopy;
--- a/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java	Fri Aug 26 10:02:50 2016 -0700
@@ -319,7 +319,7 @@
 
     // -- attach timeout support
 
-    private static long defaultAttachTimeout = 5000;
+    private static long defaultAttachTimeout = 10000;
     private volatile long attachTimeout;
 
     /*
--- a/src/jdk.attach/solaris/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/src/jdk.attach/solaris/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Aug 26 10:02:50 2016 -0700
@@ -71,27 +71,36 @@
         } catch (FileNotFoundException fnf1) {
             File f = createAttachFile(pid);
             try {
-                // kill -QUIT will tickle target VM to check for the
-                // attach file.
                 sigquit(pid);
 
                 // give the target VM time to start the attach mechanism
-                int i = 0;
-                long delay = 200;
-                int retries = (int)(attachTimeout() / delay);
+                final int delay_step = 100;
+                final long timeout = attachTimeout();
+                long time_spend = 0;
+                long delay = 0;
                 do {
+                    // Increase timeout on each attempt to reduce polling
+                    delay += delay_step;
                     try {
                         Thread.sleep(delay);
                     } catch (InterruptedException x) { }
                     try {
                         fd = openDoor(pid);
-                    } catch (FileNotFoundException fnf2) { }
-                    i++;
-                } while (i <= retries && fd == -1);
-                if (fd == -1) {
+                    } catch (FileNotFoundException fnf2) {
+                        // pass
+                    }
+
+                    time_spend += delay;
+                    if (time_spend > timeout/2 && fd == -1) {
+                        // Send QUIT again to give target VM the last chance to react
+                        sigquit(pid);
+                    }
+                } while (time_spend <= timeout && fd == -1);
+                if (fd  == -1) {
                     throw new AttachNotSupportedException(
-                        "Unable to open door: target process not responding or " +
-                        "HotSpot VM not loaded");
+                        String.format("Unable to open door %s: " +
+                          "target process %d doesn't respond within %dms " +
+                          "or HotSpot VM not loaded", f.getPath(), pid, time_spend));
                 }
             } finally {
                 f.delete();
--- a/src/jdk.management/share/native/libmanagement_ext/GcInfoBuilder.c	Fri Aug 26 08:16:42 2016 -0400
+++ b/src/jdk.management/share/native/libmanagement_ext/GcInfoBuilder.c	Fri Aug 26 10:02:50 2016 -0700
@@ -87,9 +87,32 @@
     for (i = 0; i < num_attributes; i++) {
         nativeTypes[i] = ext_att_info[i].type;
         attName = (*env)->NewStringUTF(env, ext_att_info[i].name);
+        if ((*env)->ExceptionCheck(env)) {
+           free(ext_att_info);
+           free(nativeTypes);
+           return;
+        }
+
+        (*env)->SetObjectArrayElement(env, attributeNames, i, attName);
+        if ((*env)->ExceptionCheck(env)) {
+           free(ext_att_info);
+           free(nativeTypes);
+           return;
+        }
+
         desc = (*env)->NewStringUTF(env, ext_att_info[i].description);
-        (*env)->SetObjectArrayElement(env, attributeNames, i, attName);
+        if ((*env)->ExceptionCheck(env)) {
+           free(ext_att_info);
+           free(nativeTypes);
+           return;
+        }
+
         (*env)->SetObjectArrayElement(env, descriptions, i, desc);
+        if ((*env)->ExceptionCheck(env)) {
+           free(ext_att_info);
+           free(nativeTypes);
+           return;
+        }
     }
     (*env)->SetCharArrayRegion(env, types, 0, num_attributes, nativeTypes);
 
--- a/test/com/sun/jdi/SunBootClassPathEmptyTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/com/sun/jdi/SunBootClassPathEmptyTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -32,7 +32,7 @@
  * @summary Verifies that PathSearchingVirtualMachine.bootClassPath()
  *          returns an empty list in case no bootclass path specified
  *          regardless of sun.boot.class.path option, which is now obsolete
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @compile TestClass.java
  * @compile SunBootClassPathEmptyTest.java
  * @run main/othervm SunBootClassPathEmptyTest
--- a/test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@
  * @bug 6455258
  * @summary Sanity test for com.sun.management.HotSpotDiagnosticMXBean.dumpHeap method
  * @library /lib/testlibrary
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @build jdk.testlibrary.*
  * @build jdk.test.lib.hprof.*
  * @build jdk.test.lib.hprof.model.*
--- a/test/java/lang/ProcessHandle/Basic.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/ProcessHandle/Basic.java	Fri Aug 26 10:02:50 2016 -0700
@@ -36,7 +36,7 @@
 
 /*
  * @test
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @modules java.base/jdk.internal.misc
  *          jdk.management
  * @run testng Basic
--- a/test/java/lang/ProcessHandle/InfoTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/ProcessHandle/InfoTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -48,7 +48,7 @@
 /*
  * @test
  * @bug 8077350 8081566 8081567 8098852 8136597
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @modules java.base/jdk.internal.misc
  *          jdk.management
  * @build jdk.test.lib.Platform jdk.test.lib.Utils
--- a/test/java/lang/ProcessHandle/OnExitTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/ProcessHandle/OnExitTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -38,7 +38,7 @@
 
 /*
  * @test
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @modules java.base/jdk.internal.misc
  *          jdk.management
  * @build jdk.test.lib.Platform jdk.test.lib.Utils
--- a/test/java/lang/ProcessHandle/TreeTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/ProcessHandle/TreeTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -44,7 +44,7 @@
 
 /*
  * @test
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @modules java.base/jdk.internal.misc
  *          jdk.management
  * @build jdk.test.lib.Utils
--- a/test/java/lang/instrument/NativeMethodPrefixAgent.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/instrument/NativeMethodPrefixAgent.java	Fri Aug 26 10:02:50 2016 -0700
@@ -24,6 +24,7 @@
 /**
  * @test
  * @bug 6263319
+ * @requires ((vm.opt.StartFlightRecording == null) | (vm.opt.StartFlightRecording == false)) & ((vm.opt.FlightRecorder == null) | (vm.opt.FlightRecorder == false))
  * @summary test setNativeMethodPrefix
  * @author Robert Field, Sun Microsystems
  *
--- a/test/java/lang/instrument/RedefineBigClass.sh	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/instrument/RedefineBigClass.sh	Fri Aug 26 10:02:50 2016 -0700
@@ -70,7 +70,7 @@
 fi
 
 "${JAVA}" ${TESTVMOPTS} \
-    -XX:TraceRedefineClasses=3 ${NMT} \
+    -Xlog:redefine+class+load=debug,redefine+class+load+exceptions=info ${NMT} \
     -javaagent:RedefineBigClassAgent.jar=BigClass.class \
     -classpath "${TESTCLASSES}" RedefineBigClassApp \
     > output.log 2>&1 
--- a/test/java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh	Fri Aug 26 10:02:50 2016 -0700
@@ -87,23 +87,8 @@
 
 echo "INFO: launching RedefineSubclassWithTwoInterfacesApp"
 
-# TraceRedefineClasses options:
-#
-#    0x00000001 |          1 - name each target class before loading, after
-#                              loading and after redefinition is completed
-#    0x00000002 |          2 - print info if parsing, linking or
-#                              verification throws an exception
-#    0x00000004 |          4 - print timer info for the VM operation
-#    0x00001000 |       4096 - detect calls to obsolete methods
-#    0x00002000 |       8192 - fail a guarantee() in addition to detection
-#    0x00004000 |      16384 - detect old/obsolete methods in metadata
-#    0x00100000 |    1048576 - impl details: vtable updates
-#    0x00200000 |    2097152 - impl details: itable updates
-#
-#    1+2+4+4096+8192+16384+1048576+2097152 == 3174407
-
 "${JAVA}" ${TESTVMOPTS} \
-    -XX:TraceRedefineClasses=3174407 \
+    -Xlog:redefine+class+load=trace,redefine+class+load+exceptions=trace,redefine+class+timer=trace,redefine+class+obsolete=trace,redefine+class+obsolete+metadata=trace,redefine+class+constantpool=trace \
     -javaagent:RedefineSubclassWithTwoInterfacesAgent.jar \
     -classpath "${TESTCLASSES}" \
     RedefineSubclassWithTwoInterfacesApp > output.log 2>&1
--- a/test/java/lang/instrument/RetransformBigClass.sh	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/instrument/RetransformBigClass.sh	Fri Aug 26 10:02:50 2016 -0700
@@ -70,7 +70,7 @@
 fi
 
 "${JAVA}" ${TESTVMOPTS} \
-    -XX:TraceRedefineClasses=3 ${NMT} \
+    -Xlog:redefine+class+load=debug,redefine+class+load+exceptions=info ${NMT} \
     -javaagent:RetransformBigClassAgent.jar=BigClass.class \
     -classpath "${TESTCLASSES}" RetransformBigClassApp \
     > output.log 2>&1
--- a/test/java/lang/ref/CleanerTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/lang/ref/CleanerTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -49,7 +49,7 @@
 
 /*
  * @test
- * @library /test/lib/share/classes /lib/testlibrary /test/lib
+ * @library /lib/testlibrary /test/lib
  * @build sun.hotspot.WhiteBox
  * @build jdk.test.lib.Utils
  * @modules java.base/jdk.internal
--- a/test/java/security/SecureRandom/DrbgParametersSpec.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/java/security/SecureRandom/DrbgParametersSpec.java	Fri Aug 26 10:02:50 2016 -0700
@@ -24,7 +24,7 @@
 /* @test
  * @bug 8051408 8158534
  * @summary Make sure DrbgParameters coded as specified
- * @library /test/lib/share/classes
+ * @library /test/lib
  */
 
 import jdk.test.lib.Asserts;
--- a/test/jdk/internal/ref/Cleaner/ExitOnThrow.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/jdk/internal/ref/Cleaner/ExitOnThrow.java	Fri Aug 26 10:02:50 2016 -0700
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 4954921 8009259
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @modules java.base/jdk.internal.ref
  *          java.base/jdk.internal.misc
  * @build jdk.test.lib.*
--- a/test/lib/testlibrary/jdk/testlibrary/Asserts.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/Asserts.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@
  * </pre>
  *
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib}
+ *             {@code <root>/test/lib/jdk/test/lib}
  */
 @Deprecated
 public class Asserts {
--- a/test/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
 
 /**
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib}
+ *             {@code <root>/test/lib/jdk/test/lib}
  */
 @Deprecated
 public final class JDKToolFinder {
--- a/test/lib/testlibrary/jdk/testlibrary/JDKToolLauncher.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/JDKToolLauncher.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@
  * }
  * </pre>
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib}
+ *             {@code <root>/test/lib/jdk/test/lib}
  */
 @Deprecated
 public class JDKToolLauncher {
--- a/test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
  * Utility class for verifying output and exit value from a {@code Process}.
  *
  * @deprecated  This class is deprecated. Use the one from
- *              {@code <root>/test/lib/share/classes/jdk/test/lib/process}
+ *              {@code <root>/test/lib/jdk/test/lib/process}
  *
  */
 @Deprecated
--- a/test/lib/testlibrary/jdk/testlibrary/OutputBuffer.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/OutputBuffer.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,7 @@
 
 /**
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib/process}
+ *             {@code <root>/test/lib/jdk/test/lib/process}
  */
 @Deprecated
 class OutputBuffer {
--- a/test/lib/testlibrary/jdk/testlibrary/Platform.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/Platform.java	Fri Aug 26 10:02:50 2016 -0700
@@ -29,7 +29,7 @@
 
 /**
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib}
+ *             {@code <root>/test/lib/jdk/test/lib}
  */
 @Deprecated
 public class Platform {
--- a/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
 
 /**
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib/process}
+ *             {@code <root>/test/lib/jdk/test/lib/process}
  */
 @Deprecated
 public final class ProcessTools {
--- a/test/lib/testlibrary/jdk/testlibrary/StreamPumper.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/StreamPumper.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
 
 /**
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib/process}
+ *             {@code <root>/test/lib/jdk/test/lib/process}
  */
 @Deprecated
 public final class StreamPumper implements Runnable {
--- a/test/lib/testlibrary/jdk/testlibrary/Utils.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/lib/testlibrary/jdk/testlibrary/Utils.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
  * Common library for various test helper functions.
  *
  * @deprecated This class is deprecated. Use the one from
- *             {@code <root>/test/lib/share/classes/jdk/test/lib}
+ *             {@code <root>/test/lib/jdk/test/lib}
  */
 @Deprecated
 public final class Utils {
--- a/test/sun/jvmstat/monitor/MonitoredVm/TestPollingInterval.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/jvmstat/monitor/MonitoredVm/TestPollingInterval.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@
  * @summary setInterval() for local MonitoredHost and local MonitoredVm
  * @modules jdk.jvmstat/sun.jvmstat.monitor
  * @library /lib/testlibrary
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @build jdk.testlibrary.*
  * @build jdk.test.lib.apps.*
  * @run main TestPollingInterval
--- a/test/sun/misc/SunMiscSignalTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/misc/SunMiscSignalTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -43,7 +43,7 @@
 
 /*
  * @test
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @modules jdk.unsupported
  *          java.base/jdk.internal.misc
  * @build jdk.test.lib.Platform jdk.test.lib.Utils
--- a/test/sun/security/tools/jarsigner/AltProvider.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/security/tools/jarsigner/AltProvider.java	Fri Aug 26 10:02:50 2016 -0700
@@ -25,7 +25,7 @@
  * @test
  * @bug 4906940 8130302
  * @summary -providerPath, -providerClass, -addprovider, and -providerArg
- * @library /lib/testlibrary /test/lib/share/classes
+ * @library /lib/testlibrary /test/lib
  * @modules java.base/jdk.internal.misc
  */
 
--- a/test/sun/tools/jhsdb/BasicLauncherTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/tools/jhsdb/BasicLauncherTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -24,7 +24,7 @@
 /*
  * @test
  * @summary Basic test for jhsdb launcher
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @library /lib/testlibrary
  * @build jdk.testlibrary.*
  * @build jdk.test.lib.apps.*
--- a/test/sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
  * @bug 8042397
  * @summary Unit test for jmap utility test heap configuration reader
  * @modules jdk.hotspot.agent/sun.jvm.hotspot
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @library /lib/testlibrary
  * @build jdk.testlibrary.*
  * @build jdk.test.lib.apps.*
--- a/test/sun/tools/jinfo/JInfoTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/tools/jinfo/JInfoTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -37,7 +37,7 @@
  * @test
  * @summary Unit test for jinfo utility
  * @modules java.base/jdk.internal.misc
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @build jdk.test.lib.*
  * @build jdk.test.lib.apps.*
  * @build jdk.test.lib.process.*
--- a/test/sun/tools/jmap/BasicJMapTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/tools/jmap/BasicJMapTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -37,7 +37,7 @@
  * @summary Unit test for jmap utility
  * @key intermittent
  * @library /lib/testlibrary
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @build jdk.testlibrary.*
  * @build jdk.test.lib.hprof.*
  * @build jdk.test.lib.hprof.model.*
--- a/test/sun/tools/jps/TestJpsSanity.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/tools/jps/TestJpsSanity.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
  * @test
  * @summary This test verifies jps usage and checks that appropriate error message is shown
  *          when running jps with illegal arguments.
- * @library /lib/testlibrary /test/lib/share/classes
+ * @library /lib/testlibrary /test/lib
  * @modules jdk.jartool/sun.tools.jar
  *          java.management
  *          java.base/jdk.internal.misc
--- a/test/sun/tools/jstack/DeadlockDetectionTest.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/sun/tools/jstack/DeadlockDetectionTest.java	Fri Aug 26 10:02:50 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
 /*
  * @test
  * @summary Test deadlock detection
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @library /lib/testlibrary
  * @build jdk.testlibrary.*
  * @build jdk.test.lib.apps.*
--- a/test/tools/jar/multiRelease/Basic.java	Fri Aug 26 08:16:42 2016 -0400
+++ b/test/tools/jar/multiRelease/Basic.java	Fri Aug 26 10:02:50 2016 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @library /test/lib/share/classes
+ * @library /test/lib
  * @modules java.base/jdk.internal.misc
  * @build jdk.test.lib.JDKToolFinder jdk.test.lib.Platform
  * @run testng Basic