Merge JEP-349-branch
authormgronlun
Mon, 16 Sep 2019 11:11:46 +0200
branchJEP-349-branch
changeset 58163 64911d7edff9
parent 58162 9af8c8c1cb15 (current diff)
parent 58144 d003b3ef8b60 (diff)
child 58164 1343c01b29d5
Merge
--- a/test/hotspot/jtreg/ProblemList.txt	Mon Sep 16 11:10:22 2019 +0200
+++ b/test/hotspot/jtreg/ProblemList.txt	Mon Sep 16 11:11:46 2019 +0200
@@ -90,6 +90,7 @@
 # :hotspot_runtime
 
 runtime/jni/terminatedThread/TestTerminatedThread.java 8219652 aix-ppc64
+runtime/ReservedStack/ReservedStackTest.java 8231031 generic-all
 
 #############################################################################
 
@@ -204,4 +205,16 @@
 
 vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn001/forceEarlyReturn001.java 7199837 generic-all
 
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads001/TestDescription.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads002/TestDescription.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads003/TestDescription.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads004/TestDescription.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads005/TestDescription.java 8231032 generic-all
+
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Multi/Multi001/Multi001.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Multi/Multi002/TestDescription.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Multi/Multi003/TestDescription.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Multi/Multi004/TestDescription.java 8231032 generic-all
+vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Multi/Multi005/TestDescription.java 8231032 generic-all
+
 #############################################################################
--- a/test/jdk/ProblemList.txt	Mon Sep 16 11:10:22 2019 +0200
+++ b/test/jdk/ProblemList.txt	Mon Sep 16 11:11:46 2019 +0200
@@ -564,6 +564,8 @@
 javax/management/monitor/DerivedGaugeMonitorTest.java         8042211 generic-all
 javax/management/remote/mandatory/connection/MultiThreadDeadLockTest.java 8042215 generic-all
 
+java/lang/management/ThreadMXBean/LockedSynchronizers.java 8231032 generic-all
+
 ############################################################################
 
 # jdk_io
--- a/test/jdk/sun/tools/jcmd/TestProcessHelper.java	Mon Sep 16 11:10:22 2019 +0200
+++ b/test/jdk/sun/tools/jcmd/TestProcessHelper.java	Mon Sep 16 11:11:46 2019 +0200
@@ -189,6 +189,26 @@
 
     private void checkMainClass(Process p, String expectedMainClass) {
         String mainClass = PROCESS_HELPER.getMainClass(Long.toString(p.pid()));
+        // getMainClass() may return null, e.g. due to timing issues.
+        // Attempt some limited retries.
+        if (mainClass == null) {
+            System.err.println("Main class returned by ProcessHelper was null.");
+            // sleep time doubles each round, altogether, wait no longer than 1 sec
+            final int MAX_RETRIES = 10;
+            int retrycount = 0;
+            long sleepms = 1;
+            while (retrycount < MAX_RETRIES && mainClass == null) {
+                System.err.println("Retry " + retrycount + ", sleeping for " + sleepms + "ms.");
+                try {
+                    Thread.sleep(sleepms);
+                } catch (InterruptedException e) {
+                    // ignore
+                }
+                mainClass = PROCESS_HELPER.getMainClass(Long.toString(p.pid()));
+                retrycount++;
+                sleepms *= 2;
+            }
+        }
         p.destroyForcibly();
         if (!expectedMainClass.equals(mainClass)) {
             throw new RuntimeException("Main class is wrong: " + mainClass);
--- a/test/lib/jdk/test/lib/Platform.java	Mon Sep 16 11:10:22 2019 +0200
+++ b/test/lib/jdk/test/lib/Platform.java	Mon Sep 16 11:11:46 2019 +0200
@@ -265,7 +265,6 @@
                     return false;
                 }
             } catch (PrivilegedActionException e) {
-                @SuppressWarnings("unchecked")
                 IOException t = (IOException) e.getException();
                 throw t;
             }
@@ -289,7 +288,6 @@
                     return false;
                 }
             } catch (PrivilegedActionException e) {
-                @SuppressWarnings("unchecked")
                 IOException t = (IOException) e.getException();
                 throw t;
             }
--- a/test/lib/jdk/test/lib/Utils.java	Mon Sep 16 11:10:22 2019 +0200
+++ b/test/lib/jdk/test/lib/Utils.java	Mon Sep 16 11:11:46 2019 +0200
@@ -25,6 +25,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.lang.annotation.Annotation;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.MalformedURLException;
@@ -749,13 +750,14 @@
     // until the method main() is found; the class containing that method is the
     // main test class and will be returned as the name of the test.
     // Special handling is used for testng tests.
+    @SuppressWarnings("unchecked")
     public static String getTestName() {
         String result = null;
         // If we are using testng, then we should be able to load the "Test" annotation.
-        Class testClassAnnotation;
+        Class<? extends Annotation> testClassAnnotation;
 
         try {
-            testClassAnnotation = Class.forName("org.testng.annotations.Test");
+            testClassAnnotation = (Class<? extends Annotation>)Class.forName("org.testng.annotations.Test");
         } catch (ClassNotFoundException e) {
             testClassAnnotation = null;
         }
@@ -776,7 +778,7 @@
             // annotation. If present, then use the name of this class.
             if (testClassAnnotation != null) {
                 try {
-                    Class c = Class.forName(className);
+                    Class<?> c = Class.forName(className);
                     if (c.isAnnotationPresent(testClassAnnotation)) {
                         result = className;
                         break;
--- a/test/lib/jdk/test/lib/process/ProcessTools.java	Mon Sep 16 11:10:22 2019 +0200
+++ b/test/lib/jdk/test/lib/process/ProcessTools.java	Mon Sep 16 11:11:46 2019 +0200
@@ -495,7 +495,6 @@
             return AccessController.doPrivileged(
                 (PrivilegedExceptionAction<Process>) () -> pb.start());
         } catch (PrivilegedActionException e) {
-            @SuppressWarnings("unchecked")
             IOException t = (IOException) e.getException();
             throw t;
         }
--- a/test/lib/jdk/test/lib/process/StreamPumper.java	Mon Sep 16 11:10:22 2019 +0200
+++ b/test/lib/jdk/test/lib/process/StreamPumper.java	Mon Sep 16 11:11:46 2019 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2019, 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
@@ -144,7 +144,9 @@
             }
 
         } catch (IOException e) {
-            e.printStackTrace();
+            if (!e.getMessage().equalsIgnoreCase("stream closed")) {
+                e.printStackTrace();
+            }
         } finally {
             for (OutputStream out : outStreams) {
                 try {