diff --git a/0002-8179498-attach-in-linux-should-be-relative-to-proc-p.patch b/0002-8179498-attach-in-linux-should-be-relative-to-proc-p.patch new file mode 100644 index 0000000000000000000000000000000000000000..4d77560bb29643ab7b0e6171872ca74cbcb9eff3 --- /dev/null +++ b/0002-8179498-attach-in-linux-should-be-relative-to-proc-p.patch @@ -0,0 +1,136 @@ +Date: Tue, 30 May 2023 03:43:28 +0000 +Subject: [PATCH 02/59] 8179498: attach in linux should be relative to + /proc/pid/root and namespace aware +Bug url: https://bugs.openjdk.org/browse/JDK-8179498 +--- + .../sun/tools/attach/LinuxVirtualMachine.java | 70 ++++++++++++++++--- + 1 file changed, 62 insertions(+), 8 deletions(-) + +diff --git a/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java b/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java +index 20fdb5c0d..cc2ac0df2 100644 +--- a/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java ++++ b/jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java +@@ -32,6 +32,10 @@ import com.sun.tools.attach.spi.AttachProvider; + import java.io.InputStream; + import java.io.IOException; + import java.io.File; ++import java.nio.charset.StandardCharsets; ++import java.nio.file.Path; ++import java.nio.file.Paths; ++import java.nio.file.Files; + + /* + * Linux implementation of HotSpotVirtualMachine +@@ -66,12 +70,15 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine { + throw new AttachNotSupportedException("Invalid process identifier"); + } + ++ // Try to resolve to the "inner most" pid namespace ++ int ns_pid = getNamespacePid(pid); ++ + // Find the socket file. If not found then we attempt to start the + // attach mechanism in the target VM by sending it a QUIT signal. + // Then we attempt to find the socket file again. +- path = findSocketFile(pid); ++ path = findSocketFile(pid, ns_pid); + if (path == null) { +- File f = createAttachFile(pid); ++ File f = createAttachFile(pid, ns_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 +@@ -99,7 +106,7 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine { + try { + Thread.sleep(delay); + } catch (InterruptedException x) { } +- path = findSocketFile(pid); ++ path = findSocketFile(pid, ns_pid); + i++; + } while (i <= retries && path == null); + if (path == null) { +@@ -272,8 +279,12 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine { + } + + // Return the socket file for the given process. +- private String findSocketFile(int pid) { +- File f = new File(tmpdir, ".java_pid" + pid); ++ private String findSocketFile(int pid, int ns_pid) { ++ // A process may not exist in the same mount namespace as the caller. ++ // Instead, attach relative to the target root filesystem as exposed by ++ // procfs regardless of namespaces. ++ String root = "/proc/" + pid + "/root/" + tmpdir; ++ File f = new File(root, ".java_pid" + ns_pid); + if (!f.exists()) { + return null; + } +@@ -284,14 +295,23 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine { + // if not already started. The client creates a .attach_pid file in the + // target VM's working directory (or temp directory), and the SIGQUIT handler + // checks for the file. +- private File createAttachFile(int pid) throws IOException { +- String fn = ".attach_pid" + pid; ++ private File createAttachFile(int pid, int ns_pid) throws IOException { ++ String fn = ".attach_pid" + ns_pid; + String path = "/proc/" + pid + "/cwd/" + fn; + File f = new File(path); + try { + f.createNewFile(); + } catch (IOException x) { +- f = new File(tmpdir, fn); ++ String root; ++ if (pid != ns_pid) { ++ // A process may not exist in the same mount namespace as the caller. ++ // Instead, attach relative to the target root filesystem as exposed by ++ // procfs regardless of namespaces. ++ root = "/proc/" + pid + "/root/" + tmpdir; ++ } else { ++ root = tmpdir; ++ } ++ f = new File(root, fn); + f.createNewFile(); + } + return f; +@@ -317,6 +337,40 @@ public class LinuxVirtualMachine extends HotSpotVirtualMachine { + } + + ++ // Return the inner most namespaced PID if there is one, ++ // otherwise return the original PID. ++ private int getNamespacePid(int pid) throws AttachNotSupportedException, IOException { ++ // Assuming a real procfs sits beneath, reading this doesn't block ++ // nor will it consume a lot of memory. ++ String statusFile = "/proc/" + pid + "/status"; ++ File f = new File(statusFile); ++ if (!f.exists()) { ++ return pid; // Likely a bad pid, but this is properly handled later. ++ } ++ ++ Path statusPath = Paths.get(statusFile); ++ ++ try { ++ for (String line : Files.readAllLines(statusPath, StandardCharsets.UTF_8)) { ++ String[] parts = line.split(":"); ++ if (parts.length == 2 && parts[0].trim().equals("NSpid")) { ++ parts = parts[1].trim().split("\\s+"); ++ // The last entry represents the PID the JVM "thinks" it is. ++ // Even in non-namespaced pids these entries should be ++ // valid. You could refer to it as the inner most pid. ++ int ns_pid = Integer.parseInt(parts[parts.length - 1]); ++ return ns_pid; ++ } ++ } ++ // Old kernels may not have NSpid field (i.e. 3.10). ++ // Fallback to original pid in the event we cannot deduce. ++ return pid; ++ } catch (NumberFormatException | IOException x) { ++ throw new AttachNotSupportedException("Unable to parse namespace"); ++ } ++ } ++ ++ + //-- native methods + + static native boolean isLinuxThreads(); +-- +2.22.0 + diff --git a/0003-8187408-AbstractQueuedSynchronizer-wait-queue-corrup.patch b/0003-8187408-AbstractQueuedSynchronizer-wait-queue-corrup.patch new file mode 100644 index 0000000000000000000000000000000000000000..771a4be8fb36e3f7bc3faf202172a199bf2811cf --- /dev/null +++ b/0003-8187408-AbstractQueuedSynchronizer-wait-queue-corrup.patch @@ -0,0 +1,348 @@ +Date: Tue, 30 May 2023 15:42:59 +0800 +Subject: [PATCH 03/59] 8187408: AbstractQueuedSynchronizer wait queue corrupted when thread awaits without holding the lock + +Bug url: https://bugs.openjdk.org/browse/JDK-8187408 +--- + .../locks/AbstractQueuedLongSynchronizer.java | 20 +-- + .../locks/AbstractQueuedSynchronizer.java | 52 +++--- + jdk/test/java/util/Bug8187408/Bug8187408.java | 165 ++++++++++++++++++ + 3 files changed, 207 insertions(+), 30 deletions(-) + create mode 100644 jdk/test/java/util/Bug8187408/Bug8187408.java + +diff --git a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java +index 8699fc9b8..5adc39e17 100644 +--- a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java ++++ b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java +@@ -64,11 +64,11 @@ public abstract class AbstractQueuedLongSynchronizer + private static final long serialVersionUID = 7373984972572414692L; + + /* +- To keep sources in sync, the remainder of this source file is +- exactly cloned from AbstractQueuedSynchronizer, replacing class +- name and changing ints related with sync state to longs. Please +- keep it that way. +- */ ++ * To keep sources in sync, the remainder of this source file is ++ * exactly cloned from AbstractQueuedSynchronizer, replacing class ++ * name and changing ints related with sync state to longs. Please ++ * keep it that way. ++ */ + + /** + * Creates a new {@code AbstractQueuedLongSynchronizer} instance +@@ -946,8 +946,7 @@ public abstract class AbstractQueuedLongSynchronizer + /** + * Returns {@code true} if synchronization is held exclusively with + * respect to the current (calling) thread. This method is invoked +- * upon each call to a non-waiting {@link ConditionObject} method. +- * (Waiting methods instead invoke {@link #release}.) ++ * upon each call to a {@link ConditionObject} method. + * + *

The default implementation throws {@link + * UnsupportedOperationException}. This method is invoked +@@ -1597,9 +1596,8 @@ public abstract class AbstractQueuedLongSynchronizer + } + + /** +- * Condition implementation for a {@link +- * AbstractQueuedLongSynchronizer} serving as the basis of a {@link +- * Lock} implementation. ++ * Condition implementation for a {@link AbstractQueuedLongSynchronizer} ++ * serving as the basis of a {@link Lock} implementation. + * + *

Method documentation for this class describes mechanics, + * not behavioral specifications from the point of view of Lock +@@ -1632,6 +1630,8 @@ public abstract class AbstractQueuedLongSynchronizer + * @return its new wait node + */ + private Node addConditionWaiter() { ++ if (!isHeldExclusively()) ++ throw new IllegalMonitorStateException(); + Node t = lastWaiter; + // If lastWaiter is cancelled, clean out. + if (t != null && t.waitStatus != Node.CONDITION) { +diff --git a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java +index 9088e5894..0e2bcdfef 100644 +--- a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java ++++ b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java +@@ -192,19 +192,13 @@ import sun.misc.Unsafe; + * represent the locked state. While a non-reentrant lock + * does not strictly require recording of the current owner + * thread, this class does so anyway to make usage easier to monitor. +- * It also supports conditions and exposes +- * one of the instrumentation methods: ++ * It also supports conditions and exposes some instrumentation methods: + * + *

 {@code
+  * class Mutex implements Lock, java.io.Serializable {
+  *
+  *   // Our internal helper class
+  *   private static class Sync extends AbstractQueuedSynchronizer {
+- *     // Reports whether in locked state
+- *     protected boolean isHeldExclusively() {
+- *       return getState() == 1;
+- *     }
+- *
+  *     // Acquires the lock if state is zero
+  *     public boolean tryAcquire(int acquires) {
+  *       assert acquires == 1; // Otherwise unused
+@@ -218,14 +212,27 @@ import sun.misc.Unsafe;
+  *     // Releases the lock by setting state to zero
+  *     protected boolean tryRelease(int releases) {
+  *       assert releases == 1; // Otherwise unused
+- *       if (getState() == 0) throw new IllegalMonitorStateException();
++ *       if (!isHeldExclusively())
++ *         throw new IllegalMonitorStateException();
+  *       setExclusiveOwnerThread(null);
+  *       setState(0);
+  *       return true;
+  *     }
+  *
++ *     // Reports whether in locked state
++ *     public boolean isLocked() {
++ *       return getState() != 0;
++ *     }
++ *
++ *     public boolean isHeldExclusively() {
++ *       // a data race, but safe due to out-of-thin-air guarantees
++ *       return getExclusiveOwnerThread() == Thread.currentThread();
++ *     }
++ *
+  *     // Provides a Condition
+- *     Condition newCondition() { return new ConditionObject(); }
++ *     public Condition newCondition() {
++ *       return new ConditionObject();
++ *     }
+  *
+  *     // Deserializes properly
+  *     private void readObject(ObjectInputStream s)
+@@ -238,12 +245,17 @@ import sun.misc.Unsafe;
+  *   // The sync object does all the hard work. We just forward to it.
+  *   private final Sync sync = new Sync();
+  *
+- *   public void lock()                { sync.acquire(1); }
+- *   public boolean tryLock()          { return sync.tryAcquire(1); }
+- *   public void unlock()              { sync.release(1); }
+- *   public Condition newCondition()   { return sync.newCondition(); }
+- *   public boolean isLocked()         { return sync.isHeldExclusively(); }
+- *   public boolean hasQueuedThreads() { return sync.hasQueuedThreads(); }
++ *   public void lock()              { sync.acquire(1); }
++ *   public boolean tryLock()        { return sync.tryAcquire(1); }
++ *   public void unlock()            { sync.release(1); }
++ *   public Condition newCondition() { return sync.newCondition(); }
++ *   public boolean isLocked()       { return sync.isLocked(); }
++ *   public boolean isHeldByCurrentThread() {
++ *     return sync.isHeldExclusively();
++ *   }
++ *   public boolean hasQueuedThreads() {
++ *     return sync.hasQueuedThreads();
++ *   }
+  *   public void lockInterruptibly() throws InterruptedException {
+  *     sync.acquireInterruptibly(1);
+  *   }
+@@ -1168,8 +1180,7 @@ public abstract class AbstractQueuedSynchronizer
+     /**
+      * Returns {@code true} if synchronization is held exclusively with
+      * respect to the current (calling) thread.  This method is invoked
+-     * upon each call to a non-waiting {@link ConditionObject} method.
+-     * (Waiting methods instead invoke {@link #release}.)
++     * upon each call to a {@link ConditionObject} method.
+      *
+      * 

The default implementation throws {@link + * UnsupportedOperationException}. This method is invoked +@@ -1819,9 +1830,8 @@ public abstract class AbstractQueuedSynchronizer + } + + /** +- * Condition implementation for a {@link +- * AbstractQueuedSynchronizer} serving as the basis of a {@link +- * Lock} implementation. ++ * Condition implementation for a {@link AbstractQueuedSynchronizer} ++ * serving as the basis of a {@link Lock} implementation. + * + *

Method documentation for this class describes mechanics, + * not behavioral specifications from the point of view of Lock +@@ -1852,6 +1862,8 @@ public abstract class AbstractQueuedSynchronizer + * @return its new wait node + */ + private Node addConditionWaiter() { ++ if (!isHeldExclusively()) ++ throw new IllegalMonitorStateException(); + Node t = lastWaiter; + // If lastWaiter is cancelled, clean out. + if (t != null && t.waitStatus != Node.CONDITION) { +diff --git a/jdk/test/java/util/Bug8187408/Bug8187408.java b/jdk/test/java/util/Bug8187408/Bug8187408.java +new file mode 100644 +index 000000000..fee6c730d +--- /dev/null ++++ b/jdk/test/java/util/Bug8187408/Bug8187408.java +@@ -0,0 +1,165 @@ ++/* ++ * Copyright (c) 2023, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++ /* ++ * @test ++ * @bug 8187408 ++ * @summary AbstractQueuedSynchronizer wait queue corrupted when thread awaits without holding the lock ++ */ ++ ++import static java.util.concurrent.TimeUnit.MILLISECONDS; ++import java.util.ArrayList; ++import java.util.Date; ++import java.util.concurrent.CountDownLatch; ++import java.util.concurrent.ThreadLocalRandom; ++import java.util.concurrent.locks.Condition; ++import java.util.concurrent.locks.Lock; ++import java.util.concurrent.locks.ReentrantLock; ++ ++public class Bug8187408 { ++ static final long LONG_DELAY_MS = 10000L; ++ ++ public static void main(String[] args) throws InterruptedException { ++ final ThreadLocalRandom rnd = ThreadLocalRandom.current(); ++ final AwaitMethod awaitMethod = randomAwaitMethod(); ++ final int nThreads = rnd.nextInt(2, 10); ++ final ReentrantLock lock = new ReentrantLock(); ++ final Condition cond = lock.newCondition(); ++ final CountDownLatch done = new CountDownLatch(nThreads); ++ final ArrayList threads = new ArrayList<>(); ++ ++ Runnable rogue = () -> { ++ while (done.getCount() > 0) { ++ try { ++ // call await without holding lock?! ++ await(cond, awaitMethod); ++ throw new AssertionError("should throw"); ++ } ++ catch (IllegalMonitorStateException success) {} ++ catch (Throwable fail) { threadUnexpectedException(fail); }}}; ++ Thread rogueThread = new Thread(rogue, "rogue"); ++ threads.add(rogueThread); ++ rogueThread.start(); ++ ++ Runnable waiter = () -> { ++ lock.lock(); ++ try { ++ done.countDown(); ++ cond.await(); ++ } catch (Throwable fail) { ++ threadUnexpectedException(fail); ++ } finally { ++ lock.unlock(); ++ }}; ++ for (int i = 0; i < nThreads; i++) { ++ Thread thread = new Thread(waiter, "waiter"); ++ threads.add(thread); ++ thread.start(); ++ } ++ ++ assertTrue(done.await(LONG_DELAY_MS, MILLISECONDS)); ++ lock.lock(); ++ try { ++ assertEquals(nThreads, lock.getWaitQueueLength(cond)); ++ } finally { ++ cond.signalAll(); ++ lock.unlock(); ++ } ++ for (Thread thread : threads) { ++ thread.join(LONG_DELAY_MS); ++ assertFalse(thread.isAlive()); ++ } ++ } ++ ++ private static void assertTrue(boolean expr) { ++ if (!expr) ++ throw new RuntimeException("assertion failed"); ++ } ++ ++ private static void assertFalse(boolean expr) { ++ if (expr) ++ throw new RuntimeException("assertion failed"); ++ } ++ ++ private static void assertEquals(int i, int j) { ++ if (i != j) ++ throw new AssertionError(i + " != " + j); ++ } ++ ++ /** ++ * Records the given exception using {@link #threadRecordFailure}, ++ * then rethrows the exception, wrapping it in an AssertionError ++ * if necessary. ++ */ ++ private static void threadUnexpectedException(Throwable t) { ++ t.printStackTrace(); ++ if (t instanceof RuntimeException) ++ throw (RuntimeException) t; ++ else if (t instanceof Error) ++ throw (Error) t; ++ else ++ throw new AssertionError("unexpected exception: " + t, t); ++ } ++ ++ enum AwaitMethod { await, awaitTimed, awaitNanos, awaitUntil } ++ private static AwaitMethod randomAwaitMethod() { ++ AwaitMethod[] awaitMethods = AwaitMethod.values(); ++ return awaitMethods[ThreadLocalRandom.current().nextInt(awaitMethods.length)]; ++ } ++ ++ /** ++ * Returns a new Date instance representing a time at least ++ * delayMillis milliseconds in the future. ++ */ ++ private static Date delayedDate(long delayMillis) { ++ // Add 1 because currentTimeMillis is known to round into the past. ++ return new Date(System.currentTimeMillis() + delayMillis + 1); ++ } ++ ++ /** ++ * Awaits condition "indefinitely" using the specified AwaitMethod. ++ */ ++ private static void await(Condition c, AwaitMethod awaitMethod) ++ throws InterruptedException { ++ long timeoutMillis = 2 * LONG_DELAY_MS; ++ switch (awaitMethod) { ++ case await: ++ c.await(); ++ break; ++ case awaitTimed: ++ assertTrue(c.await(timeoutMillis, MILLISECONDS)); ++ break; ++ case awaitNanos: ++ long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis); ++ long nanosRemaining = c.awaitNanos(timeoutNanos); ++ assertTrue(nanosRemaining > timeoutNanos / 2); ++ assertTrue(nanosRemaining <= timeoutNanos); ++ break; ++ case awaitUntil: ++ assertTrue(c.awaitUntil(delayedDate(timeoutMillis))); ++ break; ++ default: ++ throw new AssertionError(); ++ } ++ } ++} +\ No newline at end of file +-- +2.22.0 + diff --git a/0004-8193710-jcmd-l-and-jps-commands-do-not-list-Java-pro.patch b/0004-8193710-jcmd-l-and-jps-commands-do-not-list-Java-pro.patch new file mode 100644 index 0000000000000000000000000000000000000000..3da435448288c85d54b7c69e3023612fd3cfddb1 --- /dev/null +++ b/0004-8193710-jcmd-l-and-jps-commands-do-not-list-Java-pro.patch @@ -0,0 +1,985 @@ +Date: Wed, 31 May 2023 03:55:21 +0000 +Subject: [PATCH 04/59] 8193710: jcmd -l and jps commands do not list Java processes running in Docker containers + +Bug url: https://bugs.openjdk.org/browse/JDK-8193710 +--- + hotspot/src/os/linux/vm/perfMemory_linux.cpp | 102 ++++++-- + .../classes/sun/jvmstat/PlatformSupport.java | 114 +++++++++ + .../sun/jvmstat/PlatformSupportImpl.java | 227 ++++++++++++++++++ + .../protocol/local/LocalVmManager.java | 93 +++---- + .../monitor/protocol/local/PerfDataFile.java | 179 ++++++++------ + 5 files changed, 582 insertions(+), 133 deletions(-) + create mode 100644 jdk/src/share/classes/sun/jvmstat/PlatformSupport.java + create mode 100644 jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java + +diff --git a/hotspot/src/os/linux/vm/perfMemory_linux.cpp b/hotspot/src/os/linux/vm/perfMemory_linux.cpp +index 8293b7168..b45032edb 100644 +--- a/hotspot/src/os/linux/vm/perfMemory_linux.cpp ++++ b/hotspot/src/os/linux/vm/perfMemory_linux.cpp +@@ -147,11 +147,23 @@ static void save_memory_to_file(char* addr, size_t size) { + + // return the user specific temporary directory name. + // ++// If containerized process, get dirname of ++// /proc/{vmid}/root/tmp/{PERFDATA_NAME_user} ++// otherwise /tmp/{PERFDATA_NAME_user} ++// + // the caller is expected to free the allocated memory. + // +-static char* get_user_tmp_dir(const char* user) { ++#define TMP_BUFFER_LEN (4+22) ++static char* get_user_tmp_dir(const char* user, int vmid, int nspid) { ++ char buffer[TMP_BUFFER_LEN]; ++ char* tmpdir = (char *)os::get_temp_directory(); ++ assert(strlen(tmpdir) == 4, "No longer using /tmp - update buffer size"); ++ ++ if (nspid != -1) { ++ jio_snprintf(buffer, TMP_BUFFER_LEN, "/proc/%d/root%s", vmid, tmpdir); ++ tmpdir = buffer; ++ } + +- const char* tmpdir = os::get_temp_directory(); + const char* perfdir = PERFDATA_NAME; + size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 3; + char* dirname = NEW_C_HEAP_ARRAY(char, nbytes, mtInternal); +@@ -500,7 +512,10 @@ static char* get_user_name(uid_t uid) { + // + // the caller is expected to free the allocated memory. + // +-static char* get_user_name_slow(int vmid, TRAPS) { ++// If nspid != -1, look in /proc/{vmid}/root/tmp for directories ++// containing nspid, otherwise just look for vmid in /tmp ++// ++static char* get_user_name_slow(int vmid, int nspid, TRAPS) { + + // short circuit the directory search if the process doesn't even exist. + if (kill(vmid, 0) == OS_ERR) { +@@ -516,8 +531,19 @@ static char* get_user_name_slow(int vmid, TRAPS) { + // directory search + char* oldest_user = NULL; + time_t oldest_ctime = 0; ++ char buffer[TMP_BUFFER_LEN]; ++ int searchpid; ++ char* tmpdirname = (char *)os::get_temp_directory(); ++ assert(strlen(tmpdirname) == 4, "No longer using /tmp - update buffer size"); + +- const char* tmpdirname = os::get_temp_directory(); ++ if (nspid == -1) { ++ searchpid = vmid; ++ } ++ else { ++ jio_snprintf(buffer, MAXPATHLEN, "/proc/%d/root%s", vmid, tmpdirname); ++ tmpdirname = buffer; ++ searchpid = nspid; ++ } + + // open the temp directory + DIR* tmpdirp = os::opendir(tmpdirname); +@@ -528,7 +554,7 @@ static char* get_user_name_slow(int vmid, TRAPS) { + } + + // for each entry in the directory that matches the pattern hsperfdata_*, +- // open the directory and check if the file for the given vmid exists. ++ // open the directory and check if the file for the given vmid or nspid exists. + // The file with the expected name and the latest creation date is used + // to determine the user name for the process id. + // +@@ -571,7 +597,7 @@ static char* get_user_name_slow(int vmid, TRAPS) { + errno = 0; + while ((udentry = os::readdir(subdirp)) != NULL) { + +- if (filename_to_pid(udentry->d_name) == vmid) { ++ if (filename_to_pid(udentry->d_name) == searchpid) { + struct stat statbuf; + int result; + +@@ -620,10 +646,51 @@ static char* get_user_name_slow(int vmid, TRAPS) { + return(oldest_user); + } + ++// Determine if the vmid is the parent pid ++// for a child in a PID namespace. ++// return the namespace pid if so, otherwise -1 ++static int get_namespace_pid(int vmid) { ++ char fname[24]; ++ int retpid = -1; ++ ++ snprintf(fname, sizeof(fname), "/proc/%d/status", vmid); ++ FILE *fp = fopen(fname, "r"); ++ ++ if (fp) { ++ int pid, nspid; ++ int ret; ++ while (!feof(fp)) { ++ ret = fscanf(fp, "NSpid: %d %d", &pid, &nspid); ++ if (ret == 1) { ++ break; ++ } ++ if (ret == 2) { ++ retpid = nspid; ++ break; ++ } ++ for (;;) { ++ int ch = fgetc(fp); ++ if (ch == EOF || ch == (int)'\n') break; ++ } ++ } ++ fclose(fp); ++ } ++ return retpid; ++} ++ + // return the name of the user that owns the JVM indicated by the given vmid. + // +-static char* get_user_name(int vmid, TRAPS) { +- return get_user_name_slow(vmid, THREAD); ++static char* get_user_name(int vmid, int *nspid, TRAPS) { ++ char *result = get_user_name_slow(vmid, *nspid, THREAD); ++ ++ // If we are examining a container process without PID namespaces enabled ++ // we need to use /proc/{pid}/root/tmp to find hsperfdata files. ++ if (result == NULL) { ++ result = get_user_name_slow(vmid, vmid, THREAD); ++ // Enable nspid logic going forward ++ if (result != NULL) *nspid = vmid; ++ } ++ return result; + } + + // return the file name of the backing store file for the named +@@ -631,13 +698,15 @@ static char* get_user_name(int vmid, TRAPS) { + // + // the caller is expected to free the allocated memory. + // +-static char* get_sharedmem_filename(const char* dirname, int vmid) { ++static char* get_sharedmem_filename(const char* dirname, int vmid, int nspid) { ++ ++ int pid = (nspid == -1) ? vmid : nspid; + + // add 2 for the file separator and a null terminator. + size_t nbytes = strlen(dirname) + UINT_CHARS + 2; + + char* name = NEW_C_HEAP_ARRAY(char, nbytes, mtInternal); +- snprintf(name, nbytes, "%s/%d", dirname, vmid); ++ snprintf(name, nbytes, "%s/%d", dirname, pid); + + return name; + } +@@ -929,8 +998,8 @@ static char* mmap_create_shared(size_t size) { + if (user_name == NULL) + return NULL; + +- char* dirname = get_user_tmp_dir(user_name); +- char* filename = get_sharedmem_filename(dirname, vmid); ++ char* dirname = get_user_tmp_dir(user_name, vmid, -1); ++ char* filename = get_sharedmem_filename(dirname, vmid, -1); + // get the short filename + char* short_filename = strrchr(filename, '/'); + if (short_filename == NULL) { +@@ -1076,8 +1145,11 @@ static void mmap_attach_shared(const char* user, int vmid, PerfMemory::PerfMemor + "Illegal access mode"); + } + ++ // determine if vmid is for a containerized process ++ int nspid = get_namespace_pid(vmid); ++ + if (user == NULL || strlen(user) == 0) { +- luser = get_user_name(vmid, CHECK); ++ luser = get_user_name(vmid, &nspid, CHECK); + } + else { + luser = user; +@@ -1088,7 +1160,7 @@ static void mmap_attach_shared(const char* user, int vmid, PerfMemory::PerfMemor + "Could not map vmid to user Name"); + } + +- char* dirname = get_user_tmp_dir(luser); ++ char* dirname = get_user_tmp_dir(luser, vmid, nspid); + + // since we don't follow symbolic links when creating the backing + // store file, we don't follow them when attaching either. +@@ -1099,7 +1171,7 @@ static void mmap_attach_shared(const char* user, int vmid, PerfMemory::PerfMemor + "Process not found"); + } + +- char* filename = get_sharedmem_filename(dirname, vmid); ++ char* filename = get_sharedmem_filename(dirname, vmid, nspid); + + // copy heap memory to resource memory. the open_sharedmem_file + // method below need to use the filename, but could throw an +diff --git a/jdk/src/share/classes/sun/jvmstat/PlatformSupport.java b/jdk/src/share/classes/sun/jvmstat/PlatformSupport.java +new file mode 100644 +index 000000000..84f3b2274 +--- /dev/null ++++ b/jdk/src/share/classes/sun/jvmstat/PlatformSupport.java +@@ -0,0 +1,114 @@ ++/* ++ * Copyright (c) 2018, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++package sun.jvmstat; ++ ++import java.io.File; ++import java.lang.reflect.Constructor; ++import java.util.Collections; ++import java.util.List; ++import sun.misc.VMSupport; ++ ++/* ++ * Support routines handling temp directory locating ++ * and process ID extraction. ++ */ ++public class PlatformSupport { ++ private static final String tmpDirName; ++ static { ++ /* ++ * For this to work, the target VM and this code need to use ++ * the same directory. Instead of guessing which directory the ++ * VM is using, we will ask. ++ */ ++ String tmpdir = VMSupport.getVMTemporaryDirectory(); ++ ++ /* ++ * Assure that the string returned has a trailing File.separator ++ * character. This check was added because the Linux implementation ++ * changed such that the java.io.tmpdir string no longer terminates ++ * with a File.separator character. ++ */ ++ if (tmpdir.lastIndexOf(File.separator) != (tmpdir.length()-1)) { ++ tmpdir = tmpdir + File.separator; ++ } ++ tmpDirName = tmpdir; ++ } ++ ++ public static PlatformSupport getInstance() { ++ try { ++ Class c = Class.forName("sun.jvmstat.PlatformSupportImpl"); ++ @SuppressWarnings("unchecked") ++ Constructor cntr = (Constructor) c.getConstructor(); ++ return cntr.newInstance(); ++ } catch (ClassNotFoundException e) { ++ return new PlatformSupport(); ++ } catch (ReflectiveOperationException e) { ++ throw new InternalError(e); ++ } ++ } ++ ++ // package-private ++ PlatformSupport() {} ++ ++ /* ++ * Return the OS specific temporary directory ++ */ ++ public static String getTemporaryDirectory() { ++ return tmpDirName; ++ } ++ ++ /* ++ * Return a list of the temporary directories that the VM uses ++ * for the attach and perf data files. This function returns ++ * the traditional temp directory in addition to any paths ++ * accessible by the host which map to temp directories used ++ * by containers. The container functionality is only currently ++ * supported on Linux platforms. ++ * ++ * It is important that this directory is well-known and the ++ * same for all VM instances. It cannot be affected by configuration ++ * variables such as java.io.tmpdir. ++ */ ++ public List getTemporaryDirectories(int vmid) { ++ // Add the default temporary directory only ++ return Collections.singletonList(tmpDirName); ++ } ++ ++ /* ++ * Extract the host PID from a file path. ++ */ ++ public int getLocalVmId(File file) throws NumberFormatException { ++ return Integer.parseInt(file.getName()); ++ } ++ ++ ++ /* ++ * Return the inner most namespaced PID if there is one, ++ * otherwise return the original PID. ++ */ ++ public int getNamespaceVmId(int pid) { ++ return pid; ++ } ++} +diff --git a/jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java b/jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java +new file mode 100644 +index 000000000..4d1d718ab +--- /dev/null ++++ b/jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java +@@ -0,0 +1,227 @@ ++/* ++ * Copyright (c) 2018, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package sun.jvmstat; ++ ++import java.io.*; ++import java.util.*; ++import java.util.regex.*; ++import java.nio.file.Path; ++import java.nio.file.Paths; ++import java.nio.file.Files; ++import java.nio.charset.*; ++ ++/* ++ * Linux specific implementation of the PlatformSupport routines ++ * providing process ID and temp directory support for host and ++ * cgroup container processes. ++ */ ++public class PlatformSupportImpl extends PlatformSupport { ++ private static final String containerTmpPath = "/root" + getTemporaryDirectory(); ++ private static final String pidPatternStr = "^[0-9]+$"; ++ ++ /* ++ * Return the temporary directories that the VM uses for the attach ++ * and perf data files. This function returns the traditional ++ * /tmp directory in addition to paths within the /proc file system ++ * allowing access to container tmp directories such as /proc/{pid}/root/tmp. ++ * ++ * It is important that this directory is well-known and the ++ * same for all VM instances. It cannot be affected by configuration ++ * variables such as java.io.tmpdir. ++ * ++ * Implementation Details: ++ * ++ * Java processes that run in docker containers are typically running ++ * under cgroups with separate pid namespaces which means that pids ++ * within the container are different that the pid which is visible ++ * from the host. The container pids typically start with 1 and ++ * increase. The java process running in the container will use these ++ * pids when creating the hsperfdata files. In order to locate java ++ * processes that are running in containers, we take advantage of ++ * the Linux proc file system which maps the containers tmp directory ++ * to the hosts under /proc/{hostpid}/root/tmp. We use the /proc status ++ * file /proc/{hostpid}/status to determine the containers pid and ++ * then access the hsperfdata file. The status file contains an ++ * entry "NSPid:" which shows the mapping from the hostpid to the ++ * containers pid. ++ * ++ * Example: ++ * ++ * NSPid: 24345 11 ++ * ++ * In this example process 24345 is visible from the host, ++ * is running under the PID namespace and has a container specific ++ * pid of 11. ++ * ++ * The search for Java processes is done by first looking in the ++ * traditional /tmp for host process hsperfdata files and then ++ * the search will container in every /proc/{pid}/root/tmp directory. ++ * There are of course added complications to this search that ++ * need to be taken into account. ++ * ++ * 1. duplication of tmp directories ++ * ++ * /proc/{hostpid}/root/tmp directories exist for many processes ++ * that are running on a Linux kernel that has cgroups enabled even ++ * if they are not running in a container. To avoid this duplication, ++ * we compare the inode of the /proc tmp directories to /tmp and ++ * skip these duplicated directories. ++ * ++ * 2. Containerized processes without PID namespaces being enabled. ++ * ++ * If a container is running a Java process without namespaces being ++ * enabled, an hsperfdata file will only be located at ++ * /proc/{hostpid}/root/tmp/{hostpid}. This is handled by ++ * checking the last component in the path for both the hostpid ++ * and potential namespacepids (if one exists). ++ */ ++ public List getTemporaryDirectories(int pid) { ++ FilenameFilter pidFilter; ++ Matcher pidMatcher; ++ Pattern pidPattern = Pattern.compile(pidPatternStr); ++ long tmpInode = 0; ++ ++ File procdir = new File("/proc"); ++ ++ if (pid != 0) { ++ pidPattern = Pattern.compile(Integer.toString(pid)); ++ } ++ else { ++ pidPattern = Pattern.compile(pidPatternStr); ++ } ++ pidMatcher = pidPattern.matcher(""); ++ ++ // Add the default temporary directory first ++ List v = new ArrayList<>(); ++ v.add(getTemporaryDirectory()); ++ ++ try { ++ File f = new File(getTemporaryDirectory()); ++ tmpInode = (Long)Files.getAttribute(f.toPath(), "unix:ino"); ++ } ++ catch (IOException e) {} ++ ++ pidFilter = new FilenameFilter() { ++ public boolean accept(File dir, String name) { ++ if (!dir.isDirectory()) ++ return false; ++ pidMatcher.reset(name); ++ return pidMatcher.matches(); ++ } ++ }; ++ ++ File[] dirs = procdir.listFiles(pidFilter); ++ ++ // Add all unique /proc/{pid}/root/tmp dirs that are not mapped to /tmp ++ for (File dir : dirs) { ++ String containerTmpDir = dir.getAbsolutePath() + containerTmpPath; ++ File containerFile = new File(containerTmpDir); ++ ++ try { ++ long procInode = (Long)Files.getAttribute(containerFile.toPath(), "unix:ino"); ++ if (containerFile.exists() && containerFile.isDirectory() && ++ containerFile.canRead() && procInode != tmpInode) { ++ v.add(containerTmpDir); ++ } ++ } ++ catch (IOException e) {} ++ } ++ ++ return v; ++ } ++ ++ ++ /* ++ * Extract either the host PID or the NameSpace PID ++ * from a file path. ++ * ++ * File path should be in 1 of these 2 forms: ++ * ++ * /proc/{pid}/root/tmp/hsperfdata_{user}/{nspid} ++ * or ++ * /tmp/hsperfdata_{user}/{pid} ++ * ++ * In either case we want to return {pid} and NOT {nspid} ++ * ++ * This function filters out host pids which do not have ++ * associated hsperfdata files. This is due to the fact that ++ * getTemporaryDirectories will return /proc/{pid}/root/tmp ++ * paths for all container processes whether they are java ++ * processes or not causing duplicate matches. ++ */ ++ public int getLocalVmId(File file) throws NumberFormatException { ++ String p = file.getAbsolutePath(); ++ String s[] = p.split("\\/"); ++ ++ // Determine if this file is from a container ++ if (s.length == 7 && s[1].equals("proc")) { ++ int hostpid = Integer.parseInt(s[2]); ++ int nspid = Integer.parseInt(s[6]); ++ if (nspid == hostpid || nspid == getNamespaceVmId(hostpid)) { ++ return hostpid; ++ } ++ else { ++ return -1; ++ } ++ } ++ else { ++ return Integer.parseInt(file.getName()); ++ } ++ } ++ ++ ++ /* ++ * Return the inner most namespaced PID if there is one, ++ * otherwise return the original PID. ++ */ ++ public int getNamespaceVmId(int pid) { ++ // Assuming a real procfs sits beneath, reading this doesn't block ++ // nor will it consume a lot of memory. ++ Path statusPath = Paths.get("/proc", Integer.toString(pid), "status"); ++ if (Files.notExists(statusPath)) { ++ return pid; // Likely a bad pid, but this is properly handled later. ++ } ++ ++ try { ++ for (String line : Files.readAllLines(statusPath, StandardCharsets.UTF_8)) { ++ String[] parts = line.split(":"); ++ if (parts.length == 2 && parts[0].trim().equals("NSpid")) { ++ parts = parts[1].trim().split("\\s+"); ++ // The last entry represents the PID the JVM "thinks" it is. ++ // Even in non-namespaced pids these entries should be ++ // valid. You could refer to it as the inner most pid. ++ int ns_pid = Integer.parseInt(parts[parts.length - 1]); ++ return ns_pid; ++ } ++ } ++ // Old kernels may not have NSpid field (i.e. 3.10). ++ // Fallback to original pid in the event we cannot deduce. ++ return pid; ++ } catch (NumberFormatException | IOException x) { ++ return pid; ++ } ++ } ++} +diff --git a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java +index fde75fb2d..35d25700d 100644 +--- a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java ++++ b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2004, 2018, 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 +@@ -45,7 +45,7 @@ import java.io.*; + */ + public class LocalVmManager { + private String userName; // user name for monitored jvm +- private File tmpdir; ++ private List tmpdirs; + private Pattern userPattern; + private Matcher userMatcher; + private FilenameFilter userFilter; +@@ -77,8 +77,9 @@ public class LocalVmManager { + public LocalVmManager(String user) { + this.userName = user; + ++ + if (userName == null) { +- tmpdir = new File(PerfDataFile.getTempDirectory()); ++ tmpdirs = PerfDataFile.getTempDirectories(null, 0); + userPattern = Pattern.compile(PerfDataFile.userDirNamePattern); + userMatcher = userPattern.matcher(""); + +@@ -89,7 +90,7 @@ public class LocalVmManager { + } + }; + } else { +- tmpdir = new File(PerfDataFile.getTempDirectory(userName)); ++ tmpdirs = PerfDataFile.getTempDirectories(userName, 0); + } + + filePattern = Pattern.compile(PerfDataFile.fileNamePattern); +@@ -134,65 +135,73 @@ public class LocalVmManager { + */ + Set jvmSet = new HashSet(); + +- if (! tmpdir.isDirectory()) { +- return jvmSet; +- } ++ for (String dir : tmpdirs) { ++ File tmpdir = new File(dir); ++ if (! tmpdir.isDirectory()) { ++ continue; ++ } + +- if (userName == null) { +- /* +- * get a list of all of the user temporary directories and +- * iterate over the list to find any files within those directories. +- */ +- File[] dirs = tmpdir.listFiles(userFilter); +- +- for (int i = 0 ; i < dirs.length; i ++) { +- if (!dirs[i].isDirectory()) { +- continue; ++ if (userName == null) { ++ /* ++ * get a list of all of the user temporary directories and ++ * iterate over the list to find any files within those directories. ++ */ ++ File[] dirs = tmpdir.listFiles(userFilter); ++ for (int i = 0 ; i < dirs.length; i ++) { ++ if (!dirs[i].isDirectory()) { ++ continue; ++ } ++ ++ // get a list of files from the directory ++ File[] files = dirs[i].listFiles(fileFilter); ++ if (files != null) { ++ for (int j = 0; j < files.length; j++) { ++ if (files[j].isFile() && files[j].canRead()) { ++ int vmid = PerfDataFile.getLocalVmId(files[j]); ++ if (vmid != -1) { ++ jvmSet.add(vmid); ++ } ++ } ++ } ++ } + } ++ } else { ++ /* ++ * Check if the user directory can be accessed. Any of these ++ * conditions may have asynchronously changed between subsequent ++ * calls to this method. ++ */ + +- // get a list of files from the directory +- File[] files = dirs[i].listFiles(fileFilter); ++ // get the list of files from the specified user directory ++ File[] files = tmpdir.listFiles(fileFilter); + + if (files != null) { + for (int j = 0; j < files.length; j++) { + if (files[j].isFile() && files[j].canRead()) { +- jvmSet.add(new Integer( +- PerfDataFile.getLocalVmId(files[j]))); ++ int vmid = PerfDataFile.getLocalVmId(files[j]); ++ if (vmid != -1) { ++ jvmSet.add(vmid); ++ } + } + } + } + } +- } else { +- /* +- * Check if the user directory can be accessed. Any of these +- * conditions may have asynchronously changed between subsequent +- * calls to this method. +- */ + +- // get the list of files from the specified user directory +- File[] files = tmpdir.listFiles(fileFilter); ++ // look for any 1.4.1 files ++ File[] files = tmpdir.listFiles(tmpFileFilter); + + if (files != null) { + for (int j = 0; j < files.length; j++) { + if (files[j].isFile() && files[j].canRead()) { +- jvmSet.add(new Integer( +- PerfDataFile.getLocalVmId(files[j]))); ++ int vmid = PerfDataFile.getLocalVmId(files[j]); ++ if (vmid != -1) { ++ jvmSet.add(vmid); ++ } + } + } + } + } + +- // look for any 1.4.1 files +- File[] files = tmpdir.listFiles(tmpFileFilter); +- if (files != null) { +- for (int j = 0; j < files.length; j++) { +- if (files[j].isFile() && files[j].canRead()) { +- jvmSet.add(new Integer( +- PerfDataFile.getLocalVmId(files[j]))); +- } +- } +- } +- + return jvmSet; + } + } +diff --git a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java +index 62c64795b..26045ac5e 100644 +--- a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java ++++ b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2004, 2018 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 +@@ -26,7 +26,11 @@ + package sun.jvmstat.perfdata.monitor.protocol.local; + + import java.io.File; ++import java.util.ArrayList; ++import java.util.List; ++import java.util.stream.Collectors; + import java.io.FilenameFilter; ++import sun.jvmstat.PlatformSupport; + + /** + * Class to provide translations from the local Vm Identifier +@@ -44,11 +48,6 @@ import java.io.FilenameFilter; + public class PerfDataFile { + private PerfDataFile() { }; + +- /** +- * The name of the of the system dependent temporary directory +- */ +- public static final String tmpDirName; +- + /** + * The file name prefix for PerfData shared memory files. + *

+@@ -79,6 +78,12 @@ public class PerfDataFile { + "^hsperfdata_[0-9]+(_[1-2]+)?$"; + + ++ /** ++ * Platform Specific methods for looking up temporary directories ++ * and process IDs. ++ */ ++ private static final PlatformSupport platSupport = PlatformSupport.getInstance(); ++ + /** + * Get a File object for the instrumentation backing store file + * for the JVM identified by the given local Vm Identifier. +@@ -93,7 +98,7 @@ public class PerfDataFile { + * @return File - a File object to the backing store file for the named + * shared memory region of the target JVM. + * @see java.io.File +- * @see #getTempDirectory() ++ * @see #getTempDirectories() + */ + public static File getFile(int lvmid) { + if (lvmid == 0) { +@@ -106,56 +111,65 @@ public class PerfDataFile { + return null; + } + +- /* +- * iterate over all files in all directories in tmpDirName that +- * match the file name patterns. +- */ +- File tmpDir = new File(tmpDirName); +- String[] files = tmpDir.list(new FilenameFilter() { +- public boolean accept(File dir, String name) { +- if (!name.startsWith(dirNamePrefix)) { +- return false; +- } +- File candidate = new File(dir, name); +- return ((candidate.isDirectory() || candidate.isFile()) +- && candidate.canRead()); +- } +- }); +- +- long newestTime = 0; ++ List tmpDirs = getTempDirectories(null, lvmid); + File newest = null; + +- for (int i = 0; i < files.length; i++) { +- File f = new File(tmpDirName + files[i]); +- File candidate = null; ++ for (String dir : tmpDirs) { ++ /* ++ * iterate over all files in all directories in this tmpDir that ++ * match the file name patterns. ++ */ ++ File tmpDir = new File(dir); ++ String[] files = tmpDir.list(new FilenameFilter() { ++ public boolean accept(File dir, String name) { ++ if (!name.startsWith(dirNamePrefix)) { ++ return false; ++ } ++ File candidate = new File(dir, name); ++ return ((candidate.isDirectory() || candidate.isFile()) ++ && candidate.canRead()); ++ } ++ }); + +- if (f.exists() && f.isDirectory()) { +- /* +- * found a directory matching the name patterns. This +- * is a 1.4.2 hsperfdata_ directory. Check for +- * file named in that directory +- */ +- String name = Integer.toString(lvmid); +- candidate = new File(f.getName(), name); ++ long newestTime = 0; + +- } else if (f.exists() && f.isFile()) { +- /* +- * found a file matching the name patterns. This +- * is a 1.4.1 hsperfdata_ file. +- */ +- candidate = f; ++ for (String file : files) { ++ File f = new File(dir + file); ++ File candidate = null; + +- } else { +- // unexpected - let conditional below filter this one out +- candidate = f; +- } ++ if (f.exists() && f.isDirectory()) { ++ /* ++ * found a directory matching the name patterns. This ++ * is a 1.4.2 hsperfdata_ directory. Check for ++ * file named in that directory ++ */ ++ String name = f.getAbsolutePath() + File.separator + lvmid; ++ candidate = new File(name); ++ // Try NameSpace Id if Host Id doesn't exist. ++ if (!candidate.exists()) { ++ name = f.getAbsolutePath() + File.separator + ++ platSupport.getNamespaceVmId(lvmid); ++ candidate = new File(name); ++ } ++ } else if (f.exists() && f.isFile()) { ++ /* ++ * found a file matching the name patterns. This ++ * is a 1.4.1 hsperfdata_ file. ++ */ ++ candidate = f; + +- if (candidate.exists() && candidate.isFile() +- && candidate.canRead()) { +- long modTime = candidate.lastModified(); +- if (modTime >= newestTime) { +- newestTime = modTime; +- newest = candidate; ++ } else { ++ // unexpected - let conditional below filter this one out ++ candidate = f; ++ } ++ ++ if (candidate.exists() && candidate.isFile() ++ && candidate.canRead()) { ++ long modTime = candidate.lastModified(); ++ if (modTime >= newestTime) { ++ newestTime = modTime; ++ newest = candidate; ++ } + } + } + } +@@ -176,7 +190,7 @@ public class PerfDataFile { + * @return File - a File object to the backing store file for the named + * shared memory region of the target JVM. + * @see java.io.File +- * @see #getTempDirectory() ++ * @see #getTempDirectories() + */ + public static File getFile(String user, int lvmid) { + if (lvmid == 0) { +@@ -190,11 +204,22 @@ public class PerfDataFile { + } + + // first try for 1.4.2 and later JVMs +- String basename = getTempDirectory(user) + Integer.toString(lvmid); +- File f = new File(basename); ++ List tmpDirs = getTempDirectories(user, lvmid); ++ String basename; ++ File f; + +- if (f.exists() && f.isFile() && f.canRead()) { +- return f; ++ for (String dir : tmpDirs) { ++ basename = dir + lvmid; ++ f = new File(basename); ++ if (f.exists() && f.isFile() && f.canRead()) { ++ return f; ++ } ++ // Try NameSpace Id if Host Id doesn't exist. ++ basename = dir + platSupport.getNamespaceVmId(lvmid); ++ f = new File(basename); ++ if (f.exists() && f.isFile() && f.canRead()) { ++ return f; ++ } + } + + // No hit on 1.4.2 JVMs, try 1.4.1 files +@@ -235,7 +260,7 @@ public class PerfDataFile { + public static int getLocalVmId(File file) { + try { + // try 1.4.2 and later format first +- return Integer.parseInt(file.getName()); ++ return(platSupport.getLocalVmId(file)); + } catch (NumberFormatException e) { } + + // now try the 1.4.1 format +@@ -266,7 +291,7 @@ public class PerfDataFile { + * @return String - the name of the temporary directory. + */ + public static String getTempDirectory() { +- return tmpDirName; ++ return PlatformSupport.getTemporaryDirectory(); + } + + /** +@@ -282,26 +307,28 @@ public class PerfDataFile { + * @return String - the name of the temporary directory. + */ + public static String getTempDirectory(String user) { +- return tmpDirName + dirNamePrefix + user + File.separator; ++ return getTempDirectory() + dirNamePrefix + user + File.separator; + } + +- static { +- /* +- * For this to work, the target VM and this code need to use +- * the same directory. Instead of guessing which directory the +- * VM is using, we will ask. +- */ +- String tmpdir = sun.misc.VMSupport.getVMTemporaryDirectory(); +- +- /* +- * Assure that the string returned has a trailing File.separator +- * character. This check was added because the Linux implementation +- * changed such that the java.io.tmpdir string no longer terminates +- * with a File.separator character. +- */ +- if (tmpdir.lastIndexOf(File.separator) != (tmpdir.length()-1)) { +- tmpdir = tmpdir + File.separator; ++ /** ++ * Return the names of the temporary directories being searched for ++ * HotSpot PerfData backing store files. ++ *

++ * This method returns the traditional host temp directory but also ++ * includes a list of temp directories used by containers. ++ * ++ * @return List - A List of temporary directories to search. ++ */ ++ public static List getTempDirectories(String userName, int vmid) { ++ List list = platSupport.getTemporaryDirectories(vmid); ++ if (userName == null) { ++ return list; + } +- tmpDirName = tmpdir; ++ ++ List nameList = list.stream() ++ .map(name -> name + dirNamePrefix + userName + File.separator) ++ .collect(Collectors.toList()); ++ ++ return nameList; + } + } +-- +2.22.0 + diff --git a/0005-8196743-jstatd-doesn-t-see-new-Java-processes-inside.patch b/0005-8196743-jstatd-doesn-t-see-new-Java-processes-inside.patch new file mode 100644 index 0000000000000000000000000000000000000000..431510b88fce3c2bf277f9261b7a13ff5a3de91c --- /dev/null +++ b/0005-8196743-jstatd-doesn-t-see-new-Java-processes-inside.patch @@ -0,0 +1,57 @@ +Date: Wed, 31 May 2023 09:22:26 +0000 +Subject: [PATCH 05/59] 8196743: jstatd doesn't see new Java processes inside Docker container + +Bug url: https://bugs.openjdk.org/browse/JDK-8196743 +--- + .../perfdata/monitor/protocol/local/LocalVmManager.java | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java +index 35d25700d..4be281f65 100644 +--- a/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java ++++ b/jdk/src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2004, 2021, 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 +@@ -45,7 +45,6 @@ import java.io.*; + */ + public class LocalVmManager { + private String userName; // user name for monitored jvm +- private List tmpdirs; + private Pattern userPattern; + private Matcher userMatcher; + private FilenameFilter userFilter; +@@ -77,9 +76,7 @@ public class LocalVmManager { + public LocalVmManager(String user) { + this.userName = user; + +- + if (userName == null) { +- tmpdirs = PerfDataFile.getTempDirectories(null, 0); + userPattern = Pattern.compile(PerfDataFile.userDirNamePattern); + userMatcher = userPattern.matcher(""); + +@@ -89,8 +86,6 @@ public class LocalVmManager { + return userMatcher.lookingAt(); + } + }; +- } else { +- tmpdirs = PerfDataFile.getTempDirectories(userName, 0); + } + + filePattern = Pattern.compile(PerfDataFile.fileNamePattern); +@@ -134,6 +129,7 @@ public class LocalVmManager { + * we'd see strange file names being matched by the matcher. + */ + Set jvmSet = new HashSet(); ++ List tmpdirs = PerfDataFile.getTempDirectories(userName, 0); + + for (String dir : tmpdirs) { + File tmpdir = new File(dir); +-- +2.22.0 + diff --git a/0006-8284330-jcmd-may-not-be-able-to-find-processes-in-th.patch b/0006-8284330-jcmd-may-not-be-able-to-find-processes-in-th.patch new file mode 100644 index 0000000000000000000000000000000000000000..d36ffc0844408732f0b8332927b87b2e08ba76e6 --- /dev/null +++ b/0006-8284330-jcmd-may-not-be-able-to-find-processes-in-th.patch @@ -0,0 +1,113 @@ +Date: Wed, 31 May 2023 09:34:28 +0000 +Subject: [PATCH 06/59] 8284330: jcmd may not be able to find processes in the container + +Bug url: https://bugs.openjdk.org/browse/JDK-8284330 +--- + .../sun/jvmstat/PlatformSupportImpl.java | 57 ++++++++++++------- + 1 file changed, 37 insertions(+), 20 deletions(-) + +diff --git a/jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java b/jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java +index 4d1d718ab..38da80cc7 100644 +--- a/jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java ++++ b/jdk/src/share/classes/sun/jvmstat/PlatformSupportImpl.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2018, 2022, 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,6 +42,32 @@ public class PlatformSupportImpl extends PlatformSupport { + private static final String containerTmpPath = "/root" + getTemporaryDirectory(); + private static final String pidPatternStr = "^[0-9]+$"; + ++ private long tmpInode; ++ private long tmpDev; ++ ++ public PlatformSupportImpl() { ++ super(); ++ try { ++ File f = new File(getTemporaryDirectory()); ++ Path tmpPath = f.toPath(); ++ tmpInode = (Long)Files.getAttribute(tmpPath, "unix:ino"); ++ tmpDev = (Long)Files.getAttribute(tmpPath, "unix:dev"); ++ } catch (IOException e) { ++ tmpInode = -1L; ++ tmpDev = -1L; ++ } ++ } ++ ++ private boolean tempDirectoryEquals(Path p) { ++ try { ++ long ino = (Long)Files.getAttribute(p, "unix:ino"); ++ long dev = (Long)Files.getAttribute(p, "unix:dev"); ++ return (ino == tmpInode) && (dev == tmpDev); ++ } catch (IOException e) { ++ return false; ++ } ++ } ++ + /* + * Return the temporary directories that the VM uses for the attach + * and perf data files. This function returns the traditional +@@ -84,11 +110,12 @@ public class PlatformSupportImpl extends PlatformSupport { + * + * 1. duplication of tmp directories + * +- * /proc/{hostpid}/root/tmp directories exist for many processes +- * that are running on a Linux kernel that has cgroups enabled even +- * if they are not running in a container. To avoid this duplication, +- * we compare the inode of the /proc tmp directories to /tmp and +- * skip these duplicated directories. ++ * When cgroups is enabled, the directory /proc/{pid}/root/tmp may ++ * exist even if the given pid is not running inside a container. In ++ * this case, this directory is usually the same as /tmp and should ++ * be skipped, or else we would get duplicated hsperfdata files. ++ * This case can be detected if the inode and device id of ++ * /proc/{pid}/root/tmp are the same as /tmp. + * + * 2. Containerized processes without PID namespaces being enabled. + * +@@ -102,7 +129,6 @@ public class PlatformSupportImpl extends PlatformSupport { + FilenameFilter pidFilter; + Matcher pidMatcher; + Pattern pidPattern = Pattern.compile(pidPatternStr); +- long tmpInode = 0; + + File procdir = new File("/proc"); + +@@ -118,12 +144,6 @@ public class PlatformSupportImpl extends PlatformSupport { + List v = new ArrayList<>(); + v.add(getTemporaryDirectory()); + +- try { +- File f = new File(getTemporaryDirectory()); +- tmpInode = (Long)Files.getAttribute(f.toPath(), "unix:ino"); +- } +- catch (IOException e) {} +- + pidFilter = new FilenameFilter() { + public boolean accept(File dir, String name) { + if (!dir.isDirectory()) +@@ -140,14 +160,11 @@ public class PlatformSupportImpl extends PlatformSupport { + String containerTmpDir = dir.getAbsolutePath() + containerTmpPath; + File containerFile = new File(containerTmpDir); + +- try { +- long procInode = (Long)Files.getAttribute(containerFile.toPath(), "unix:ino"); +- if (containerFile.exists() && containerFile.isDirectory() && +- containerFile.canRead() && procInode != tmpInode) { +- v.add(containerTmpDir); +- } ++ if (containerFile.exists() && containerFile.isDirectory() && ++ containerFile.canRead() && ++ !tempDirectoryEquals(containerFile.toPath())) { ++ v.add(containerTmpDir); + } +- catch (IOException e) {} + } + + return v; +-- +2.22.0 + diff --git a/0007-8241670-Enhance-heap-region-size-ergonomics-to-impro.patch b/0007-8241670-Enhance-heap-region-size-ergonomics-to-impro.patch new file mode 100644 index 0000000000000000000000000000000000000000..e89d761d86162f8841abdb48178a63ce382a5129 --- /dev/null +++ b/0007-8241670-Enhance-heap-region-size-ergonomics-to-impro.patch @@ -0,0 +1,146 @@ +Date: Mon, 5 Jun 2023 20:12:44 +0800 +Subject: [PATCH 07/59] 8241670: Enhance heap region size ergonomics to improve OOTB performance + +--- + .../g1/g1CollectorPolicy.cpp | 3 +- + .../vm/gc_implementation/g1/heapRegion.cpp | 29 ++++++++----------- + .../vm/gc_implementation/g1/heapRegion.hpp | 3 +- + .../gc_implementation/g1/heapRegionBounds.hpp | 3 +- + .../gc/arguments/TestG1HeapRegionSize.java | 3 +- + 5 files changed, 20 insertions(+), 21 deletions(-) + +diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +index 05ce59987..0acdd2b69 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2022, Huawei Technologies Co., Ltd. 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 +@@ -184,7 +185,7 @@ G1CollectorPolicy::G1CollectorPolicy() : + // the region size on the heap size, but the heap size should be + // aligned with the region size. To get around this we use the + // unaligned values for the heap. +- HeapRegion::setup_heap_region_size(InitialHeapSize, MaxHeapSize); ++ HeapRegion::setup_heap_region_size(MaxHeapSize); + HeapRegionRemSet::setup_remset_size(); + + G1ErgoVerbose::initialize(); +diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +index 87cc73bee..28b21a9be 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2022, Huawei Technologies Co., Ltd. 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 +@@ -107,29 +108,23 @@ size_t HeapRegion::max_region_size() { + return HeapRegionBounds::max_size(); + } + +-void HeapRegion::setup_heap_region_size(size_t initial_heap_size, size_t max_heap_size) { +- uintx region_size = G1HeapRegionSize; +- if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { +- size_t average_heap_size = (initial_heap_size + max_heap_size) / 2; +- region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(), ++void HeapRegion::setup_heap_region_size(size_t max_heap_size) { ++ uintx region_size = G1HeapRegionSize; ++ // G1HeapRegionSize = 0 means decide ergonomically. ++ if (region_size == 0) { ++ region_size = MAX2(max_heap_size / HeapRegionBounds::target_number(), + (uintx) HeapRegionBounds::min_size()); + } + +- int region_size_log = log2_long((jlong) region_size); +- // Recalculate the region size to make sure it's a power of +- // 2. This means that region_size is the largest power of 2 that's +- // <= what we've calculated so far. +- region_size = ((uintx)1 << region_size_log); ++ // Make sure region size is a power of 2. Rounding up since this ++ // is beneficial in most cases. ++ region_size = is_power_of_2(region_size) ? region_size : (size_t)1 << (log2_intptr(region_size) + 1); + + // Now make sure that we don't go over or under our limits. +- if (region_size < HeapRegionBounds::min_size()) { +- region_size = HeapRegionBounds::min_size(); +- } else if (region_size > HeapRegionBounds::max_size()) { +- region_size = HeapRegionBounds::max_size(); +- } ++ region_size = MIN2(MAX2(region_size, HeapRegionBounds::min_size()), HeapRegionBounds::max_size()); + +- // And recalculate the log. +- region_size_log = log2_long((jlong) region_size); ++ // Calculate the log for the region size. ++ int region_size_log = exact_log2_long((jlong)region_size); + + // Now, set up the globals. + guarantee(LogOfHRGrainBytes == 0, "we should only set it once"); +diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp +index 5d2415e84..4e0afbac1 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2022, Huawei Technologies Co., Ltd. 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 +@@ -333,7 +334,7 @@ class HeapRegion: public G1OffsetTableContigSpace { + // CardsPerRegion). All those fields are considered constant + // throughout the JVM's execution, therefore they should only be set + // up once during initialization time. +- static void setup_heap_region_size(size_t initial_heap_size, size_t max_heap_size); ++ static void setup_heap_region_size(size_t max_heap_size); + + // All allocated blocks are occupied by objects in a HeapRegion + bool block_is_obj(const HeapWord* p) const; +diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionBounds.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionBounds.hpp +index 1da7f24c1..c76dead88 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionBounds.hpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionBounds.hpp +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2022, Huawei Technologies Co., Ltd. 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 +@@ -40,7 +41,7 @@ private: + static const size_t MAX_REGION_SIZE = 32 * 1024 * 1024; + + // The automatic region size calculation will try to have around this +- // many regions in the heap (based on the min heap size). ++ // many regions in the heap. + static const size_t TARGET_REGION_NUMBER = 2048; + + public: +diff --git a/hotspot/test/gc/arguments/TestG1HeapRegionSize.java b/hotspot/test/gc/arguments/TestG1HeapRegionSize.java +index 0442d2c61..a9b5fa0cb 100644 +--- a/hotspot/test/gc/arguments/TestG1HeapRegionSize.java ++++ b/hotspot/test/gc/arguments/TestG1HeapRegionSize.java +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. ++* Copyright (c) 2022, Huawei Technologies Co., Ltd. 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 +@@ -28,7 +29,7 @@ + * @summary Verify that the flag G1HeapRegionSize is updated properly + * @run main/othervm -Xmx64m TestG1HeapRegionSize 1048576 + * @run main/othervm -XX:G1HeapRegionSize=2m -Xmx64m TestG1HeapRegionSize 2097152 +- * @run main/othervm -XX:G1HeapRegionSize=3m -Xmx64m TestG1HeapRegionSize 2097152 ++ * @run main/othervm -XX:G1HeapRegionSize=3m -Xmx64m TestG1HeapRegionSize 4194304 + * @run main/othervm -XX:G1HeapRegionSize=64m -Xmx256m TestG1HeapRegionSize 33554432 + */ + +-- +2.22.0 + diff --git a/0008-8223162-Improve-ergonomics-for-Sparse-PRT-entry-sizi.patch b/0008-8223162-Improve-ergonomics-for-Sparse-PRT-entry-sizi.patch new file mode 100644 index 0000000000000000000000000000000000000000..85f830a7265befe38b511501ada8a62e1c223009 --- /dev/null +++ b/0008-8223162-Improve-ergonomics-for-Sparse-PRT-entry-sizi.patch @@ -0,0 +1,60 @@ +Date: Mon, 5 Jun 2023 20:26:02 +0800 +Subject: 8223162: Improve ergonomics for Sparse PRT entry sizing + +--- + .../share/vm/gc_implementation/g1/heapRegionRemSet.cpp | 8 ++++---- + .../share/vm/gc_implementation/g1/heapRegionRemSet.hpp | 1 + + hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp | 4 +--- + 3 files changed, 6 insertions(+), 7 deletions(-) + +diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +index 8167d2b09..9e9391ba6 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +@@ -868,12 +868,12 @@ HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, + } + + void HeapRegionRemSet::setup_remset_size() { +- // Setup sparse and fine-grain tables sizes. +- // table_size = base * (log(region_size / 1M) + 1) + const int LOG_M = 20; +- int region_size_log_mb = MAX2(HeapRegion::LogOfHRGrainBytes - LOG_M, 0); ++ guarantee(HeapRegion::LogOfHRGrainBytes >= LOG_M, err_msg("Code assumes the region size >= 1M, but is " SIZE_FORMAT "B", HeapRegion::GrainBytes)); ++ ++ int region_size_log_mb = HeapRegion::LogOfHRGrainBytes - LOG_M; + if (FLAG_IS_DEFAULT(G1RSetSparseRegionEntries)) { +- G1RSetSparseRegionEntries = G1RSetSparseRegionEntriesBase * (region_size_log_mb + 1); ++ G1RSetSparseRegionEntries = G1RSetSparseRegionEntriesBase * ((size_t)1 << (region_size_log_mb + 1)); + } + if (FLAG_IS_DEFAULT(G1RSetRegionEntries)) { + G1RSetRegionEntries = G1RSetRegionEntriesBase * (region_size_log_mb + 1); +diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp +index 77751b4a9..6659dc550 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp +@@ -271,6 +271,7 @@ public: + HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, HeapRegion* hr); + + static uint num_par_rem_sets(); ++ // Setup sparse and fine-grain tables sizes. + static void setup_remset_size(); + + HeapRegion* hr() const { +diff --git a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp +index 17bd4a145..3d2de1a95 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp +@@ -218,9 +218,7 @@ class SparsePRT VALUE_OBJ_CLASS_SPEC { + + HeapRegion* _hr; + +- enum SomeAdditionalPrivateConstants { +- InitialCapacity = 16 +- }; ++ static const size_t InitialCapacity = 8; + + void expand(); + +-- +2.22.0 + diff --git a/0009-8262316-Reducing-locks-in-RSA-Blinding.patch b/0009-8262316-Reducing-locks-in-RSA-Blinding.patch new file mode 100644 index 0000000000000000000000000000000000000000..bbd8a510e492436d08b1f9caf912651fc85a7987 --- /dev/null +++ b/0009-8262316-Reducing-locks-in-RSA-Blinding.patch @@ -0,0 +1,165 @@ +Date: Mon, 5 Jun 2023 20:27:38 +0800 +Subject: 8262316: Reducing locks in RSA Blinding + +Bug url: https://bugs.openjdk.org/browse/JDK-8262316 +--- + .../classes/sun/security/rsa/RSACore.java | 101 +++++++++++------- + 1 file changed, 60 insertions(+), 41 deletions(-) + +diff --git a/jdk/src/share/classes/sun/security/rsa/RSACore.java b/jdk/src/share/classes/sun/security/rsa/RSACore.java +index 9809639a0..ae187b5a5 100644 +--- a/jdk/src/share/classes/sun/security/rsa/RSACore.java ++++ b/jdk/src/share/classes/sun/security/rsa/RSACore.java +@@ -25,20 +25,26 @@ + + package sun.security.rsa; + +-import java.math.BigInteger; +-import java.util.*; +- +-import java.security.SecureRandom; +-import java.security.interfaces.*; ++import sun.security.jca.JCAUtil; + + import javax.crypto.BadPaddingException; + +-import sun.security.jca.JCAUtil; ++import java.math.BigInteger; ++import java.security.SecureRandom; ++import java.security.interfaces.RSAKey; ++import java.security.interfaces.RSAPrivateCrtKey; ++import java.security.interfaces.RSAPrivateKey; ++import java.security.interfaces.RSAPublicKey; ++import java.util.Arrays; ++import java.util.Map; ++import java.util.WeakHashMap; ++import java.util.concurrent.ConcurrentLinkedQueue; ++import java.util.concurrent.locks.ReentrantLock; + + /** + * Core of the RSA implementation. Has code to perform public and private key + * RSA operations (with and without CRT for private key ops). Private CRT ops +- * also support blinding to twart timing attacks. ++ * also support blinding to thwart timing attacks. + * + * The code in this class only does the core RSA operation. Padding and + * unpadding must be done externally. +@@ -53,11 +59,14 @@ public final class RSACore { + // globally enable/disable use of blinding + private final static boolean ENABLE_BLINDING = true; + +- // cache for blinding parameters. Map +- // use a weak hashmap so that cached values are automatically cleared +- // when the modulus is GC'ed +- private final static Map ++ // cache for blinding parameters. Map> use a weak hashmap so that, ++ // cached values are automatically cleared when the modulus is GC'ed. ++ // Multiple BlindingParameters can be queued during times of heavy load, ++ // like performance testing. ++ private static final Map> + blindingCache = new WeakHashMap<>(); ++ private static final ReentrantLock lock = new ReentrantLock(); + + private RSACore() { + // empty +@@ -402,56 +411,66 @@ public final class RSACore { + if ((this.e != null && this.e.equals(e)) || + (this.d != null && this.d.equals(d))) { + +- BlindingRandomPair brp = null; +- synchronized (this) { +- if (!u.equals(BigInteger.ZERO) && +- !v.equals(BigInteger.ZERO)) { +- +- brp = new BlindingRandomPair(u, v); +- if (u.compareTo(BigInteger.ONE) <= 0 || +- v.compareTo(BigInteger.ONE) <= 0) { +- +- // need to reset the random pair next time +- u = BigInteger.ZERO; +- v = BigInteger.ZERO; +- } else { +- u = u.modPow(BIG_TWO, n); +- v = v.modPow(BIG_TWO, n); +- } +- } // Otherwise, need to reset the random pair. ++ BlindingRandomPair brp = new BlindingRandomPair(u, v); ++ if (u.compareTo(BigInteger.ONE) <= 0 || ++ v.compareTo(BigInteger.ONE) <= 0) { ++ // Reset so the parameters will be not queued later ++ u = BigInteger.ZERO; ++ v = BigInteger.ZERO; ++ } else { ++ u = u.modPow(BIG_TWO, n); ++ v = v.modPow(BIG_TWO, n); + } + return brp; + } + + return null; + } ++ ++ // Check if reusable, return true if both u & v are not zero. ++ boolean isReusable() { ++ return !u.equals(BigInteger.ZERO) && !v.equals(BigInteger.ZERO); ++ } + } + + private static BlindingRandomPair getBlindingRandomPair( + BigInteger e, BigInteger d, BigInteger n) { + +- BlindingParameters bps = null; +- synchronized (blindingCache) { +- bps = blindingCache.get(n); ++ ConcurrentLinkedQueue queue; ++ ++ // Get queue from map, if there is none then create one ++ lock.lock(); ++ try { ++ queue = blindingCache.computeIfAbsent(n, ++ ignored -> new ConcurrentLinkedQueue<>()); ++ } finally { ++ lock.unlock(); + } + ++ BlindingParameters bps = queue.poll(); + if (bps == null) { + bps = new BlindingParameters(e, d, n); +- synchronized (blindingCache) { +- blindingCache.putIfAbsent(n, bps); +- } + } ++ BlindingRandomPair brp = null; + +- BlindingRandomPair brp = bps.getBlindingRandomPair(e, d, n); +- if (brp == null) { +- // need to reset the blinding parameters +- bps = new BlindingParameters(e, d, n); +- synchronized (blindingCache) { +- blindingCache.replace(n, bps); +- } ++ // Loops to get a valid pair, going through the queue or create a new ++ // parameters if needed. ++ while (brp == null) { + brp = bps.getBlindingRandomPair(e, d, n); ++ if (brp == null) { ++ // need to reset the blinding parameters, first check for ++ // another in the queue. ++ bps = queue.poll(); ++ if (bps == null) { ++ bps = new BlindingParameters(e, d, n); ++ } ++ } + } + ++ // If this parameters are still usable, put them back into the queue. ++ if (bps.isReusable()) { ++ queue.add(bps); ++ } + return brp; + } + +-- +2.22.0 + diff --git a/0010-8283994-Make-Xerces-DatatypeException-stackless.patch b/0010-8283994-Make-Xerces-DatatypeException-stackless.patch new file mode 100644 index 0000000000000000000000000000000000000000..2348d636178c8c58d5d0e9011db49444111bdf0a --- /dev/null +++ b/0010-8283994-Make-Xerces-DatatypeException-stackless.patch @@ -0,0 +1,26 @@ +Date: Mon, 5 Jun 2023 20:31:43 +0800 +Subject: 8283994: Make Xerces DatatypeException stackless + +Bug url: https://bugs.openjdk.org/browse/JDK-8283994 +--- + .../apache/xerces/internal/impl/dv/DatatypeException.java | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java +index 17efe6aa0..9a428649a 100644 +--- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java ++++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java +@@ -107,4 +107,10 @@ public class DatatypeException extends Exception { + + return msg; + } ++ ++ @Override ++ public Throwable fillInStackTrace() { ++ // This is an internal exception; the stack trace is irrelevant. ++ return this; ++ } + } +-- +2.22.0 + diff --git a/0011-Optimizing-ObjectInputStream-by-FreqInlineSize.patch b/0011-Optimizing-ObjectInputStream-by-FreqInlineSize.patch new file mode 100644 index 0000000000000000000000000000000000000000..0b2eb715f69d8fc9036af84ae6f493b2e0ba46ba --- /dev/null +++ b/0011-Optimizing-ObjectInputStream-by-FreqInlineSize.patch @@ -0,0 +1,51 @@ +Date: Mon, 5 Jun 2023 20:35:04 +0800 +Subject: Optimizing ObjectInputStream by FreqInlineSize + +--- + hotspot/src/share/vm/opto/bytecodeInfo.cpp | 2 +- + .../share/classes/java/io/ObjectInputStream.java | 2 +- + .../share/classes/java/io/ObjectOutputStream.java | 2 +- + 4 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/hotspot/src/share/vm/opto/bytecodeInfo.cpp b/hotspot/src/share/vm/opto/bytecodeInfo.cpp +index 4fa8e12f1..f9191ec06 100644 +--- a/hotspot/src/share/vm/opto/bytecodeInfo.cpp ++++ b/hotspot/src/share/vm/opto/bytecodeInfo.cpp +@@ -171,7 +171,7 @@ bool InlineTree::should_inline(ciMethod* callee_method, ciMethod* caller_method, + is_unboxing_method(callee_method, C) || + is_init_with_ea(callee_method, caller_method, C)) { + +- max_inline_size = C->freq_inline_size(); ++ max_inline_size = (int)FreqInlineSize; + if (size <= max_inline_size && TraceFrequencyInlining) { + CompileTask::print_inline_indent(inline_level()); + tty->print_cr("Inlined frequent method (freq=%d count=%d):", freq, call_site_count); +diff --git a/jdk/src/share/classes/java/io/ObjectInputStream.java b/jdk/src/share/classes/java/io/ObjectInputStream.java +index 85e3958b4..6a7280eab 100644 +--- a/jdk/src/share/classes/java/io/ObjectInputStream.java ++++ b/jdk/src/share/classes/java/io/ObjectInputStream.java +@@ -387,7 +387,7 @@ public class ObjectInputStream + /** + * value of "useFastSerializer" property + */ +- private static final boolean defaultFastSerializer = UNSAFE.getUseFastSerializer(); ++ private final boolean defaultFastSerializer = UNSAFE.getUseFastSerializer(); + + /** + * true or false for open FastSerilizer +diff --git a/jdk/src/share/classes/java/io/ObjectOutputStream.java b/jdk/src/share/classes/java/io/ObjectOutputStream.java +index 23c1fff59..328f47589 100644 +--- a/jdk/src/share/classes/java/io/ObjectOutputStream.java ++++ b/jdk/src/share/classes/java/io/ObjectOutputStream.java +@@ -240,7 +240,7 @@ public class ObjectOutputStream + * Value of "UseFastSerializer" property. The fastSerializer is turned + * on when it is true. + */ +- private static final boolean useFastSerializer = UNSAFE.getUseFastSerializer(); ++ private final boolean useFastSerializer = UNSAFE.getUseFastSerializer(); + + /** + * value of "printFastSerializer" property, +-- +2.22.0 + diff --git a/0012-8301187-Memory-leaks-in-OopMapCache.patch b/0012-8301187-Memory-leaks-in-OopMapCache.patch new file mode 100644 index 0000000000000000000000000000000000000000..a4b19cb3f17374d5a0cf97630c7792276ae963c1 --- /dev/null +++ b/0012-8301187-Memory-leaks-in-OopMapCache.patch @@ -0,0 +1,30 @@ +Date: Mon, 5 Jun 2023 20:37:13 +0800 +Subject: [PATCH 12/59] 8301187: Memory leaks in OopMapCache + +Bug url: https://bugs.openjdk.org/browse/JDK-8301187 +--- + hotspot/src/share/vm/interpreter/oopMapCache.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/hotspot/src/share/vm/interpreter/oopMapCache.cpp b/hotspot/src/share/vm/interpreter/oopMapCache.cpp +index 528906267..bd7d4f100 100644 +--- a/hotspot/src/share/vm/interpreter/oopMapCache.cpp ++++ b/hotspot/src/share/vm/interpreter/oopMapCache.cpp +@@ -561,6 +561,7 @@ void OopMapCache::lookup(methodHandle method, + // at this time. We give the caller of lookup() a copy of the + // interesting info via parameter entry_for, but we don't add it to + // the cache. See the gory details in Method*.cpp. ++ tmp->flush(); + FREE_C_HEAP_OBJ(tmp, mtClass); + return; + } +@@ -635,5 +636,6 @@ void OopMapCache::compute_one_oop_map(methodHandle method, int bci, InterpreterO + tmp->initialize(); + tmp->fill(method, bci); + entry->resource_copy(tmp); ++ tmp->flush(); + FREE_C_HEAP_ARRAY(OopMapCacheEntry, tmp, mtInternal); + } +-- +2.22.0 + diff --git a/0014-8280511-AArch64-Combine-shift-and-negate-to-a-single.patch b/0014-8280511-AArch64-Combine-shift-and-negate-to-a-single.patch new file mode 100644 index 0000000000000000000000000000000000000000..6365756fb4f401f8a1acda8c07627dca33aa7f78 --- /dev/null +++ b/0014-8280511-AArch64-Combine-shift-and-negate-to-a-single.patch @@ -0,0 +1,382 @@ +Date: Mon, 5 Jun 2023 20:43:22 +0800 +Subject: [PATCH 14/59] 8280511: AArch64: Combine shift and negate to a single instruction + +Bug url: https://bugs.openjdk.org/browse/JDK-8280511 +--- + hotspot/src/cpu/aarch64/vm/aarch64.ad | 102 ++++++++++ + hotspot/src/cpu/aarch64/vm/aarch64_ad.m4 | 25 +++ + hotspot/test/compiler/codegen/ShiftTest.java | 199 +++++++++++++++++++ + 3 files changed, 326 insertions(+) + create mode 100644 hotspot/test/compiler/codegen/ShiftTest.java + +diff --git a/hotspot/src/cpu/aarch64/vm/aarch64.ad b/hotspot/src/cpu/aarch64/vm/aarch64.ad +index 511ce913e..d73d5d457 100644 +--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad ++++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad +@@ -9818,6 +9818,108 @@ instruct regI_not_reg(iRegINoSp dst, + ins_pipe(ialu_reg); + %} + ++// This pattern is automatically generated from aarch64_ad.m4 ++// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE ++instruct NegI_reg_URShift_reg(iRegINoSp dst, ++ immI0 zero, iRegIorL2I src1, immI src2) %{ ++ match(Set dst (SubI zero (URShiftI src1 src2))); ++ ++ ins_cost(1.9 * INSN_COST); ++ format %{ "negw $dst, $src1, LSR $src2" %} ++ ++ ins_encode %{ ++ __ negw(as_Register($dst$$reg), as_Register($src1$$reg), ++ Assembler::LSR, $src2$$constant & 0x1f); ++ %} ++ ++ ins_pipe(ialu_reg_shift); ++%} ++ ++// This pattern is automatically generated from aarch64_ad.m4 ++// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE ++instruct NegI_reg_RShift_reg(iRegINoSp dst, ++ immI0 zero, iRegIorL2I src1, immI src2) %{ ++ match(Set dst (SubI zero (RShiftI src1 src2))); ++ ++ ins_cost(1.9 * INSN_COST); ++ format %{ "negw $dst, $src1, ASR $src2" %} ++ ++ ins_encode %{ ++ __ negw(as_Register($dst$$reg), as_Register($src1$$reg), ++ Assembler::ASR, $src2$$constant & 0x1f); ++ %} ++ ++ ins_pipe(ialu_reg_shift); ++%} ++ ++// This pattern is automatically generated from aarch64_ad.m4 ++// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE ++instruct NegI_reg_LShift_reg(iRegINoSp dst, ++ immI0 zero, iRegIorL2I src1, immI src2) %{ ++ match(Set dst (SubI zero (LShiftI src1 src2))); ++ ++ ins_cost(1.9 * INSN_COST); ++ format %{ "negw $dst, $src1, LSL $src2" %} ++ ++ ins_encode %{ ++ __ negw(as_Register($dst$$reg), as_Register($src1$$reg), ++ Assembler::LSL, $src2$$constant & 0x1f); ++ %} ++ ++ ins_pipe(ialu_reg_shift); ++%} ++ ++// This pattern is automatically generated from aarch64_ad.m4 ++// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE ++instruct NegL_reg_URShift_reg(iRegLNoSp dst, ++ immL0 zero, iRegL src1, immI src2) %{ ++ match(Set dst (SubL zero (URShiftL src1 src2))); ++ ++ ins_cost(1.9 * INSN_COST); ++ format %{ "neg $dst, $src1, LSR $src2" %} ++ ++ ins_encode %{ ++ __ neg(as_Register($dst$$reg), as_Register($src1$$reg), ++ Assembler::LSR, $src2$$constant & 0x3f); ++ %} ++ ++ ins_pipe(ialu_reg_shift); ++%} ++ ++// This pattern is automatically generated from aarch64_ad.m4 ++// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE ++instruct NegL_reg_RShift_reg(iRegLNoSp dst, ++ immL0 zero, iRegL src1, immI src2) %{ ++ match(Set dst (SubL zero (RShiftL src1 src2))); ++ ++ ins_cost(1.9 * INSN_COST); ++ format %{ "neg $dst, $src1, ASR $src2" %} ++ ++ ins_encode %{ ++ __ neg(as_Register($dst$$reg), as_Register($src1$$reg), ++ Assembler::ASR, $src2$$constant & 0x3f); ++ %} ++ ++ ins_pipe(ialu_reg_shift); ++%} ++ ++// This pattern is automatically generated from aarch64_ad.m4 ++// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE ++instruct NegL_reg_LShift_reg(iRegLNoSp dst, ++ immL0 zero, iRegL src1, immI src2) %{ ++ match(Set dst (SubL zero (LShiftL src1 src2))); ++ ++ ins_cost(1.9 * INSN_COST); ++ format %{ "neg $dst, $src1, LSL $src2" %} ++ ++ ins_encode %{ ++ __ neg(as_Register($dst$$reg), as_Register($src1$$reg), ++ Assembler::LSL, $src2$$constant & 0x3f); ++ %} ++ ++ ins_pipe(ialu_reg_shift); ++%} ++ + instruct AndI_reg_not_reg(iRegINoSp dst, + iRegIorL2I src1, iRegIorL2I src2, immI_M1 m1, + rFlagsReg cr) %{ +diff --git a/hotspot/src/cpu/aarch64/vm/aarch64_ad.m4 b/hotspot/src/cpu/aarch64/vm/aarch64_ad.m4 +index 9fb793023..6ec8fde08 100644 +--- a/hotspot/src/cpu/aarch64/vm/aarch64_ad.m4 ++++ b/hotspot/src/cpu/aarch64/vm/aarch64_ad.m4 +@@ -47,6 +47,24 @@ instruct $2$1_reg_$4_reg(iReg$1NoSp dst, + + ins_pipe(ialu_reg_reg_shift); + %}')dnl ++define(`NEG_SHIFT_INSN', ++`// This pattern is automatically generated from aarch64_ad.m4 ++// DO NOT EDIT ANYTHING IN THIS SECTION OF THE FILE ++instruct Neg$1_reg_$2_reg(iReg$1NoSp dst, ++ imm$1`0' zero, iReg$1`'ORL2I($1) src1, immI src2) %{ ++ match(Set dst (Sub$1 zero ($2$1 src1 src2))); ++ ++ ins_cost(1.9 * INSN_COST); ++ format %{ "ifelse($1, I, negw, neg) $dst, $src1, $3 $src2" %} ++ ++ ins_encode %{ ++ __ ifelse($1, I, negw, neg)(as_Register($dst$$reg), as_Register($src1$$reg), ++ Assembler::$3, $src2$$constant & ifelse($1,I,0x1f,0x3f)); ++ %} ++ ++ ins_pipe(ialu_reg_shift); ++%} ++')dnl + define(`BASE_INVERTED_INSN', + ` + instruct $2$1_reg_not_reg(iReg$1NoSp dst, +@@ -110,6 +128,11 @@ define(`NOT_INSN', + ins_pipe(ialu_reg); + %}')dnl + dnl ++define(`BOTH_NEG_SHIFT_INSNS', ++`NEG_SHIFT_INSN($1, URShift, LSR) ++NEG_SHIFT_INSN($1, RShift, ASR) ++NEG_SHIFT_INSN($1, LShift, LSL)')dnl ++dnl + define(`BOTH_SHIFT_INSNS', + `BASE_SHIFT_INSN(I, $1, ifelse($2,andr,andw,$2w), $3, $4) + BASE_SHIFT_INSN(L, $1, $2, $3, $4)')dnl +@@ -134,6 +157,8 @@ BOTH_INVERTED_SHIFT_INSNS($1, $2, LShift, LSL)')dnl + dnl + NOT_INSN(L, eon) + NOT_INSN(I, eonw) ++BOTH_NEG_SHIFT_INSNS(I) ++BOTH_NEG_SHIFT_INSNS(L) + BOTH_INVERTED_INSNS(And, bic) + BOTH_INVERTED_INSNS(Or, orn) + BOTH_INVERTED_INSNS(Xor, eon) +diff --git a/hotspot/test/compiler/codegen/ShiftTest.java b/hotspot/test/compiler/codegen/ShiftTest.java +new file mode 100644 +index 000000000..45d192341 +--- /dev/null ++++ b/hotspot/test/compiler/codegen/ShiftTest.java +@@ -0,0 +1,199 @@ ++/* ++ * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 4093292 8280511 ++ * @summary Test for correct code generation by the JIT ++ * @library /testlibrary ++ * @run main compiler.codegen.ShiftTest ++ * @run main/othervm -XX:-TieredCompilation compiler.codegen.ShiftTest ++ */ ++ ++package compiler.codegen; ++import com.oracle.java.testlibrary.Asserts; ++ ++public class ShiftTest { ++ static final int w = 32; ++ ++ private static void doTest(long ct) throws Exception { ++ int S22 = 0xc46cf7c2; ++ int S23 = 0xcfda9162; ++ int S24 = 0xd029aa4c; ++ int S25 = 0x17cf1801; ++ int A = (int)(ct & 0xffffffffL); ++ int B = (int)(ct >>> 32); ++ int x, y; ++ x = B - S25; ++ y = A & (w-1); ++ B = ((x >>> y) | (x << (w-y))) ^ A; ++ x = A - S24; ++ y = B & (w-1); ++ A = ((x >>> y) | (x << (w-y))) ^ B; ++ x = B - S23; ++ y = A & (w-1); ++ B = ((x >>> y) | (x << (w-y))) ^ A; ++ x = A - S22; ++ y = B & (w-1); ++ A = ((x >>> y) | (x << (w-y))) ^ B; ++ String astr = Integer.toHexString(A); ++ String bstr = Integer.toHexString(B); ++ System.err.println("A = " + astr + " B = " + bstr); ++ if ((!astr.equals("dcb38144")) || ++ (!bstr.equals("1916de73"))) { ++ throw new RuntimeException("Unexpected shift results!"); ++ } ++ System.err.println("Test passed"); ++ } ++ ++ private static int[] ispecial = { ++ 0, Integer.MAX_VALUE, -Integer.MAX_VALUE, Integer.MIN_VALUE, -42, 42, -1, 1 ++ }; ++ ++ private static long[] lspecial = { ++ 0, Long.MAX_VALUE, -Long.MAX_VALUE, Long.MIN_VALUE, Integer.MAX_VALUE, -Integer.MAX_VALUE, Integer.MIN_VALUE, -42, 42, -1, 1 ++ }; ++ ++ private static int[] ispecial_LeftShift_expected = { ++ 0, 32, -32, 0, 1344, -1344, 32, -32 ++ }; ++ ++ private static int[] ispecial_UnsignedRightShift_expected = { ++ 0, -33554431, -33554432, -33554432 ,-67108863, 0, -67108863, 0 ++ }; ++ ++ private static int[] ispecial_SignedRightShift_expected = { ++ 0, -16777215, 16777216, 16777216, 1, 0, 1, 0 ++ }; ++ ++ private static int[] ispecial_LeftShiftCorner_expected = { ++ 0, -2147483647, 2147483647, -2147483648, 42, -42, 1, -1 ++ }; ++ ++ private static int[] ispecial_UnsignedRightShiftCorner_expected = { ++ 0, -1073741823, -1073741824, -1073741824, -2147483627, -21, -2147483647, 0 ++ }; ++ ++ private static int[] ispecial_SignedRightShiftCorner_expected = { ++ 0, -536870911, 536870912, 536870912, 11, -10, 1, 0 ++ }; ++ ++ private static long[] lspecial_LeftShift_expected = { ++ 0, 256, -256, 0, -549755813632L, 549755813632L, 549755813888L, 10752, -10752, 256, -256 ++ }; ++ ++ private static long[] lspecial_UnsignedRightShift_expected = { ++ 0, -18014398509481983L, -18014398509481984L, -18014398509481984L, -4194303, -36028797014769664L, -36028797014769664L, -36028797018963967L, 0, -36028797018963967L, 0 ++ }; ++ ++ private static long[] lspecial_SignedRightShift_expected = { ++ 0, -9007199254740991L, 9007199254740992L, 9007199254740992L, -2097151, 2097152, 2097152, 1, 0, 1, 0 ++ }; ++ ++ private static long[] lspecial_LeftShiftCorner_expected = { ++ 0, -9223372036854775807L, 9223372036854775807L, -9223372036854775808L, -2147483647, 2147483647, 2147483648L, 42, -42, 1, -1 ++ }; ++ ++ private static long[] lspecial_UnsignedRightShiftCorner_expected = { ++ 0, -4611686018427387903L, -4611686018427387904L, -4611686018427387904L, -1073741823, -9223372035781033984L, -9223372035781033984L, -9223372036854775787L, -21, -9223372036854775807L, 0 ++ }; ++ ++ private static long[] lspecial_SignedRightShiftCorner_expected = { ++ 0, -2305843009213693951L, 2305843009213693952L, 2305843009213693952L, -536870911, 536870912, 536870912, 11, -10, 1, 0 ++ }; ++ ++ private static int negLeftShiftInt(int input) { ++ return -(input << 5); ++ } ++ ++ private static int negUnsignedRightShiftInt(int input) { ++ return -(input >>> 6); ++ } ++ ++ private static int negSignedRightShiftInt(int input) { ++ return -(input >> 7); ++ } ++ ++ private static int negLeftShiftICorner(int input) { ++ return -(input << 32); ++ } ++ ++ private static int negUnsignedRightShiftICorner(int input) { ++ return -(input >>> 33); ++ } ++ ++ private static int negSignedRightShiftICorner(int input) { ++ return -(input >> 34); ++ } ++ ++ private static long negLeftShiftLong(long input) { ++ return -(input << 8); ++ } ++ ++ private static long negUnsignedRightShiftLong(long input) { ++ return -(input >>> 9); ++ } ++ ++ private static long negSignedRightShiftLong(long input) { ++ return -(input >> 10); ++ } ++ ++ private static long negLeftShiftLCorner(long input) { ++ return -(input << 64); ++ } ++ ++ private static long negUnsignedRightShiftLCorner(long input) { ++ return -(input >>> 65); ++ } ++ ++ private static long negSignedRightShiftLCorner(long input) { ++ return -(input >> 66); ++ } ++ ++ private static void testNegShift() { ++ for (int i = 0; i < 20_000; i++) { ++ for (int j = 0; j < ispecial.length; j++) { ++ Asserts.assertEquals(negLeftShiftInt(ispecial[j]), ispecial_LeftShift_expected[j]); ++ Asserts.assertEquals(negUnsignedRightShiftInt(ispecial[j]), ispecial_UnsignedRightShift_expected[j]); ++ Asserts.assertEquals(negSignedRightShiftInt(ispecial[j]), ispecial_SignedRightShift_expected[j]); ++ Asserts.assertEquals(negLeftShiftICorner(ispecial[j]), ispecial_LeftShiftCorner_expected[j]); ++ Asserts.assertEquals(negUnsignedRightShiftICorner(ispecial[j]), ispecial_UnsignedRightShiftCorner_expected[j]); ++ Asserts.assertEquals(negSignedRightShiftICorner(ispecial[j]), ispecial_SignedRightShiftCorner_expected[j]); ++ } ++ for (int j = 0; j < lspecial.length; j++) { ++ Asserts.assertEquals(negLeftShiftLong(lspecial[j]), lspecial_LeftShift_expected[j]); ++ Asserts.assertEquals(negUnsignedRightShiftLong(lspecial[j]), lspecial_UnsignedRightShift_expected[j]); ++ Asserts.assertEquals(negSignedRightShiftLong(lspecial[j]), lspecial_SignedRightShift_expected[j]); ++ Asserts.assertEquals(negLeftShiftLCorner(lspecial[j]), lspecial_LeftShiftCorner_expected[j]); ++ Asserts.assertEquals(negUnsignedRightShiftLCorner(lspecial[j]), lspecial_UnsignedRightShiftCorner_expected[j]); ++ Asserts.assertEquals(negSignedRightShiftLCorner(lspecial[j]), lspecial_SignedRightShiftCorner_expected[j]); ++ } ++ } ++ } ++ ++ public static void main(String[] args) throws Exception { ++ doTest(0x496def29b74be041L); ++ testNegShift(); ++ } ++} +-- +2.22.0 + diff --git a/0015-6605915-jinfo-flag-flag-name-functionality-doesn-t-w.patch b/0015-6605915-jinfo-flag-flag-name-functionality-doesn-t-w.patch new file mode 100644 index 0000000000000000000000000000000000000000..e89706f95dd8913fdc0402f75121e82e662046f8 --- /dev/null +++ b/0015-6605915-jinfo-flag-flag-name-functionality-doesn-t-w.patch @@ -0,0 +1,34 @@ +Date: Tue, 6 Jun 2023 02:06:23 +0000 +Subject: [PATCH 15/59] 6605915: jinfo -flag functionality doesn't work with core files + +Bug url: https://bugs.openjdk.org/browse/JDK-6605915 +--- + jdk/src/share/classes/sun/tools/jinfo/JInfo.java | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/jdk/src/share/classes/sun/tools/jinfo/JInfo.java b/jdk/src/share/classes/sun/tools/jinfo/JInfo.java +index 7c817ba86..d5adc3537 100644 +--- a/jdk/src/share/classes/sun/tools/jinfo/JInfo.java ++++ b/jdk/src/share/classes/sun/tools/jinfo/JInfo.java +@@ -196,15 +196,17 @@ public class JInfo { + if (usageSA) { + System.err.println(" jinfo [option] "); + System.err.println(" (to connect to running process)"); +- System.err.println(" jinfo [option] "); ++ System.err.println(" jinfo [option] "); + System.err.println(" (to connect to a core file)"); + System.err.println(" jinfo [option] [server_id@]"); + System.err.println(" (to connect to remote debug server)"); + System.err.println(""); + System.err.println("where

++ * ++ * @implNote Old algorithm names used before JDK 9 are supported in the ++ * {@link #KerberosKey(KerberosPrincipal, char[], String)} constructor in this ++ * implementation for compatibility reasons, which are "DES" (and null) for ++ * "des-cbc-md5", "DESede" for "des3-cbc-sha1-kd", "ArcFourHmac" for "rc4-hmac", ++ * "AES128" for "aes128-cts-hmac-sha1-96", and "AES256" for ++ * "aes256-cts-hmac-sha1-96". + * + * @author Mayank Upadhyay + * @since 1.4 +@@ -73,7 +86,7 @@ public class KerberosKey implements SecretKey, Destroyable { + * + * @serial + */ +- private int versionNum; ++ private final int versionNum; + + /** + * {@code KeyImpl} is serialized by writing out the ASN1 Encoded bytes +@@ -113,13 +126,16 @@ public class KerberosKey implements SecretKey, Destroyable { + } + + /** +- * Constructs a KerberosKey from a principal's password. ++ * Constructs a KerberosKey from a principal's password using the specified ++ * algorithm name. The algorithm name (case insensitive) should be provided ++ * as the encryption type string defined on the IANA ++ * Kerberos Encryption Type Numbers ++ * page. The version number of the key generated will be 0. + * + * @param principal the principal that this password belongs to + * @param password the password that should be used to compute the key + * @param algorithm the name for the algorithm that this key will be +- * used for. This parameter may be null in which case the default +- * algorithm "DES" will be assumed. ++ * used for + * @throws IllegalArgumentException if the name of the + * algorithm passed is unsupported. + */ +@@ -128,6 +144,7 @@ public class KerberosKey implements SecretKey, Destroyable { + String algorithm) { + + this.principal = principal; ++ this.versionNum = 0; + // Pass principal in for salt + key = new KeyImpl(principal, password, algorithm); + } +@@ -170,13 +187,18 @@ public class KerberosKey implements SecretKey, Destroyable { + */ + + /** +- * Returns the standard algorithm name for this key. For +- * example, "DES" would indicate that this key is a DES key. +- * See Appendix A in the +- * Java Cryptography Architecture API Specification & Reference +- * +- * for information about standard algorithm names. ++ * Returns the standard algorithm name for this key. The algorithm names ++ * are the encryption type string defined on the IANA ++ * Kerberos Encryption Type Numbers ++ * page. ++ *

++ * This method can return the following value not defined on the IANA page: ++ *

    ++ *
  1. none: for etype equal to 0
  2. ++ *
  3. unknown: for etype greater than 0 but unsupported by ++ * the implementation
  4. ++ *
  5. private: for etype smaller than 0
  6. ++ *
+ * + * @return the name of the algorithm associated with this key. + */ +diff --git a/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java b/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java +index f4ee94721..9d36d1e9e 100644 +--- a/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java ++++ b/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java +@@ -36,7 +36,6 @@ import sun.security.krb5.PrincipalName; + import sun.security.krb5.EncryptionKey; + import sun.security.krb5.EncryptedData; + import sun.security.krb5.KrbException; +-import sun.security.krb5.KrbCryptoException; + import sun.security.util.DerValue; + + /** +@@ -86,8 +85,12 @@ class KeyImpl implements SecretKey, Destroyable, Serializable { + + try { + PrincipalName princ = new PrincipalName(principal.getName()); +- EncryptionKey key = +- new EncryptionKey(password, princ.getSalt(), algorithm); ++ EncryptionKey key; ++ if ("none".equalsIgnoreCase(algorithm)) { ++ key = EncryptionKey.NULL_KEY; ++ } else { ++ key = new EncryptionKey(password, princ.getSalt(), algorithm); ++ } + this.keyBytes = key.getBytes(); + this.keyType = key.getEType(); + } catch (KrbException e) { +@@ -118,27 +121,28 @@ class KeyImpl implements SecretKey, Destroyable, Serializable { + + switch (eType) { + case EncryptedData.ETYPE_DES_CBC_CRC: ++ return "des-cbc-crc"; ++ + case EncryptedData.ETYPE_DES_CBC_MD5: +- return "DES"; ++ return "des-cbc-md5"; + + case EncryptedData.ETYPE_DES3_CBC_HMAC_SHA1_KD: +- return "DESede"; ++ return "des3-cbc-sha1-kd"; + + case EncryptedData.ETYPE_ARCFOUR_HMAC: +- return "ArcFourHmac"; ++ return "rc4-hmac"; + + case EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96: +- return "AES128"; ++ return "aes128-cts-hmac-sha1-96"; + + case EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96: +- return "AES256"; ++ return "aes256-cts-hmac-sha1-96"; + + case EncryptedData.ETYPE_NULL: +- return "NULL"; ++ return "none"; + + default: +- throw new IllegalArgumentException( +- "Unsupported encryption type: " + eType); ++ return eType > 0 ? "unknown" : "private"; + } + } + +diff --git a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java +index 4823b2525..d484d7c55 100644 +--- a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java ++++ b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java +@@ -271,15 +271,22 @@ public class EncryptionKey + String salt, + String algorithm) throws KrbCryptoException { + +- if (algorithm == null || algorithm.equalsIgnoreCase("DES")) { ++ if (algorithm == null || algorithm.equalsIgnoreCase("DES") ++ || algorithm.equalsIgnoreCase("des-cbc-md5")) { + keyType = EncryptedData.ETYPE_DES_CBC_MD5; +- } else if (algorithm.equalsIgnoreCase("DESede")) { ++ } else if (algorithm.equalsIgnoreCase("des-cbc-crc")) { ++ keyType = EncryptedData.ETYPE_DES_CBC_CRC; ++ } else if (algorithm.equalsIgnoreCase("DESede") ++ || algorithm.equalsIgnoreCase("des3-cbc-sha1-kd")) { + keyType = EncryptedData.ETYPE_DES3_CBC_HMAC_SHA1_KD; +- } else if (algorithm.equalsIgnoreCase("AES128")) { ++ } else if (algorithm.equalsIgnoreCase("AES128") ++ || algorithm.equalsIgnoreCase("aes128-cts-hmac-sha1-96")) { + keyType = EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96; +- } else if (algorithm.equalsIgnoreCase("ArcFourHmac")) { ++ } else if (algorithm.equalsIgnoreCase("ArcFourHmac") ++ || algorithm.equalsIgnoreCase("rc4-hmac")) { + keyType = EncryptedData.ETYPE_ARCFOUR_HMAC; +- } else if (algorithm.equalsIgnoreCase("AES256")) { ++ } else if (algorithm.equalsIgnoreCase("AES256") ++ || algorithm.equalsIgnoreCase("aes256-cts-hmac-sha1-96")) { + keyType = EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96; + // validate if AES256 is enabled + if (!EType.isSupported(keyType)) { +diff --git a/jdk/test/javax/security/auth/kerberos/StandardNames.java b/jdk/test/javax/security/auth/kerberos/StandardNames.java +new file mode 100644 +index 000000000..40590f6d0 +--- /dev/null ++++ b/jdk/test/javax/security/auth/kerberos/StandardNames.java +@@ -0,0 +1,108 @@ ++/* ++ * Copyright (c) 2014, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 8035986 ++ * @summary KerberosKey algorithm names are not specified ++ */ ++ ++import sun.security.krb5.EncryptedData; ++ ++import javax.crypto.Cipher; ++import javax.security.auth.kerberos.KerberosKey; ++import javax.security.auth.kerberos.KerberosPrincipal; ++import java.util.Locale; ++ ++public class StandardNames { ++ static KerberosPrincipal kp = new KerberosPrincipal("user@REALM"); ++ static char[] pass = "secret".toCharArray(); ++ static byte[] keyBytes = new byte[1]; ++ ++ public static void main(String[] args) throws Exception { ++ for (EncType e: EncType.values()) { ++ if (e == EncType.e18) { ++ if (Cipher.getMaxAllowedKeyLength("AES") < 256) { ++ System.out.println("Skipping aes256-cts-hmac-sha1-96"); ++ continue; ++ } ++ } ++ checkByName(e.name, e); ++ checkByName(e.name.toUpperCase(Locale.US), e); ++ for (String n: e.oldnames) { ++ checkByName(n, e); ++ if (n != null) { ++ checkByName(n.toLowerCase(Locale.US), e); ++ } ++ } ++ checkByEType(e.etype, e.name); ++ } ++ checkByEType(100, "unknown"); ++ checkByEType(-1, "private"); ++ ++ try { ++ System.out.println("unsupported"); ++ new KerberosKey(kp, pass, "unsupported"); ++ throw new Exception("unsupported"); ++ } catch (IllegalArgumentException iae) { ++ // Expected ++ } ++ } ++ ++ private static void checkByName(String n, EncType e) throws Exception { ++ System.out.println("CheckByName " + n); ++ KerberosKey k = new KerberosKey(kp, pass, n); ++ if (!k.getAlgorithm().equals(e.name)) throw new Exception(n); ++ if (k.getKeyType() != e.etype) throw new Exception(n); ++ if (k.getVersionNumber() != 0) throw new Exception(n); ++ } ++ ++ private static void checkByEType(int i, String n) throws Exception { ++ System.out.println("CheckByInt " + i); ++ KerberosKey k = new KerberosKey(kp, keyBytes, i, 13); ++ if (!k.getAlgorithm().equals(n)) throw new Exception("" + i); ++ if (k.getKeyType() != i) throw new Exception("" + i); ++ if (k.getVersionNumber() != 13) throw new Exception("" + i); ++ } ++} ++ ++enum EncType { ++ e0("none", EncryptedData.ETYPE_NULL), ++ e1("des-cbc-crc", EncryptedData.ETYPE_DES_CBC_CRC), ++ e3("des-cbc-md5", EncryptedData.ETYPE_DES_CBC_MD5, "DES", null), ++ e16("des3-cbc-sha1-kd", EncryptedData.ETYPE_DES3_CBC_HMAC_SHA1_KD, "DESede"), ++ e17("aes128-cts-hmac-sha1-96", EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96, "AES128"), ++ e18("aes256-cts-hmac-sha1-96", EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96, "AES256"), ++ e23("rc4-hmac", EncryptedData.ETYPE_ARCFOUR_HMAC, "ArcFourHmac"), ++ ; ++ ++ final String name; ++ final int etype; ++ final String[] oldnames; ++ ++ EncType(String name, int etype, String... oldnames) { ++ this.name = name; ++ this.etype = etype; ++ this.oldnames = oldnames; ++ } ++} +-- +2.12.3 + diff --git a/8057743-process-Synchronize-exiting-of-threads-and-p.patch b/8057743-process-Synchronize-exiting-of-threads-and-p.patch new file mode 100644 index 0000000000000000000000000000000000000000..25c783e438eaeeb562ae3d7c591cde28fee7c8ff --- /dev/null +++ b/8057743-process-Synchronize-exiting-of-threads-and-p.patch @@ -0,0 +1,303 @@ +From 120367d947c297709134167d3e4d8e1b91fe97f3 Mon Sep 17 00:00:00 2001 +From: z30010524 +Date: Tue, 14 Mar 2023 19:17:50 +0800 +Subject: [PATCH 10/15] 8057743: (process) Synchronize exiting of threads and + process [win] + +DTS/AR: DTS2023031516597 +Summary: :8057744: (process) Synchronize exiting of threads and process [win] +LLT: NA +Patch Type: backport +Bug url: https://bugs.openjdk.org/browse/JDK-8057744 +--- + hotspot/src/os/aix/vm/os_aix.inline.hpp | 5 ++ + hotspot/src/os/bsd/vm/os_bsd.inline.hpp | 4 + + hotspot/src/os/linux/vm/os_linux.inline.hpp | 4 + + .../src/os/solaris/vm/os_solaris.inline.hpp | 5 ++ + hotspot/src/os/windows/vm/os_windows.cpp | 87 +++++++++++++++++-- + hotspot/src/os/windows/vm/os_windows.hpp | 10 +++ + .../src/os/windows/vm/os_windows.inline.hpp | 4 + + hotspot/src/share/vm/runtime/java.cpp | 2 +- + hotspot/src/share/vm/runtime/os.hpp | 4 +- + 9 files changed, 115 insertions(+), 10 deletions(-) + +diff --git a/hotspot/src/os/aix/vm/os_aix.inline.hpp b/hotspot/src/os/aix/vm/os_aix.inline.hpp +index 421ea342e..afa034411 100644 +--- a/hotspot/src/os/aix/vm/os_aix.inline.hpp ++++ b/hotspot/src/os/aix/vm/os_aix.inline.hpp +@@ -245,4 +245,9 @@ inline int os::set_sock_opt(int fd, int level, int optname, + const char* optval, socklen_t optlen) { + return ::setsockopt(fd, level, optname, optval, optlen); + } ++ ++inline void os::exit(int num) { ++ ::exit(num); ++} ++ + #endif // OS_AIX_VM_OS_AIX_INLINE_HPP +diff --git a/hotspot/src/os/bsd/vm/os_bsd.inline.hpp b/hotspot/src/os/bsd/vm/os_bsd.inline.hpp +index c35abf486..1eff6b724 100644 +--- a/hotspot/src/os/bsd/vm/os_bsd.inline.hpp ++++ b/hotspot/src/os/bsd/vm/os_bsd.inline.hpp +@@ -247,4 +247,8 @@ inline int os::set_sock_opt(int fd, int level, int optname, + return ::setsockopt(fd, level, optname, optval, optlen); + } + ++inline void os::exit(int num) { ++ ::exit(num); ++} ++ + #endif // OS_BSD_VM_OS_BSD_INLINE_HPP +diff --git a/hotspot/src/os/linux/vm/os_linux.inline.hpp b/hotspot/src/os/linux/vm/os_linux.inline.hpp +index a23bd5631..eb8c8ca1b 100644 +--- a/hotspot/src/os/linux/vm/os_linux.inline.hpp ++++ b/hotspot/src/os/linux/vm/os_linux.inline.hpp +@@ -240,4 +240,8 @@ inline int os::set_sock_opt(int fd, int level, int optname, + return ::setsockopt(fd, level, optname, optval, optlen); + } + ++inline void os::exit(int num) { ++ ::exit(num); ++} ++ + #endif // OS_LINUX_VM_OS_LINUX_INLINE_HPP +diff --git a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp +index 8e095ab69..aad6debf9 100644 +--- a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp ++++ b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp +@@ -223,4 +223,9 @@ inline int os::set_sock_opt(int fd, int level, int optname, + const char *optval, socklen_t optlen) { + return ::setsockopt(fd, level, optname, optval, optlen); + } ++ ++inline void os::exit(int num) { ++ ::exit(num); ++} ++ + #endif // OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP +diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp +index 11bd14f6f..f0bc733c2 100644 +--- a/hotspot/src/os/windows/vm/os_windows.cpp ++++ b/hotspot/src/os/windows/vm/os_windows.cpp +@@ -22,8 +22,8 @@ + * + */ + +-// Must be at least Windows 2000 or XP to use IsDebuggerPresent +-#define _WIN32_WINNT 0x500 ++// Must be at least Windows Vista or Server 2008 to use InitOnceExecuteOnce ++#define _WIN32_WINNT 0x0600 + + // no precompiled headers + #include "classfile/classLoader.hpp" +@@ -432,6 +432,11 @@ static unsigned __stdcall java_start(Thread* thread) { + } + } + ++ // Diagnostic code to investigate JDK-6573254 ++ int res = 90115; // non-java thread ++ if (thread->is_Java_thread()) { ++ res = 60115; // java thread ++ } + + // Install a win32 structured exception handler around every thread created + // by VM, so VM can genrate error dump when an exception occurred in non- +@@ -450,7 +455,9 @@ static unsigned __stdcall java_start(Thread* thread) { + Atomic::dec_ptr((intptr_t*)&os::win32::_os_thread_count); + } + +- return 0; ++ // Thread must not return from exit_process_or_thread(), but if it does, ++ // let it proceed to exit normally ++ return (unsigned)os::win32::exit_process_or_thread(os::win32::EPT_THREAD, res); + } + + static OSThread* create_os_thread(Thread* thread, HANDLE thread_handle, int thread_id) { +@@ -1082,15 +1089,13 @@ void os::abort(bool dump_core, void* siginfo, void* context) { + win32::exit_process_or_thread(win32::EPT_PROCESS, 1); + } + +- +-void os::abort(bool dump_core) +-{ ++void os::abort(bool dump_core) { + abort(dump_core, NULL, NULL); + } + + // Die immediately, no exit hook, no abort hook, no cleanup. + void os::die() { +- _exit(-1); ++ win32::exit_process_or_thread(win32::EPT_PROCESS_DIE, -1); + } + + // Directory routines copied from src/win32/native/java/io/dirent_md.c +@@ -3857,6 +3862,11 @@ bool os::win32::_is_nt = false; + bool os::win32::_is_windows_2003 = false; + bool os::win32::_is_windows_server = false; + ++// 6573254 ++// Currently, the bug is observed across all the supported Windows releases, ++// including the latest one (as of this writing - Windows Server 2012 R2) ++bool os::win32::_has_exit_bug = true; ++ + void os::win32::initialize_system_info() { + SYSTEM_INFO si; + GetSystemInfo(&si); +@@ -3951,6 +3961,69 @@ HINSTANCE os::win32::load_Windows_dll(const char* name, char *ebuf, int ebuflen) + return NULL; + } + ++#define MIN_EXIT_MUTEXES 1 ++#define MAX_EXIT_MUTEXES 16 ++ ++struct ExitMutexes { ++ DWORD count; ++ HANDLE handles[MAX_EXIT_MUTEXES]; ++}; ++ ++static BOOL CALLBACK init_muts_call(PINIT_ONCE, PVOID ppmuts, PVOID*) { ++ static ExitMutexes muts; ++ ++ muts.count = os::processor_count(); ++ if (muts.count < MIN_EXIT_MUTEXES) { ++ muts.count = MIN_EXIT_MUTEXES; ++ } else if (muts.count > MAX_EXIT_MUTEXES) { ++ muts.count = MAX_EXIT_MUTEXES; ++ } ++ ++ for (DWORD i = 0; i < muts.count; ++i) { ++ muts.handles[i] = CreateMutex(NULL, FALSE, NULL); ++ if (muts.handles[i] == NULL) { ++ return FALSE; ++ } ++ } ++ *((ExitMutexes**)ppmuts) = &muts; ++ return TRUE; ++} ++ ++int os::win32::exit_process_or_thread(Ept what, int exit_code) { ++ if (os::win32::has_exit_bug()) { ++ static INIT_ONCE init_once_muts = INIT_ONCE_STATIC_INIT; ++ static ExitMutexes* pmuts; ++ ++ if (!InitOnceExecuteOnce(&init_once_muts, init_muts_call, &pmuts, NULL)) { ++ warning("ExitMutex initialization failed in %s: %d\n", __FILE__, __LINE__); ++ } else if (WaitForMultipleObjects(pmuts->count, pmuts->handles, ++ (what != EPT_THREAD), // exiting process waits for all mutexes ++ INFINITE) == WAIT_FAILED) { ++ warning("ExitMutex acquisition failed in %s: %d\n", __FILE__, __LINE__); ++ } ++ } ++ ++ switch (what) { ++ case EPT_THREAD: ++ _endthreadex((unsigned)exit_code); ++ break; ++ ++ case EPT_PROCESS: ++ ::exit(exit_code); ++ break; ++ ++ case EPT_PROCESS_DIE: ++ _exit(exit_code); ++ break; ++ } ++ ++ // should not reach here ++ return exit_code; ++} ++ ++#undef MIN_EXIT_MUTEXES ++#undef MAX_EXIT_MUTEXES ++ + void os::win32::setmode_streams() { + _setmode(_fileno(stdin), _O_BINARY); + _setmode(_fileno(stdout), _O_BINARY); +diff --git a/hotspot/src/os/windows/vm/os_windows.hpp b/hotspot/src/os/windows/vm/os_windows.hpp +index 20e2ca2f5..3fdc9bcd6 100644 +--- a/hotspot/src/os/windows/vm/os_windows.hpp ++++ b/hotspot/src/os/windows/vm/os_windows.hpp +@@ -31,6 +31,7 @@ static bool zero_page_read_protected() { return true; } + + class win32 { + friend class os; ++ friend unsigned __stdcall java_start(class Thread*); + + protected: + static int _vm_page_size; +@@ -42,6 +43,7 @@ class win32 { + static bool _is_nt; + static bool _is_windows_2003; + static bool _is_windows_server; ++ static bool _has_exit_bug; + + static void print_windows_version(outputStream* st); + +@@ -63,6 +65,11 @@ class win32 { + // load dll from Windows system directory or Windows directory + static HINSTANCE load_Windows_dll(const char* name, char *ebuf, int ebuflen); + ++ private: ++ enum Ept { EPT_THREAD, EPT_PROCESS, EPT_PROCESS_DIE }; ++ // Wrapper around _endthreadex(), exit() and _exit() ++ static int exit_process_or_thread(Ept what, int exit_code); ++ + public: + // Generic interface: + +@@ -79,6 +86,9 @@ class win32 { + // Tells whether the platform is Windows 2003 + static bool is_windows_2003() { return _is_windows_2003; } + ++ // Tells whether there can be the race bug during process exit on this platform ++ static bool has_exit_bug() { return _has_exit_bug; } ++ + // Returns the byte size of a virtual memory page + static int vm_page_size() { return _vm_page_size; } + +diff --git a/hotspot/src/os/windows/vm/os_windows.inline.hpp b/hotspot/src/os/windows/vm/os_windows.inline.hpp +index 5dac11c90..83c51935d 100644 +--- a/hotspot/src/os/windows/vm/os_windows.inline.hpp ++++ b/hotspot/src/os/windows/vm/os_windows.inline.hpp +@@ -96,6 +96,10 @@ inline int os::close(int fd) { + return ::close(fd); + } + ++inline void os::exit(int num) { ++ win32::exit_process_or_thread(win32::EPT_PROCESS, num); ++} ++ + #define CALL_TEST_FUNC_WITH_WRAPPER_IF_NEEDED(f) \ + os::win32::call_test_func_with_wrapper(f) + +diff --git a/hotspot/src/share/vm/runtime/java.cpp b/hotspot/src/share/vm/runtime/java.cpp +index 5b82a7a36..c72a5a766 100644 +--- a/hotspot/src/share/vm/runtime/java.cpp ++++ b/hotspot/src/share/vm/runtime/java.cpp +@@ -625,7 +625,7 @@ void notify_vm_shutdown() { + void vm_direct_exit(int code) { + notify_vm_shutdown(); + os::wait_for_keypress_at_exit(); +- ::exit(code); ++ os::exit(code); + } + + void vm_perform_shutdown_actions() { +diff --git a/hotspot/src/share/vm/runtime/os.hpp b/hotspot/src/share/vm/runtime/os.hpp +index e696321ab..6ca220021 100644 +--- a/hotspot/src/share/vm/runtime/os.hpp ++++ b/hotspot/src/share/vm/runtime/os.hpp +@@ -545,8 +545,8 @@ class os: AllStatic { + // run cmd in a separate process and return its exit code; or -1 on failures + static int fork_and_exec(char *cmd, bool use_vfork_if_available = false); + +- // os::exit() is merged with vm_exit() +- // static void exit(int num); ++ // Call ::exit() on all platforms but Windows ++ static void exit(int num); + + // Terminate the VM, but don't exit the process + static void shutdown(); +-- +2.19.0 + diff --git a/8057967-CallSite-dependency-tracking-scales-devastat.patch b/8057967-CallSite-dependency-tracking-scales-devastat.patch new file mode 100644 index 0000000000000000000000000000000000000000..e5c7cd2e5c26e0527027e3dd830e572b86dbc022 --- /dev/null +++ b/8057967-CallSite-dependency-tracking-scales-devastat.patch @@ -0,0 +1,753 @@ +From 1059c5d5f9d1e50607c726b619f39ac68954bda7 Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Mon, 15 Jan 2024 11:40:07 +0800 +Subject: [PATCH] [Backport]8057967: CallSite dependency tracking scales devastatingly + poorly +--- + hotspot/src/share/vm/ci/ciCallSite.cpp | 19 +++ + hotspot/src/share/vm/ci/ciCallSite.hpp | 1 + + hotspot/src/share/vm/classfile/javaClasses.cpp | 48 +++++- + hotspot/src/share/vm/classfile/javaClasses.hpp | 9 +- + hotspot/src/share/vm/classfile/vmSymbols.hpp | 4 +- + hotspot/src/share/vm/code/dependencies.cpp | 27 ++-- + hotspot/src/share/vm/code/dependencies.hpp | 7 +- + hotspot/src/share/vm/memory/universe.cpp | 8 +- + hotspot/src/share/vm/prims/methodHandles.cpp | 50 +++++- + hotspot/src/share/vm/prims/methodHandles.hpp | 3 + + .../compiler/jsr292/CallSiteDepContextTest.java | 179 +++++++++++++++++++++ + .../share/classes/java/lang/invoke/CallSite.java | 55 ++++++- + .../java/lang/invoke/MethodHandleNatives.java | 4 + + 13 files changed, 385 insertions(+), 29 deletions(-) + create mode 100644 hotspot/test/compiler/jsr292/CallSiteDepContextTest.java + +diff --git a/hotspot/src/share/vm/ci/ciCallSite.cpp b/hotspot/src/share/vm/ci/ciCallSite.cpp +index 794042a79..f58346aea 100644 +--- a/hotspot/src/share/vm/ci/ciCallSite.cpp ++++ b/hotspot/src/share/vm/ci/ciCallSite.cpp +@@ -49,6 +49,25 @@ ciMethodHandle* ciCallSite::get_target() const { + } + + // ------------------------------------------------------------------ ++// ciCallSite::get_context ++// ++// Return the target MethodHandle of this CallSite. ++ciKlass* ciCallSite::get_context() { ++ assert(!is_constant_call_site(), ""); ++ ++ VM_ENTRY_MARK; ++ oop call_site_oop = get_oop(); ++ InstanceKlass* ctxk = MethodHandles::get_call_site_context(call_site_oop); ++ if (ctxk == NULL) { ++ // The call site doesn't have a context associated. Set it to the default context. ++ oop def_context_oop = java_lang_invoke_CallSite::default_context(); ++ java_lang_invoke_CallSite::set_context_cas(call_site_oop, def_context_oop, /*expected=*/NULL); ++ ctxk = MethodHandles::get_call_site_context(call_site_oop); ++ } ++ return (CURRENT_ENV->get_metadata(ctxk))->as_klass(); ++} ++ ++// ------------------------------------------------------------------ + // ciCallSite::print + // + // Print debugging information about the CallSite. +diff --git a/hotspot/src/share/vm/ci/ciCallSite.hpp b/hotspot/src/share/vm/ci/ciCallSite.hpp +index 063f1e3a5..040e894d0 100644 +--- a/hotspot/src/share/vm/ci/ciCallSite.hpp ++++ b/hotspot/src/share/vm/ci/ciCallSite.hpp +@@ -43,6 +43,7 @@ public: + + // Return the target MethodHandle of this CallSite. + ciMethodHandle* get_target() const; ++ ciKlass* get_context(); + + void print(); + }; +diff --git a/hotspot/src/share/vm/classfile/javaClasses.cpp b/hotspot/src/share/vm/classfile/javaClasses.cpp +index 9db88611b..fc4165b04 100644 +--- a/hotspot/src/share/vm/classfile/javaClasses.cpp ++++ b/hotspot/src/share/vm/classfile/javaClasses.cpp +@@ -100,21 +100,22 @@ InjectedField* JavaClasses::get_injected(Symbol* class_name, int* field_count) { + static bool find_field(InstanceKlass* ik, + Symbol* name_symbol, Symbol* signature_symbol, + fieldDescriptor* fd, +- bool allow_super = false) { +- if (allow_super) +- return ik->find_field(name_symbol, signature_symbol, fd) != NULL; +- else ++ bool is_static = false, bool allow_super = false) { ++ if (allow_super || is_static) { ++ return ik->find_field(name_symbol, signature_symbol, is_static, fd) != NULL; ++ } else { + return ik->find_local_field(name_symbol, signature_symbol, fd); ++ } + } + + // Helpful routine for computing field offsets at run time rather than hardcoding them + static void + compute_offset(int &dest_offset, + Klass* klass_oop, Symbol* name_symbol, Symbol* signature_symbol, +- bool allow_super = false) { ++ bool is_static = false, bool allow_super = false) { + fieldDescriptor fd; + InstanceKlass* ik = InstanceKlass::cast(klass_oop); +- if (!find_field(ik, name_symbol, signature_symbol, &fd, allow_super)) { ++ if (!find_field(ik, name_symbol, signature_symbol, &fd, is_static, allow_super)) { + ResourceMark rm; + tty->print_cr("Invalid layout of %s at %s", ik->external_name(), name_symbol->as_C_string()); + #ifndef PRODUCT +@@ -3002,15 +3003,50 @@ int java_lang_invoke_MethodType::rtype_slot_count(oop mt) { + // Support for java_lang_invoke_CallSite + + int java_lang_invoke_CallSite::_target_offset; ++int java_lang_invoke_CallSite::_context_offset; ++int java_lang_invoke_CallSite::_default_context_offset; + + void java_lang_invoke_CallSite::compute_offsets() { + if (!EnableInvokeDynamic) return; + Klass* k = SystemDictionary::CallSite_klass(); + if (k != NULL) { + compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature()); ++ compute_offset(_context_offset, k, vmSymbols::context_name(), vmSymbols::sun_misc_Cleaner_signature()); ++ compute_offset(_default_context_offset, k, ++ vmSymbols::DEFAULT_CONTEXT_name(), vmSymbols::sun_misc_Cleaner_signature(), ++ /*is_static=*/true, /*allow_super=*/false); + } + } + ++oop java_lang_invoke_CallSite::context_volatile(oop call_site) { ++ assert(java_lang_invoke_CallSite::is_instance(call_site), ""); ++ ++ oop dep_oop = call_site->obj_field_volatile(_context_offset); ++ return dep_oop; ++} ++ ++void java_lang_invoke_CallSite::set_context_volatile(oop call_site, oop context) { ++ assert(java_lang_invoke_CallSite::is_instance(call_site), ""); ++ call_site->obj_field_put_volatile(_context_offset, context); ++} ++ ++bool java_lang_invoke_CallSite::set_context_cas(oop call_site, oop context, oop expected) { ++ assert(java_lang_invoke_CallSite::is_instance(call_site), ""); ++ HeapWord* context_addr = call_site->obj_field_addr(_context_offset); ++ oop res = oopDesc::atomic_compare_exchange_oop(context, context_addr, expected, true); ++ bool success = (res == expected); ++ if (success) { ++ update_barrier_set((void*)context_addr, context); ++ } ++ return success; ++} ++ ++oop java_lang_invoke_CallSite::default_context() { ++ InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::CallSite_klass()); ++ oop def_context_oop = ik->java_mirror()->obj_field(_default_context_offset); ++ assert(!oopDesc::is_null(def_context_oop), ""); ++ return def_context_oop; ++} + + // Support for java_security_AccessControlContext + +diff --git a/hotspot/src/share/vm/classfile/javaClasses.hpp b/hotspot/src/share/vm/classfile/javaClasses.hpp +index d6e288fb8..35934319d 100644 +--- a/hotspot/src/share/vm/classfile/javaClasses.hpp ++++ b/hotspot/src/share/vm/classfile/javaClasses.hpp +@@ -1212,6 +1212,9 @@ class java_lang_invoke_CallSite: AllStatic { + + private: + static int _target_offset; ++ static int _context_offset; ++ static int _default_context_offset; ++ + + static void compute_offsets(); + +@@ -1222,6 +1225,11 @@ public: + + static volatile oop target_volatile(oop site) { return oop((oopDesc *)(site->obj_field_volatile(_target_offset))); } + static void set_target_volatile(oop site, oop target) { site->obj_field_put_volatile(_target_offset, target); } ++ static oop context_volatile(oop site); ++ static void set_context_volatile(oop site, oop context); ++ static bool set_context_cas (oop site, oop context, oop expected); ++ ++ static oop default_context(); + + // Testers + static bool is_subclass(Klass* klass) { +@@ -1235,7 +1243,6 @@ public: + static int target_offset_in_bytes() { return _target_offset; } + }; + +- + // Interface to java.security.AccessControlContext objects + + class java_security_AccessControlContext: AllStatic { +diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp +index 494fd9bdf..f92b709ed 100644 +--- a/hotspot/src/share/vm/classfile/vmSymbols.hpp ++++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp +@@ -301,6 +301,7 @@ + template(setTargetNormal_name, "setTargetNormal") \ + template(setTargetVolatile_name, "setTargetVolatile") \ + template(setTarget_signature, "(Ljava/lang/invoke/MethodHandle;)V") \ ++ template(DEFAULT_CONTEXT_name, "DEFAULT_CONTEXT") \ + NOT_LP64( do_alias(intptr_signature, int_signature) ) \ + LP64_ONLY( do_alias(intptr_signature, long_signature) ) \ + \ +@@ -517,6 +518,7 @@ + template(string_signature, "Ljava/lang/String;") \ + template(reference_signature, "Ljava/lang/ref/Reference;") \ + template(referencequeue_signature, "Ljava/lang/ref/ReferenceQueue;") \ ++ template(sun_misc_Cleaner_signature, "Lsun/misc/Cleaner;") \ + template(executable_signature, "Ljava/lang/reflect/Executable;") \ + template(concurrenthashmap_signature, "Ljava/util/concurrent/ConcurrentHashMap;") \ + template(String_StringBuilder_signature, "(Ljava/lang/String;)Ljava/lang/StringBuilder;") \ +@@ -570,7 +572,7 @@ + template(createGarbageCollectorMBean_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/management/GarbageCollectorMBean;") \ + template(trigger_name, "trigger") \ + template(clear_name, "clear") \ +- template(trigger_method_signature, "(ILjava/lang/management/MemoryUsage;)V") \ ++ template(trigger_method_signature, "(ILjava/lang/management/MemoryUsage;)V") \ + template(startAgent_name, "startAgent") \ + template(startRemoteAgent_name, "startRemoteManagementAgent") \ + template(startLocalAgent_name, "startLocalManagementAgent") \ +diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp +index d1fe08b54..decbce8be 100644 +--- a/hotspot/src/share/vm/code/dependencies.cpp ++++ b/hotspot/src/share/vm/code/dependencies.cpp +@@ -123,8 +123,9 @@ void Dependencies::assert_has_no_finalizable_subclasses(ciKlass* ctxk) { + } + + void Dependencies::assert_call_site_target_value(ciCallSite* call_site, ciMethodHandle* method_handle) { +- check_ctxk(call_site->klass()); +- assert_common_2(call_site_target_value, call_site, method_handle); ++ ciKlass* ctxk = call_site->get_context(); ++ check_ctxk(ctxk); ++ assert_common_3(call_site_target_value, ctxk, call_site, method_handle); + } + + // Helper function. If we are adding a new dep. under ctxk2, +@@ -396,7 +397,7 @@ int Dependencies::_dep_args[TYPE_LIMIT] = { + 3, // unique_concrete_methods_2 ctxk, m1, m2 + 2, // unique_implementor ctxk, implementor + 1, // no_finalizable_subclasses ctxk +- 2 // call_site_target_value call_site, method_handle ++ 3 // call_site_target_value ctxk, call_site, method_handle + }; + + const char* Dependencies::dep_name(Dependencies::DepType dept) { +@@ -598,7 +599,7 @@ void Dependencies::DepStream::log_dependency(Klass* witness) { + const int nargs = argument_count(); + GrowableArray* args = new GrowableArray(nargs); + for (int j = 0; j < nargs; j++) { +- if (type() == call_site_target_value) { ++ if (is_oop_argument(j)) { + args->push(argument_oop(j)); + } else { + args->push(argument(j)); +@@ -726,7 +727,7 @@ Klass* Dependencies::DepStream::context_type() { + } + + // Some dependencies are using the klass of the first object +- // argument as implicit context type (e.g. call_site_target_value). ++ // argument as implicit context type. + { + int ctxkj = dep_implicit_context_arg(type()); + if (ctxkj >= 0) { +@@ -1647,9 +1648,16 @@ Klass* Dependencies::check_has_no_finalizable_subclasses(Klass* ctxk, KlassDepCh + return find_finalizable_subclass(search_at); + } + +-Klass* Dependencies::check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes) { +- assert(call_site ->is_a(SystemDictionary::CallSite_klass()), "sanity"); +- assert(method_handle->is_a(SystemDictionary::MethodHandle_klass()), "sanity"); ++Klass* Dependencies::check_call_site_target_value(Klass* recorded_ctxk, oop call_site, oop method_handle, CallSiteDepChange* changes) { ++ assert(call_site->is_a(SystemDictionary::CallSite_klass()), "sanity"); ++ assert(!oopDesc::is_null(method_handle), "sanity"); ++ ++ Klass* call_site_ctxk = MethodHandles::get_call_site_context(call_site); ++ assert(!Klass::is_null(call_site_ctxk), "call site context should be initialized already"); ++ if (recorded_ctxk != call_site_ctxk) { ++ // Stale context ++ return recorded_ctxk; ++ } + if (changes == NULL) { + // Validate all CallSites + if (java_lang_invoke_CallSite::target(call_site) != method_handle) +@@ -1664,7 +1672,6 @@ Klass* Dependencies::check_call_site_target_value(oop call_site, oop method_hand + return NULL; // assertion still valid + } + +- + void Dependencies::DepStream::trace_and_log_witness(Klass* witness) { + if (witness != NULL) { + if (TraceDependencies) { +@@ -1728,7 +1735,7 @@ Klass* Dependencies::DepStream::check_call_site_dependency(CallSiteDepChange* ch + Klass* witness = NULL; + switch (type()) { + case call_site_target_value: +- witness = check_call_site_target_value(argument_oop(0), argument_oop(1), changes); ++ witness = check_call_site_target_value(context_type(), argument_oop(1), argument_oop(2), changes); + break; + default: + witness = NULL; +diff --git a/hotspot/src/share/vm/code/dependencies.hpp b/hotspot/src/share/vm/code/dependencies.hpp +index 0392d4e3d..da2201c3f 100644 +--- a/hotspot/src/share/vm/code/dependencies.hpp ++++ b/hotspot/src/share/vm/code/dependencies.hpp +@@ -176,7 +176,7 @@ class Dependencies: public ResourceObj { + klass_types = all_types & ~non_klass_types, + + non_ctxk_types = (1 << evol_method), +- implicit_ctxk_types = (1 << call_site_target_value), ++ implicit_ctxk_types = 0, + explicit_ctxk_types = all_types & ~(non_ctxk_types | implicit_ctxk_types), + + max_arg_count = 3, // current maximum number of arguments (incl. ctxk) +@@ -340,7 +340,7 @@ class Dependencies: public ResourceObj { + static Klass* check_exclusive_concrete_methods(Klass* ctxk, Method* m1, Method* m2, + KlassDepChange* changes = NULL); + static Klass* check_has_no_finalizable_subclasses(Klass* ctxk, KlassDepChange* changes = NULL); +- static Klass* check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes = NULL); ++ static Klass* check_call_site_target_value(Klass* recorded_ctxk, oop call_site, oop method_handle, CallSiteDepChange* changes = NULL); + // A returned Klass* is NULL if the dependency assertion is still + // valid. A non-NULL Klass* is a 'witness' to the assertion + // failure, a point in the class hierarchy where the assertion has +@@ -506,6 +506,7 @@ class Dependencies: public ResourceObj { + bool next(); + + DepType type() { return _type; } ++ bool is_oop_argument(int i) { return type() == call_site_target_value && i > 0; } + int argument_count() { return dep_args(type()); } + int argument_index(int i) { assert(0 <= i && i < argument_count(), "oob"); + return _xi[i]; } +@@ -664,7 +665,7 @@ class CallSiteDepChange : public DepChange { + _method_handle(method_handle) + { + assert(_call_site() ->is_a(SystemDictionary::CallSite_klass()), "must be"); +- assert(_method_handle()->is_a(SystemDictionary::MethodHandle_klass()), "must be"); ++ assert(_method_handle.is_null() || _method_handle()->is_a(SystemDictionary::MethodHandle_klass()), "must be"); + } + + // What kind of DepChange is this? +diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp +index 23433d187..7028d378e 100644 +--- a/hotspot/src/share/vm/memory/universe.cpp ++++ b/hotspot/src/share/vm/memory/universe.cpp +@@ -56,6 +56,7 @@ + #include "oops/oop.inline.hpp" + #include "oops/typeArrayKlass.hpp" + #include "prims/jvmtiRedefineClassesTrace.hpp" ++#include "prims/methodHandles.hpp" + #include "runtime/arguments.hpp" + #include "runtime/deoptimization.hpp" + #include "runtime/fprofiler.hpp" +@@ -1233,8 +1234,11 @@ void Universe::flush_dependents_on(Handle call_site, Handle method_handle) { + int marked = 0; + { + MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); +- InstanceKlass* call_site_klass = InstanceKlass::cast(call_site->klass()); +- marked = call_site_klass->mark_dependent_nmethods(changes); ++ InstanceKlass* ctxk = MethodHandles::get_call_site_context(call_site()); ++ if (ctxk == NULL) { ++ return; // No dependencies to invalidate yet. ++ } ++ marked = ctxk->mark_dependent_nmethods(changes); + } + if (marked > 0) { + // At least one nmethod has been marked for deoptimization +diff --git a/hotspot/src/share/vm/prims/methodHandles.cpp b/hotspot/src/share/vm/prims/methodHandles.cpp +index 29598d500..c1cbabec2 100644 +--- a/hotspot/src/share/vm/prims/methodHandles.cpp ++++ b/hotspot/src/share/vm/prims/methodHandles.cpp +@@ -946,6 +946,24 @@ int MethodHandles::find_MemberNames(KlassHandle k, + return rfill + overflow; + } + ++// Get context class for a CallSite instance: either extract existing context or use default one. ++InstanceKlass* MethodHandles::get_call_site_context(oop call_site) { ++ // In order to extract a context the following traversal is performed: ++ // CallSite.context => Cleaner.referent => Class._klass => Klass ++ assert(java_lang_invoke_CallSite::is_instance(call_site), ""); ++ oop context_oop = java_lang_invoke_CallSite::context_volatile(call_site); ++ if (oopDesc::is_null(context_oop)) { ++ return NULL; // The context hasn't been initialized yet. ++ } ++ oop context_class_oop = java_lang_ref_Reference::referent(context_oop); ++ if (oopDesc::is_null(context_class_oop)) { ++ // The context reference was cleared by GC, so current dependency context ++ // isn't usable anymore. Context should be fetched from CallSite again. ++ return NULL; ++ } ++ return InstanceKlass::cast(java_lang_Class::as_Klass(context_class_oop)); ++} ++ + //------------------------------------------------------------------------------ + // MemberNameTable + // +@@ -1305,7 +1323,7 @@ JVM_END + + JVM_ENTRY(void, MHN_setCallSiteTargetNormal(JNIEnv* env, jobject igcls, jobject call_site_jh, jobject target_jh)) { + Handle call_site(THREAD, JNIHandles::resolve_non_null(call_site_jh)); +- Handle target (THREAD, JNIHandles::resolve(target_jh)); ++ Handle target (THREAD, JNIHandles::resolve_non_null(target_jh)); + { + // Walk all nmethods depending on this call site. + MutexLocker mu(Compile_lock, thread); +@@ -1317,7 +1335,7 @@ JVM_END + + JVM_ENTRY(void, MHN_setCallSiteTargetVolatile(JNIEnv* env, jobject igcls, jobject call_site_jh, jobject target_jh)) { + Handle call_site(THREAD, JNIHandles::resolve_non_null(call_site_jh)); +- Handle target (THREAD, JNIHandles::resolve(target_jh)); ++ Handle target (THREAD, JNIHandles::resolve_non_null(target_jh)); + { + // Walk all nmethods depending on this call site. + MutexLocker mu(Compile_lock, thread); +@@ -1327,6 +1345,33 @@ JVM_ENTRY(void, MHN_setCallSiteTargetVolatile(JNIEnv* env, jobject igcls, jobjec + } + JVM_END + ++JVM_ENTRY(void, MHN_invalidateDependentNMethods(JNIEnv* env, jobject igcls, jobject call_site_jh)) { ++ Handle call_site(THREAD, JNIHandles::resolve_non_null(call_site_jh)); ++ { ++ // Walk all nmethods depending on this call site. ++ MutexLocker mu1(Compile_lock, thread); ++ ++ CallSiteDepChange changes(call_site(), Handle()); ++ ++ InstanceKlass* ctxk = MethodHandles::get_call_site_context(call_site()); ++ if (ctxk == NULL) { ++ return; // No dependencies to invalidate yet. ++ } ++ int marked = 0; ++ { ++ MutexLockerEx mu2(CodeCache_lock, Mutex::_no_safepoint_check_flag); ++ marked = ctxk->mark_dependent_nmethods(changes); ++ } ++ java_lang_invoke_CallSite::set_context_volatile(call_site(), NULL); // Reset call site to initial state ++ if (marked > 0) { ++ // At least one nmethod has been marked for deoptimization ++ VM_Deoptimize op; ++ VMThread::execute(&op); ++ } ++ } ++} ++JVM_END ++ + /** + * Throws a java/lang/UnsupportedOperationException unconditionally. + * This is required by the specification of MethodHandle.invoke if +@@ -1381,6 +1426,7 @@ static JNINativeMethod MHN_methods[] = { + {CC "objectFieldOffset", CC "(" MEM ")J", FN_PTR(MHN_objectFieldOffset)}, + {CC "setCallSiteTargetNormal", CC "(" CS "" MH ")V", FN_PTR(MHN_setCallSiteTargetNormal)}, + {CC "setCallSiteTargetVolatile", CC "(" CS "" MH ")V", FN_PTR(MHN_setCallSiteTargetVolatile)}, ++ {CC"invalidateDependentNMethods", CC"("CS")V", FN_PTR(MHN_invalidateDependentNMethods)}, + {CC "staticFieldOffset", CC "(" MEM ")J", FN_PTR(MHN_staticFieldOffset)}, + {CC "staticFieldBase", CC "(" MEM ")" OBJ, FN_PTR(MHN_staticFieldBase)}, + {CC "getMemberVMInfo", CC "(" MEM ")" OBJ, FN_PTR(MHN_getMemberVMInfo)} +diff --git a/hotspot/src/share/vm/prims/methodHandles.hpp b/hotspot/src/share/vm/prims/methodHandles.hpp +index db6e06180..4b6af60df 100644 +--- a/hotspot/src/share/vm/prims/methodHandles.hpp ++++ b/hotspot/src/share/vm/prims/methodHandles.hpp +@@ -68,6 +68,9 @@ class MethodHandles: AllStatic { + // bit values for suppress argument to expand_MemberName: + enum { _suppress_defc = 1, _suppress_name = 2, _suppress_type = 4 }; + ++ // CallSite support ++ static InstanceKlass* get_call_site_context(oop call_site); ++ + // Generate MethodHandles adapters. + static void generate_adapters(); + +diff --git a/hotspot/test/compiler/jsr292/CallSiteDepContextTest.java b/hotspot/test/compiler/jsr292/CallSiteDepContextTest.java +new file mode 100644 +index 000000000..11e46ed03 +--- /dev/null ++++ b/hotspot/test/compiler/jsr292/CallSiteDepContextTest.java +@@ -0,0 +1,179 @@ ++/* ++ * Copyright (c) 2015, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/** ++ * @test ++ * @bug 8057967 ++ * @run main/bootclasspath -Xbatch java.lang.invoke.CallSiteDepContextTest ++ */ ++package java.lang.invoke; ++ ++import java.lang.ref.*; ++import jdk.internal.org.objectweb.asm.*; ++import sun.misc.Unsafe; ++ ++import static jdk.internal.org.objectweb.asm.Opcodes.*; ++ ++public class CallSiteDepContextTest { ++ static final Unsafe UNSAFE = Unsafe.getUnsafe(); ++ static final MethodHandles.Lookup LOOKUP = MethodHandles.Lookup.IMPL_LOOKUP; ++ static final String CLASS_NAME = "java/lang/invoke/Test"; ++ static final String METHOD_NAME = "m"; ++ static final MethodType TYPE = MethodType.methodType(int.class); ++ ++ static MutableCallSite mcs; ++ static MethodHandle bsmMH; ++ ++ static { ++ try { ++ bsmMH = LOOKUP.findStatic( ++ CallSiteDepContextTest.class, "bootstrap", ++ MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class)); ++ } catch(Throwable e) { ++ throw new InternalError(e); ++ } ++ } ++ ++ public static CallSite bootstrap(MethodHandles.Lookup caller, ++ String invokedName, ++ MethodType invokedType) { ++ return mcs; ++ } ++ ++ static class T { ++ static int f1() { return 1; } ++ static int f2() { return 2; } ++ } ++ ++ static byte[] getClassFile(String suffix) { ++ ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS); ++ MethodVisitor mv; ++ cw.visit(52, ACC_PUBLIC | ACC_SUPER, CLASS_NAME + suffix, null, "java/lang/Object", null); ++ { ++ mv = cw.visitMethod(ACC_PUBLIC | ACC_STATIC, METHOD_NAME, TYPE.toMethodDescriptorString(), null, null); ++ mv.visitCode(); ++ Handle bsm = new Handle(H_INVOKESTATIC, ++ "java/lang/invoke/CallSiteDepContextTest", "bootstrap", ++ bsmMH.type().toMethodDescriptorString()); ++ mv.visitInvokeDynamicInsn("methodName", TYPE.toMethodDescriptorString(), bsm); ++ mv.visitInsn(IRETURN); ++ mv.visitMaxs(0, 0); ++ mv.visitEnd(); ++ } ++ cw.visitEnd(); ++ return cw.toByteArray(); ++ } ++ ++ private static void execute(int expected, MethodHandle... mhs) throws Throwable { ++ for (int i = 0; i < 20_000; i++) { ++ for (MethodHandle mh : mhs) { ++ int r = (int) mh.invokeExact(); ++ if (r != expected) { ++ throw new Error(r + " != " + expected); ++ } ++ } ++ } ++ } ++ ++ public static void testSharedCallSite() throws Throwable { ++ Class cls1 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("CS_1"), null); ++ Class cls2 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("CS_2"), null); ++ ++ MethodHandle[] mhs = new MethodHandle[] { ++ LOOKUP.findStatic(cls1, METHOD_NAME, TYPE), ++ LOOKUP.findStatic(cls2, METHOD_NAME, TYPE) ++ }; ++ ++ mcs = new MutableCallSite(LOOKUP.findStatic(T.class, "f1", TYPE)); ++ execute(1, mhs); ++ mcs.setTarget(LOOKUP.findStatic(T.class, "f2", TYPE)); ++ execute(2, mhs); ++ } ++ ++ public static void testNonBoundCallSite() throws Throwable { ++ mcs = new MutableCallSite(LOOKUP.findStatic(T.class, "f1", TYPE)); ++ ++ // mcs.context == null ++ MethodHandle mh = mcs.dynamicInvoker(); ++ execute(1, mh); ++ ++ // mcs.context == cls1 ++ Class cls1 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("NonBound_1"), null); ++ MethodHandle mh1 = LOOKUP.findStatic(cls1, METHOD_NAME, TYPE); ++ ++ execute(1, mh1); ++ ++ mcs.setTarget(LOOKUP.findStatic(T.class, "f2", TYPE)); ++ ++ execute(2, mh, mh1); ++ } ++ ++ static ReferenceQueue rq = new ReferenceQueue(); ++ static PhantomReference ref; ++ ++ public static void testGC() throws Throwable { ++ mcs = new MutableCallSite(LOOKUP.findStatic(T.class, "f1", TYPE)); ++ ++ Class[] cls = new Class[] { ++ UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_1"), null), ++ UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_2"), null), ++ }; ++ ++ MethodHandle[] mhs = new MethodHandle[] { ++ LOOKUP.findStatic(cls[0], METHOD_NAME, TYPE), ++ LOOKUP.findStatic(cls[1], METHOD_NAME, TYPE), ++ }; ++ ++ // mcs.context == cls[0] ++ int r = (int) mhs[0].invokeExact(); ++ ++ execute(1, mhs); ++ ++ ref = new PhantomReference<>(cls[0], rq); ++ cls[0] = UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_3"), null); ++ mhs[0] = LOOKUP.findStatic(cls[0], METHOD_NAME, TYPE); ++ ++ do { ++ System.gc(); ++ try { ++ Reference ref1 = rq.remove(1000); ++ if (ref1 == ref) { ++ ref1.clear(); ++ System.gc(); // Ensure that the stale context is cleared ++ break; ++ } ++ } catch(InterruptedException e) { /* ignore */ } ++ } while (true); ++ ++ execute(1, mhs); ++ mcs.setTarget(LOOKUP.findStatic(T.class, "f2", TYPE)); ++ execute(2, mhs); ++ } ++ ++ public static void main(String[] args) throws Throwable { ++ testSharedCallSite(); ++ testNonBoundCallSite(); ++ testGC(); ++ System.out.println("TEST PASSED"); ++ } ++} +diff --git a/jdk/src/share/classes/java/lang/invoke/CallSite.java b/jdk/src/share/classes/java/lang/invoke/CallSite.java +index 10ac1c071..11e452b96 100644 +--- a/jdk/src/share/classes/java/lang/invoke/CallSite.java ++++ b/jdk/src/share/classes/java/lang/invoke/CallSite.java +@@ -25,9 +25,10 @@ + + package java.lang.invoke; + +-import sun.invoke.empty.Empty; + import static java.lang.invoke.MethodHandleStatics.*; + import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP; ++import java.lang.reflect.Field; ++import sun.misc.Cleaner; + + /** + * A {@code CallSite} is a holder for a variable {@link MethodHandle}, +@@ -136,6 +137,50 @@ public class CallSite { + } + + /** ++ * {@code CallSite} dependency context. ++ * VM uses context class to store nmethod dependencies on the call site target. ++ * Can be in 2 states: (a) null; or (b) {@code Cleaner} instance pointing to some Class instance. ++ * Lazily initialized when CallSite instance is linked to some indy call site or VM needs ++ * it to store dependencies. As a corollary, "null" context means there are no dependencies ++ * registered yet. {@code Cleaner} is used in 2 roles: ++ * (a) context class access for VM; ++ * (b) stale context class cleanup. ++ * {@code Cleaner} holds the context class until cleanup action is finished (see {@code PhantomReference}). ++ * Though it's impossible to get the context class using {@code Reference.get()}, VM extracts it directly ++ * from {@code Reference.referent} field. ++ */ ++ private volatile Cleaner context = null; ++ ++ /** ++ * Default context. ++ * VM uses it to initialize non-linked CallSite context. ++ */ ++ private static class DefaultContext {} ++ private static final Cleaner DEFAULT_CONTEXT = makeContext(DefaultContext.class, null); ++ ++ private static Cleaner makeContext(Class referent, final CallSite holder) { ++ return Cleaner.create(referent, ++ new Runnable() { ++ @Override public void run() { ++ MethodHandleNatives.invalidateDependentNMethods(holder); ++ } ++ }); ++ } ++ ++ /** Initialize context class used for nmethod dependency tracking */ ++ /*package-private*/ ++ void initContext(Class newContext) { ++ // If there are concurrent actions, exactly one succeeds. ++ if (context == null) { ++ UNSAFE.compareAndSwapObject(this, CONTEXT_OFFSET, /*expected=*/null, makeContext(newContext, this)); ++ // No need to care about failed CAS attempt. ++ // Since initContext is called from indy call site linkage in newContext class, there's no risk ++ // that the context class becomes dead while corresponding context cleaner is alive (causing cleanup ++ // action in the wrong context). ++ } ++ } ++ ++ /** + * Returns the type of this call site's target. + * Although targets may change, any call site's type is permanent, and can never change to an unequal type. + * The {@code setTarget} method enforces this invariant by refusing any new target that does +@@ -246,11 +291,13 @@ public class CallSite { + } + + // unsafe stuff: +- private static final long TARGET_OFFSET; ++ private static final long TARGET_OFFSET; ++ private static final long CONTEXT_OFFSET; + static { + try { +- TARGET_OFFSET = UNSAFE.objectFieldOffset(CallSite.class.getDeclaredField("target")); +- } catch (Exception ex) { throw new Error(ex); } ++ TARGET_OFFSET = UNSAFE.objectFieldOffset(CallSite.class.getDeclaredField("target")); ++ CONTEXT_OFFSET = UNSAFE.objectFieldOffset(CallSite.class.getDeclaredField("context")); ++ } catch (Exception ex) { throw newInternalError(ex); } + } + + /*package-private*/ +diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java b/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java +index ecc146078..9a1343c50 100644 +--- a/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java ++++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java +@@ -71,6 +71,9 @@ class MethodHandleNatives { + static native void setCallSiteTargetNormal(CallSite site, MethodHandle target); + static native void setCallSiteTargetVolatile(CallSite site, MethodHandle target); + ++ /** Invalidate CallSite context: clean up dependent nmethods and reset call site context to initial state (null). */ ++ static native void invalidateDependentNMethods(CallSite site); ++ + private static native void registerNatives(); + static { + registerNatives(); +@@ -314,6 +317,7 @@ class MethodHandleNatives { + return Invokers.linkToTargetMethod(type); + } else { + appendixResult[0] = callSite; ++ callSite.initContext(caller); + return Invokers.linkToCallSiteMethod(type); + } + } +-- +2.12.3 + diff --git a/8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch b/8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch deleted file mode 100644 index 3f428476463513b57725151b82347dda7ed036e3..0000000000000000000000000000000000000000 --- a/8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch +++ /dev/null @@ -1,170 +0,0 @@ -From c97998519552b7d8287125e46a3db2f29293784f Mon Sep 17 00:00:00 2001 -From: xiezhaokun -Date: Wed, 8 Jun 2022 10:32:52 +0800 -Subject: [PATCH 08/10] 8067941: [TESTBUG] Fix tests for OS with 64K page size - ---- - hotspot/src/share/vm/memory/metaspace.cpp | 8 +++++--- - hotspot/test/compiler/6865265/StackOverflowBug.java | 2 +- - hotspot/test/compiler/8009761/Test8009761.java | 2 +- - .../exceptions/TestRecursiveReplacedException.java | 2 +- - .../compiler/uncommontrap/StackOverflowGuardPagesOff.java | 2 +- - .../compiler/uncommontrap/TestStackBangMonitorOwned.java | 2 +- - hotspot/test/compiler/uncommontrap/TestStackBangRbp.java | 2 +- - hotspot/test/gc/arguments/TestMaxHeapSizeTools.java | 2 +- - hotspot/test/gc/g1/TestHumongousAllocInitialMark.java | 4 +++- - 9 files changed, 15 insertions(+), 11 deletions(-) - -diff --git a/hotspot/src/share/vm/memory/metaspace.cpp b/hotspot/src/share/vm/memory/metaspace.cpp -index 600bcfd1..2912f41b 100644 ---- a/hotspot/src/share/vm/memory/metaspace.cpp -+++ b/hotspot/src/share/vm/memory/metaspace.cpp -@@ -3937,11 +3937,13 @@ class TestVirtualSpaceNodeTest { - assert(cm.sum_free_chunks() == 2*MediumChunk, "sizes should add up"); - } - -- { // 4 pages of VSN is committed, some is used by chunks -+ const size_t page_chunks = 4 * (size_t)os::vm_page_size() / BytesPerWord; -+ // This doesn't work for systems with vm_page_size >= 16K. -+ if (page_chunks < MediumChunk) { -+ // 4 pages of VSN is committed, some is used by chunks - ChunkManager cm(SpecializedChunk, SmallChunk, MediumChunk); - VirtualSpaceNode vsn(vsn_test_size_bytes); -- const size_t page_chunks = 4 * (size_t)os::vm_page_size() / BytesPerWord; -- assert(page_chunks < MediumChunk, "Test expects medium chunks to be at least 4*page_size"); -+ - vsn.initialize(); - vsn.expand_by(page_chunks, page_chunks); - vsn.get_chunk_vs(SmallChunk); -diff --git a/hotspot/test/compiler/6865265/StackOverflowBug.java b/hotspot/test/compiler/6865265/StackOverflowBug.java -index 295a6b41..c5d0f3b6 100644 ---- a/hotspot/test/compiler/6865265/StackOverflowBug.java -+++ b/hotspot/test/compiler/6865265/StackOverflowBug.java -@@ -28,7 +28,7 @@ - * @summary JVM crashes with "missing exception handler" error - * @author volker.simonis@sap.com - * -- * @run main/othervm -XX:CompileThreshold=100 -Xbatch -Xss248k StackOverflowBug -+ * @run main/othervm -XX:CompileThreshold=100 -Xbatch -Xss512k StackOverflowBug - */ - - -diff --git a/hotspot/test/compiler/8009761/Test8009761.java b/hotspot/test/compiler/8009761/Test8009761.java -index 401458b6..b41f49fd 100644 ---- a/hotspot/test/compiler/8009761/Test8009761.java -+++ b/hotspot/test/compiler/8009761/Test8009761.java -@@ -25,7 +25,7 @@ - * @test - * @bug 8009761 - * @summary Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates -- * @run main/othervm -XX:CompileCommand=exclude,Test8009761::m2 -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -Xss256K Test8009761 -+ * @run main/othervm -XX:CompileCommand=exclude,Test8009761::m2 -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -Xss512K Test8009761 - * - */ - -diff --git a/hotspot/test/compiler/exceptions/TestRecursiveReplacedException.java b/hotspot/test/compiler/exceptions/TestRecursiveReplacedException.java -index 996d82a0..950ed18c 100644 ---- a/hotspot/test/compiler/exceptions/TestRecursiveReplacedException.java -+++ b/hotspot/test/compiler/exceptions/TestRecursiveReplacedException.java -@@ -25,7 +25,7 @@ - * @test - * @bug 8054224 - * @summary Recursive method compiled by C1 is unable to catch StackOverflowError -- * @run main/othervm -Xcomp -XX:CompileOnly=Test.run -XX:+TieredCompilation -XX:TieredStopAtLevel=2 -Xss256K TestRecursiveReplacedException -+ * @run main/othervm -Xcomp -XX:CompileOnly=Test.run -XX:+TieredCompilation -XX:TieredStopAtLevel=2 -Xss512K TestRecursiveReplacedException - * - */ - -diff --git a/hotspot/test/compiler/uncommontrap/StackOverflowGuardPagesOff.java b/hotspot/test/compiler/uncommontrap/StackOverflowGuardPagesOff.java -index 4ad409bb..835283c0 100644 ---- a/hotspot/test/compiler/uncommontrap/StackOverflowGuardPagesOff.java -+++ b/hotspot/test/compiler/uncommontrap/StackOverflowGuardPagesOff.java -@@ -25,7 +25,7 @@ - * @test - * @bug 8029383 - * @summary stack overflow if callee is marked for deoptimization causes crash -- * @run main/othervm -XX:TieredStopAtLevel=1 -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,StackOverflowGuardPagesOff::m1 -XX:CompileCommand=exclude,StackOverflowGuardPagesOff::m2 -Xss256K -XX:-UseOnStackReplacement StackOverflowGuardPagesOff -+ * @run main/othervm -XX:TieredStopAtLevel=1 -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,StackOverflowGuardPagesOff::m1 -XX:CompileCommand=exclude,StackOverflowGuardPagesOff::m2 -Xss512K -XX:-UseOnStackReplacement StackOverflowGuardPagesOff - * - */ - -diff --git a/hotspot/test/compiler/uncommontrap/TestStackBangMonitorOwned.java b/hotspot/test/compiler/uncommontrap/TestStackBangMonitorOwned.java -index 3d93d7d5..c07a995d 100644 ---- a/hotspot/test/compiler/uncommontrap/TestStackBangMonitorOwned.java -+++ b/hotspot/test/compiler/uncommontrap/TestStackBangMonitorOwned.java -@@ -25,7 +25,7 @@ - * @test - * @bug 8032410 - * @summary Stack overflow at deoptimization doesn't release owned monitors -- * @run main/othervm -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestStackBangMonitorOwned::m1 -XX:CompileCommand=exclude,TestStackBangMonitorOwned::m2 -Xss256K -XX:-UseOnStackReplacement TestStackBangMonitorOwned -+ * @run main/othervm -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestStackBangMonitorOwned::m1 -XX:CompileCommand=exclude,TestStackBangMonitorOwned::m2 -Xss512K -XX:-UseOnStackReplacement TestStackBangMonitorOwned - * - */ - public class TestStackBangMonitorOwned { -diff --git a/hotspot/test/compiler/uncommontrap/TestStackBangRbp.java b/hotspot/test/compiler/uncommontrap/TestStackBangRbp.java -index 38d4e206..9b96951a 100644 ---- a/hotspot/test/compiler/uncommontrap/TestStackBangRbp.java -+++ b/hotspot/test/compiler/uncommontrap/TestStackBangRbp.java -@@ -25,7 +25,7 @@ - * @test - * @bug 8028308 - * @summary rbp not restored when stack overflow is thrown from deopt/uncommon trap blobs -- * @run main/othervm -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestStackBangRbp::m1 -XX:CompileCommand=exclude,TestStackBangRbp::m2 -Xss256K -XX:-UseOnStackReplacement TestStackBangRbp -+ * @run main/othervm -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestStackBangRbp::m1 -XX:CompileCommand=exclude,TestStackBangRbp::m2 -Xss512K -XX:-UseOnStackReplacement TestStackBangRbp - * - */ - public class TestStackBangRbp { -diff --git a/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java b/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java -index b5859b5c..99ed508d 100644 ---- a/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java -+++ b/hotspot/test/gc/arguments/TestMaxHeapSizeTools.java -@@ -112,7 +112,7 @@ class TestMaxHeapSizeTools { - } - - private static void checkInvalidMinInitialHeapCombinations(String gcflag) throws Exception { -- expectError(new String[] { gcflag, "-Xms8M", "-XX:InitialHeapSize=4M", "-version" }); -+ expectError(new String[] { gcflag, "-Xms64M", "-XX:InitialHeapSize=32M", "-version" }); - } - - private static void checkValidMinInitialHeapCombinations(String gcflag) throws Exception { -diff --git a/hotspot/test/gc/g1/TestHumongousAllocInitialMark.java b/hotspot/test/gc/g1/TestHumongousAllocInitialMark.java -index 473ce666..b6e5c3d6 100644 ---- a/hotspot/test/gc/g1/TestHumongousAllocInitialMark.java -+++ b/hotspot/test/gc/g1/TestHumongousAllocInitialMark.java -@@ -31,7 +31,9 @@ - import com.oracle.java.testlibrary.*; - - public class TestHumongousAllocInitialMark { -- private static final int heapSize = 200; // MB -+ // Heap sizes < 224 MB are increased to 224 MB if vm_page_size == 64K to -+ // fulfill alignment constraints. -+ private static final int heapSize = 224; // MB - private static final int heapRegionSize = 1; // MB - private static final int initiatingHeapOccupancyPercent = 50; // % - -diff --git a/hotspot/test/runtime/6929067/invoke.c b/hotspot/test/runtime/6929067/invoke.c -index 8dde2cd6..cf8014be 100644 ---- a/hotspot/test/runtime/6929067/invoke.c -+++ b/hotspot/test/runtime/6929067/invoke.c -@@ -68,7 +68,7 @@ floobydust (void *p) - int - main (int argc, const char** argv) - { -- options[0].optionString = "-Xss320k"; -+ options[0].optionString = "-Xss512k"; - - vm_args.version = JNI_VERSION_1_2; - vm_args.ignoreUnrecognized = JNI_TRUE; -diff --git a/hotspot/test/runtime/InitialThreadOverflow/invoke.cxx b/hotspot/test/runtime/InitialThreadOverflow/invoke.cxx -index 55213c0f..2bca88f1 100644 ---- a/hotspot/test/runtime/InitialThreadOverflow/invoke.cxx -+++ b/hotspot/test/runtime/InitialThreadOverflow/invoke.cxx -@@ -48,7 +48,7 @@ floobydust (void *p) { - int - main (int argc, const char** argv) { - JavaVMOption options[1]; -- options[0].optionString = (char*) "-Xss320k"; -+ options[0].optionString = (char*) "-Xss512k"; - - JavaVMInitArgs vm_args; - vm_args.version = JNI_VERSION_1_2; diff --git a/8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch b/8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch new file mode 100644 index 0000000000000000000000000000000000000000..d2843ca669659591b59cafcd223dee139ac26ff3 --- /dev/null +++ b/8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch @@ -0,0 +1,468 @@ +From b48d4df404756872fb7b1ef7be5f9880ba6a0abc Mon Sep 17 00:00:00 2001 +From: zhangyunbo +Date: Sun, 29 Jan 2023 10:44:01 +0800 +Subject: [PATCH 07/15] 8074354: Make CreateMinidumpOnCrash a new name and + available on all platforms + +DTS/AR: AR.SR.ccd816c9.001 +Summary: :8074354: Make CreateMinidumpOnCrash a new name and available on all platforms +LLT: NA +Patch Type: backport +Bug url: https://bugs.openjdk.org/browse/JDK-8074354 +--- + hotspot/src/os/aix/vm/os_aix.cpp | 4 + + hotspot/src/os/bsd/vm/os_bsd.cpp | 4 + + hotspot/src/os/linux/vm/os_linux.cpp | 4 + + hotspot/src/os/posix/vm/os_posix.cpp | 4 +- + hotspot/src/os/solaris/vm/os_solaris.cpp | 4 + + hotspot/src/os/windows/vm/os_windows.cpp | 117 +++++++++--------- + hotspot/src/share/vm/runtime/arguments.cpp | 9 ++ + hotspot/src/share/vm/runtime/globals.hpp | 4 +- + hotspot/src/share/vm/runtime/os.hpp | 10 +- + hotspot/src/share/vm/utilities/vmError.cpp | 19 +-- + hotspot/src/share/vm/utilities/vmError.hpp | 6 +- + hotspot/test/runtime/Unsafe/RangeCheck.java | 1 + + .../runtime/memory/ReadFromNoaccessArea.java | 1 + + .../test/runtime/memory/ReserveMemory.java | 1 + + 14 files changed, 111 insertions(+), 77 deletions(-) + +diff --git a/hotspot/src/os/aix/vm/os_aix.cpp b/hotspot/src/os/aix/vm/os_aix.cpp +index 519b08550..6838f33bc 100644 +--- a/hotspot/src/os/aix/vm/os_aix.cpp ++++ b/hotspot/src/os/aix/vm/os_aix.cpp +@@ -1214,6 +1214,10 @@ void os::shutdown() { + // called from signal handler. Before adding something to os::abort(), make + // sure it is async-safe and can handle partially initialized VM. + void os::abort(bool dump_core) { ++ abort(dump_core, NULL, NULL); ++} ++ ++void os::abort(bool dump_core, void* siginfo, void* context) { + os::shutdown(); + if (dump_core) { + #ifndef PRODUCT +diff --git a/hotspot/src/os/bsd/vm/os_bsd.cpp b/hotspot/src/os/bsd/vm/os_bsd.cpp +index 85e28619c..765b60c0d 100644 +--- a/hotspot/src/os/bsd/vm/os_bsd.cpp ++++ b/hotspot/src/os/bsd/vm/os_bsd.cpp +@@ -1147,6 +1147,10 @@ void os::shutdown() { + // called from signal handler. Before adding something to os::abort(), make + // sure it is async-safe and can handle partially initialized VM. + void os::abort(bool dump_core) { ++ abort(dump_core, NULL, NULL); ++} ++ ++void os::abort(bool dump_core, void* siginfo, void* context) { + os::shutdown(); + if (dump_core) { + #ifndef PRODUCT +diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp +index b82352c9f..05c8b254c 100644 +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -1588,6 +1588,10 @@ void os::shutdown() { + // called from signal handler. Before adding something to os::abort(), make + // sure it is async-safe and can handle partially initialized VM. + void os::abort(bool dump_core) { ++ abort(dump_core, NULL, NULL); ++} ++ ++void os::abort(bool dump_core, void* siginfo, void* context) { + os::shutdown(); + if (dump_core) { + #ifndef PRODUCT +diff --git a/hotspot/src/os/posix/vm/os_posix.cpp b/hotspot/src/os/posix/vm/os_posix.cpp +index d2663bd86..678a1059f 100644 +--- a/hotspot/src/os/posix/vm/os_posix.cpp ++++ b/hotspot/src/os/posix/vm/os_posix.cpp +@@ -48,7 +48,7 @@ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + #define ROOT_UID 0 + + // Check core dump limit and report possible place where core can be found +-void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* buffer, size_t bufferSize) { ++void os::check_dump_limit(char* buffer, size_t bufferSize) { + int n; + struct rlimit rlim; + bool success; +@@ -74,7 +74,7 @@ void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* + break; + } + } +- VMError::report_coredump_status(buffer, success); ++ VMError::record_coredump_status(buffer, success); + } + + int os::get_native_stack(address* stack, int frames, int toSkip) { +diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp +index d995f51e3..9f8c6a9bf 100644 +--- a/hotspot/src/os/solaris/vm/os_solaris.cpp ++++ b/hotspot/src/os/solaris/vm/os_solaris.cpp +@@ -1581,6 +1581,10 @@ void os::shutdown() { + // called from signal handler. Before adding something to os::abort(), make + // sure it is async-safe and can handle partially initialized VM. + void os::abort(bool dump_core) { ++ abort(dump_core, NULL, NULL); ++} ++ ++void os::abort(bool dump_core, void* siginfo, void* context) { + os::shutdown(); + if (dump_core) { + #ifndef PRODUCT +diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp +index 23dec5b67..11bd14f6f 100644 +--- a/hotspot/src/os/windows/vm/os_windows.cpp ++++ b/hotspot/src/os/windows/vm/os_windows.cpp +@@ -980,7 +980,43 @@ void os::shutdown() { + static BOOL (WINAPI *_MiniDumpWriteDump) ( HANDLE, DWORD, HANDLE, MINIDUMP_TYPE, PMINIDUMP_EXCEPTION_INFORMATION, + PMINIDUMP_USER_STREAM_INFORMATION, PMINIDUMP_CALLBACK_INFORMATION); + +-void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* buffer, size_t bufferSize) { ++static HANDLE dumpFile = NULL; ++ ++// Check if dump file can be created. ++void os::check_dump_limit(char* buffer, size_t buffsz) { ++ bool status = true; ++ if (!FLAG_IS_DEFAULT(CreateCoredumpOnCrash) && !CreateCoredumpOnCrash) { ++ jio_snprintf(buffer, buffsz, "CreateCoredumpOnCrash is disabled from command line"); ++ status = false; ++ } ++ ++#ifndef ASSERT ++ if (!os::win32::is_windows_server() && FLAG_IS_DEFAULT(CreateCoredumpOnCrash)) { ++ jio_snprintf(buffer, buffsz, "Minidumps are not enabled by default on client versions of Windows"); ++ status = false; ++ } ++#endif ++ ++ if (status) { ++ const char* cwd = get_current_directory(NULL, 0); ++ int pid = current_process_id(); ++ if (cwd != NULL) { ++ jio_snprintf(buffer, buffsz, "%s\\hs_err_pid%u.mdmp", cwd, pid); ++ } else { ++ jio_snprintf(buffer, buffsz, ".\\hs_err_pid%u.mdmp", pid); ++ } ++ ++ if (dumpFile == NULL && ++ (dumpFile = CreateFile(buffer, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) ++ == INVALID_HANDLE_VALUE) { ++ jio_snprintf(buffer, buffsz, "Failed to create minidump file (0x%x).", GetLastError()); ++ status = false; ++ } ++ } ++ VMError::record_coredump_status(buffer, status); ++} ++ ++void os::abort(bool dump_core, void* siginfo, void* context) { + HINSTANCE dbghelp; + EXCEPTION_POINTERS ep; + MINIDUMP_EXCEPTION_INFORMATION mei; +@@ -988,33 +1024,22 @@ void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* + + HANDLE hProcess = GetCurrentProcess(); + DWORD processId = GetCurrentProcessId(); +- HANDLE dumpFile; + MINIDUMP_TYPE dumpType; +- static const char* cwd; + +-// Default is to always create dump for debug builds, on product builds only dump on server versions of Windows. +-#ifndef ASSERT +- // If running on a client version of Windows and user has not explicitly enabled dumping +- if (!os::win32::is_windows_server() && !CreateMinidumpOnCrash) { +- VMError::report_coredump_status("Minidumps are not enabled by default on client versions of Windows", false); +- return; +- // If running on a server version of Windows and user has explictly disabled dumping +- } else if (os::win32::is_windows_server() && !FLAG_IS_DEFAULT(CreateMinidumpOnCrash) && !CreateMinidumpOnCrash) { +- VMError::report_coredump_status("Minidump has been disabled from the command line", false); +- return; +- } +-#else +- if (!FLAG_IS_DEFAULT(CreateMinidumpOnCrash) && !CreateMinidumpOnCrash) { +- VMError::report_coredump_status("Minidump has been disabled from the command line", false); +- return; ++ shutdown(); ++ if (!dump_core || dumpFile == NULL) { ++ if (dumpFile != NULL) { ++ CloseHandle(dumpFile); ++ } ++ win32::exit_process_or_thread(win32::EPT_PROCESS, 1); + } +-#endif + + dbghelp = os::win32::load_Windows_dll("DBGHELP.DLL", NULL, 0); + + if (dbghelp == NULL) { +- VMError::report_coredump_status("Failed to load dbghelp.dll", false); +- return; ++ jio_fprintf(stderr, "Failed to load dbghelp.dll\n"); ++ CloseHandle(dumpFile); ++ win32::exit_process_or_thread(win32::EPT_PROCESS, 1); + } + + _MiniDumpWriteDump = CAST_TO_FN_PTR( +@@ -1023,30 +1048,22 @@ void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* + GetProcAddress(dbghelp, "MiniDumpWriteDump")); + + if (_MiniDumpWriteDump == NULL) { +- VMError::report_coredump_status("Failed to find MiniDumpWriteDump() in module dbghelp.dll", false); +- return; ++ jio_fprintf(stderr, "Failed to find MiniDumpWriteDump() in module dbghelp.dll.\n"); ++ CloseHandle(dumpFile); ++ win32::exit_process_or_thread(win32::EPT_PROCESS, 1); + } + + dumpType = (MINIDUMP_TYPE)(MiniDumpWithFullMemory | MiniDumpWithHandleData); + +-// Older versions of dbghelp.h doesn't contain all the dumptypes we want, dbghelp.h with +-// API_VERSION_NUMBER 11 or higher contains the ones we want though ++ // Older versions of dbghelp.h do not contain all the dumptypes we want, dbghelp.h with ++ // API_VERSION_NUMBER 11 or higher contains the ones we want though + #if API_VERSION_NUMBER >= 11 + dumpType = (MINIDUMP_TYPE)(dumpType | MiniDumpWithFullMemoryInfo | MiniDumpWithThreadInfo | + MiniDumpWithUnloadedModules); + #endif +- +- cwd = get_current_directory(NULL, 0); +- jio_snprintf(buffer, bufferSize, "%s\\hs_err_pid%u.mdmp",cwd, current_process_id()); +- dumpFile = CreateFile(buffer, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); +- +- if (dumpFile == INVALID_HANDLE_VALUE) { +- VMError::report_coredump_status("Failed to create file for dumping", false); +- return; +- } +- if (exceptionRecord != NULL && contextRecord != NULL) { +- ep.ContextRecord = (PCONTEXT) contextRecord; +- ep.ExceptionRecord = (PEXCEPTION_RECORD) exceptionRecord; ++ if (siginfo != NULL && context != NULL) { ++ ep.ContextRecord = (PCONTEXT) context; ++ ep.ExceptionRecord = (PEXCEPTION_RECORD) siginfo; + + mei.ThreadId = GetCurrentThreadId(); + mei.ExceptionPointers = &ep; +@@ -1055,40 +1072,20 @@ void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* + pmei = NULL; + } + +- + // Older versions of dbghelp.dll (the one shipped with Win2003 for example) may not support all + // the dump types we really want. If first call fails, lets fall back to just use MiniDumpWithFullMemory then. + if (_MiniDumpWriteDump(hProcess, processId, dumpFile, dumpType, pmei, NULL, NULL) == false && + _MiniDumpWriteDump(hProcess, processId, dumpFile, (MINIDUMP_TYPE)MiniDumpWithFullMemory, pmei, NULL, NULL) == false) { +- DWORD error = GetLastError(); +- LPTSTR msgbuf = NULL; +- +- if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | +- FORMAT_MESSAGE_FROM_SYSTEM | +- FORMAT_MESSAGE_IGNORE_INSERTS, +- NULL, error, 0, (LPTSTR)&msgbuf, 0, NULL) != 0) { +- +- jio_snprintf(buffer, bufferSize, "Call to MiniDumpWriteDump() failed (Error 0x%x: %s)", error, msgbuf); +- LocalFree(msgbuf); +- } else { +- // Call to FormatMessage failed, just include the result from GetLastError +- jio_snprintf(buffer, bufferSize, "Call to MiniDumpWriteDump() failed (Error 0x%x)", error); +- } +- VMError::report_coredump_status(buffer, false); +- } else { +- VMError::report_coredump_status(buffer, true); ++ jio_fprintf(stderr, "Call to MiniDumpWriteDump() failed (Error 0x%x)\n", GetLastError()); + } +- + CloseHandle(dumpFile); ++ win32::exit_process_or_thread(win32::EPT_PROCESS, 1); + } + + +- + void os::abort(bool dump_core) + { +- os::shutdown(); +- // no core dump on Windows +- ::exit(1); ++ abort(dump_core, NULL, NULL); + } + + // Die immediately, no exit hook, no abort hook, no cleanup. +diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp +index b0b541482..43fdd0b49 100644 +--- a/hotspot/src/share/vm/runtime/arguments.cpp ++++ b/hotspot/src/share/vm/runtime/arguments.cpp +@@ -3599,6 +3599,15 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, + } else if (match_jfr_option(&option)) { + return JNI_EINVAL; + #endif ++ // CreateMinidumpOnCrash is removed, and replaced by CreateCoredumpOnCrash ++ } else if (match_option(option, "-XX:+CreateMinidumpOnCrash", &tail)) { ++ FLAG_SET_CMDLINE(bool, CreateCoredumpOnCrash, true); ++ jio_fprintf(defaultStream::output_stream(), ++ "CreateMinidumpOnCrash is replaced by CreateCoredumpOnCrash: CreateCoredumpOnCrash is on\n"); ++ } else if (match_option(option, "-XX:-CreateMinidumpOnCrash", &tail)) { ++ FLAG_SET_CMDLINE(bool, CreateCoredumpOnCrash, false); ++ jio_fprintf(defaultStream::output_stream(), ++ "CreateMinidumpOnCrash is replaced by CreateCoredumpOnCrash: CreateCoredumpOnCrash is off\n"); + } else if (match_option(option, "-XX:", &tail)) { // -XX:xxxx + // Skip -XX:Flags= since that case has already been handled + if (strncmp(tail, "Flags=", strlen("Flags=")) != 0) { +diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp +index 3dd4c51a9..3b2776ce5 100644 +--- a/hotspot/src/share/vm/runtime/globals.hpp ++++ b/hotspot/src/share/vm/runtime/globals.hpp +@@ -948,8 +948,8 @@ class CommandLineFlags { + product(bool, ShowMessageBoxOnError, false, \ + "Keep process alive on VM fatal error") \ + \ +- product(bool, CreateMinidumpOnCrash, false, \ +- "Create minidump on VM fatal error") \ ++ product(bool, CreateCoredumpOnCrash, true, \ ++ "Create core/mini dump on VM fatal error") \ + \ + product_pd(bool, UseOSErrorReporting, \ + "Let VM fatal error propagate to the OS (ie. WER on Windows)") \ +diff --git a/hotspot/src/share/vm/runtime/os.hpp b/hotspot/src/share/vm/runtime/os.hpp +index 092459c99..e696321ab 100644 +--- a/hotspot/src/share/vm/runtime/os.hpp ++++ b/hotspot/src/share/vm/runtime/os.hpp +@@ -553,6 +553,7 @@ class os: AllStatic { + + // Terminate with an error. Default is to generate a core file on platforms + // that support such things. This calls shutdown() and then aborts. ++ static void abort(bool dump_core, void *siginfo, void *context); + static void abort(bool dump_core = true); + + // Die immediately, no exit hook, no abort hook, no cleanup. +@@ -803,8 +804,13 @@ class os: AllStatic { + // Structured OS Exception support + static void os_exception_wrapper(java_call_t f, JavaValue* value, methodHandle* method, JavaCallArguments* args, Thread* thread); + +- // On Windows this will create an actual minidump, on Linux/Solaris it will simply check core dump limits +- static void check_or_create_dump(void* exceptionRecord, void* contextRecord, char* buffer, size_t bufferSize); ++ // On Posix compatible OS it will simply check core dump limits while on Windows ++ // it will check if dump file can be created. Check or prepare a core dump to be ++ // taken at a later point in the same thread in os::abort(). Use the caller ++ // provided buffer as a scratch buffer. The status message which will be written ++ // into the error log either is file location or a short error message, depending ++ // on the checking result. ++ static void check_dump_limit(char* buffer, size_t bufferSize); + + // Get the default path to the core file + // Returns the length of the string +diff --git a/hotspot/src/share/vm/utilities/vmError.cpp b/hotspot/src/share/vm/utilities/vmError.cpp +index 26408fa5e..56ae50fe5 100644 +--- a/hotspot/src/share/vm/utilities/vmError.cpp ++++ b/hotspot/src/share/vm/utilities/vmError.cpp +@@ -220,7 +220,7 @@ static void print_bug_submit_message(outputStream *out, Thread *thread) { + bool VMError::coredump_status; + char VMError::coredump_message[O_BUFLEN]; + +-void VMError::report_coredump_status(const char* message, bool status) { ++void VMError::record_coredump_status(const char* message, bool status) { + coredump_status = status; + strncpy(coredump_message, message, sizeof(coredump_message)); + coredump_message[sizeof(coredump_message)-1] = 0; +@@ -533,10 +533,14 @@ void VMError::report(outputStream* st) { + } + STEP(63, "(printing core file information)") + st->print("# "); +- if (coredump_status) { +- st->print("Core dump written. Default location: %s", coredump_message); ++ if (CreateCoredumpOnCrash) { ++ if (coredump_status) { ++ st->print("Core dump will be written. %s", coredump_message); ++ } else { ++ st->print("No core dump will be written. %s", coredump_message); ++ } + } else { +- st->print("Failed to write core dump. %s", coredump_message); ++ st->print("CreateCoredumpOnCrash turned off, no core file dumped"); + } + st->cr(); + st->print_cr("#"); +@@ -944,7 +948,7 @@ void VMError::report_and_die() { + static bool transmit_report_done = false; // done error reporting + + if (SuppressFatalErrorMessage) { +- os::abort(); ++ os::abort(CreateCoredumpOnCrash); + } + jlong mytid = os::current_thread_id(); + if (first_error == NULL && +@@ -962,8 +966,7 @@ void VMError::report_and_die() { + ShowMessageBoxOnError = false; + } + +- // Write a minidump on Windows, check core dump limits on Linux/Solaris +- os::check_or_create_dump(_siginfo, _context, buffer, sizeof(buffer)); ++ os::check_dump_limit(buffer, sizeof(buffer)); + + // reset signal handlers or exception filter; make sure recursive crashes + // are handled properly. +@@ -1153,7 +1156,7 @@ void VMError::report_and_die() { + if (!skip_os_abort) { + skip_os_abort = true; + bool dump_core = should_report_bug(first_error->_id); +- os::abort(dump_core); ++ os::abort(dump_core && CreateCoredumpOnCrash, _siginfo, _context); + } + + // if os::abort() doesn't abort, try os::die(); +diff --git a/hotspot/src/share/vm/utilities/vmError.hpp b/hotspot/src/share/vm/utilities/vmError.hpp +index 21db84d0c..dc455c6fa 100644 +--- a/hotspot/src/share/vm/utilities/vmError.hpp ++++ b/hotspot/src/share/vm/utilities/vmError.hpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2003, 2015, 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 +@@ -117,8 +117,8 @@ public: + // return a string to describe the error + char *error_string(char* buf, int buflen); + +- // Report status of core/minidump +- static void report_coredump_status(const char* message, bool status); ++ // Record status of core/minidump ++ static void record_coredump_status(const char* message, bool status); + + // main error reporting function + void report_and_die(); +diff --git a/hotspot/test/runtime/Unsafe/RangeCheck.java b/hotspot/test/runtime/Unsafe/RangeCheck.java +index 9ded944cb..602f22500 100644 +--- a/hotspot/test/runtime/Unsafe/RangeCheck.java ++++ b/hotspot/test/runtime/Unsafe/RangeCheck.java +@@ -43,6 +43,7 @@ public class RangeCheck { + true, + "-Xmx32m", + "-XX:-TransmitErrorReport", ++ "-XX:-CreateCoredumpOnCrash", + DummyClassWithMainRangeCheck.class.getName()); + + OutputAnalyzer output = new OutputAnalyzer(pb.start()); +diff --git a/hotspot/test/runtime/memory/ReadFromNoaccessArea.java b/hotspot/test/runtime/memory/ReadFromNoaccessArea.java +index 1078dd2e4..b2a58ae0a 100644 +--- a/hotspot/test/runtime/memory/ReadFromNoaccessArea.java ++++ b/hotspot/test/runtime/memory/ReadFromNoaccessArea.java +@@ -45,6 +45,7 @@ public class ReadFromNoaccessArea { + "-Xbootclasspath/a:.", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+WhiteBoxAPI", ++ "-XX:-CreateCoredumpOnCrash", + "-XX:+UseCompressedOops", + "-XX:HeapBaseMinAddress=33G", + DummyClassWithMainTryingToReadFromNoaccessArea.class.getName()); +diff --git a/hotspot/test/runtime/memory/ReserveMemory.java b/hotspot/test/runtime/memory/ReserveMemory.java +index 9e37d52cc..ef4dde1a7 100644 +--- a/hotspot/test/runtime/memory/ReserveMemory.java ++++ b/hotspot/test/runtime/memory/ReserveMemory.java +@@ -57,6 +57,7 @@ public class ReserveMemory { + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+WhiteBoxAPI", + "-XX:-TransmitErrorReport", ++ "-XX:-CreateCoredumpOnCrash", + "ReserveMemory", + "test"); + +-- +2.19.0 + diff --git a/8079205-CallSite-dependency-tracking-is-broken-after.patch b/8079205-CallSite-dependency-tracking-is-broken-after.patch new file mode 100644 index 0000000000000000000000000000000000000000..34758670be57531b36d7b45803103bd33daf190f --- /dev/null +++ b/8079205-CallSite-dependency-tracking-is-broken-after.patch @@ -0,0 +1,1161 @@ +From 4ec8d45e1a51fb6c4e407052a52762ad3a59fa60 Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Tue, 16 Jan 2024 10:00:09 +0800 +Subject: [PATCH] [Backport]8079205: CallSite dependency tracking is broken after + sun.misc.Cleaner became automatically cleared +--- + hotspot/src/share/vm/ci/ciCallSite.cpp | 19 --- + hotspot/src/share/vm/ci/ciCallSite.hpp | 1 - + hotspot/src/share/vm/ci/ciInstanceKlass.cpp | 8 +- + hotspot/src/share/vm/classfile/javaClasses.cpp | 44 +++--- + hotspot/src/share/vm/classfile/javaClasses.hpp | 37 ++++- + .../src/share/vm/classfile/systemDictionary.hpp | 1 + + hotspot/src/share/vm/classfile/vmSymbols.hpp | 4 +- + hotspot/src/share/vm/code/dependencies.cpp | 20 +-- + hotspot/src/share/vm/code/dependencies.hpp | 6 +- + hotspot/src/share/vm/code/nmethod.cpp | 46 ++++-- + hotspot/src/share/vm/memory/universe.cpp | 34 ---- + hotspot/src/share/vm/memory/universe.hpp | 1 - + hotspot/src/share/vm/oops/instanceKlass.cpp | 176 ++++++++++++--------- + hotspot/src/share/vm/oops/instanceKlass.hpp | 10 ++ + hotspot/src/share/vm/prims/methodHandles.cpp | 93 +++++++---- + hotspot/src/share/vm/prims/methodHandles.hpp | 5 +- + .../compiler/jsr292/CallSiteDepContextTest.java | 41 +++-- + .../share/classes/java/lang/invoke/CallSite.java | 44 +----- + .../java/lang/invoke/MethodHandleNatives.java | 25 ++- + 19 files changed, 335 insertions(+), 280 deletions(-) + +diff --git a/hotspot/src/share/vm/ci/ciCallSite.cpp b/hotspot/src/share/vm/ci/ciCallSite.cpp +index f58346aea..794042a79 100644 +--- a/hotspot/src/share/vm/ci/ciCallSite.cpp ++++ b/hotspot/src/share/vm/ci/ciCallSite.cpp +@@ -49,25 +49,6 @@ ciMethodHandle* ciCallSite::get_target() const { + } + + // ------------------------------------------------------------------ +-// ciCallSite::get_context +-// +-// Return the target MethodHandle of this CallSite. +-ciKlass* ciCallSite::get_context() { +- assert(!is_constant_call_site(), ""); +- +- VM_ENTRY_MARK; +- oop call_site_oop = get_oop(); +- InstanceKlass* ctxk = MethodHandles::get_call_site_context(call_site_oop); +- if (ctxk == NULL) { +- // The call site doesn't have a context associated. Set it to the default context. +- oop def_context_oop = java_lang_invoke_CallSite::default_context(); +- java_lang_invoke_CallSite::set_context_cas(call_site_oop, def_context_oop, /*expected=*/NULL); +- ctxk = MethodHandles::get_call_site_context(call_site_oop); +- } +- return (CURRENT_ENV->get_metadata(ctxk))->as_klass(); +-} +- +-// ------------------------------------------------------------------ + // ciCallSite::print + // + // Print debugging information about the CallSite. +diff --git a/hotspot/src/share/vm/ci/ciCallSite.hpp b/hotspot/src/share/vm/ci/ciCallSite.hpp +index 040e894d0..063f1e3a5 100644 +--- a/hotspot/src/share/vm/ci/ciCallSite.hpp ++++ b/hotspot/src/share/vm/ci/ciCallSite.hpp +@@ -43,7 +43,6 @@ public: + + // Return the target MethodHandle of this CallSite. + ciMethodHandle* get_target() const; +- ciKlass* get_context(); + + void print(); + }; +diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp +index 8b17c9b29..876c869d2 100644 +--- a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp ++++ b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp +@@ -485,8 +485,12 @@ int ciInstanceKlass::compute_nonstatic_fields() { + + if (fields == NULL) { + // This can happen if this class (java.lang.Class) has invisible fields. +- _nonstatic_fields = super_fields; +- return super_fields->length(); ++ if (super_fields != NULL) { ++ _nonstatic_fields = super_fields; ++ return super_fields->length(); ++ } else { ++ return 0; ++ } + } + + int flen = fields->length(); +diff --git a/hotspot/src/share/vm/classfile/javaClasses.cpp b/hotspot/src/share/vm/classfile/javaClasses.cpp +index fc4165b04..267bbacd3 100644 +--- a/hotspot/src/share/vm/classfile/javaClasses.cpp ++++ b/hotspot/src/share/vm/classfile/javaClasses.cpp +@@ -3004,48 +3004,43 @@ int java_lang_invoke_MethodType::rtype_slot_count(oop mt) { + + int java_lang_invoke_CallSite::_target_offset; + int java_lang_invoke_CallSite::_context_offset; +-int java_lang_invoke_CallSite::_default_context_offset; + + void java_lang_invoke_CallSite::compute_offsets() { + if (!EnableInvokeDynamic) return; + Klass* k = SystemDictionary::CallSite_klass(); + if (k != NULL) { + compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature()); +- compute_offset(_context_offset, k, vmSymbols::context_name(), vmSymbols::sun_misc_Cleaner_signature()); +- compute_offset(_default_context_offset, k, +- vmSymbols::DEFAULT_CONTEXT_name(), vmSymbols::sun_misc_Cleaner_signature(), +- /*is_static=*/true, /*allow_super=*/false); ++ compute_offset(_context_offset, k, vmSymbols::context_name(), ++ vmSymbols::java_lang_invoke_MethodHandleNatives_CallSiteContext_signature()); + } + } + +-oop java_lang_invoke_CallSite::context_volatile(oop call_site) { ++oop java_lang_invoke_CallSite::context(oop call_site) { + assert(java_lang_invoke_CallSite::is_instance(call_site), ""); + +- oop dep_oop = call_site->obj_field_volatile(_context_offset); ++ oop dep_oop = call_site->obj_field(_context_offset); + return dep_oop; + } + +-void java_lang_invoke_CallSite::set_context_volatile(oop call_site, oop context) { +- assert(java_lang_invoke_CallSite::is_instance(call_site), ""); +- call_site->obj_field_put_volatile(_context_offset, context); +-} ++// Support for java_lang_invoke_MethodHandleNatives_CallSiteContext + +-bool java_lang_invoke_CallSite::set_context_cas(oop call_site, oop context, oop expected) { +- assert(java_lang_invoke_CallSite::is_instance(call_site), ""); +- HeapWord* context_addr = call_site->obj_field_addr(_context_offset); +- oop res = oopDesc::atomic_compare_exchange_oop(context, context_addr, expected, true); +- bool success = (res == expected); +- if (success) { +- update_barrier_set((void*)context_addr, context); ++int java_lang_invoke_MethodHandleNatives_CallSiteContext::_vmdependencies_offset; ++ ++void java_lang_invoke_MethodHandleNatives_CallSiteContext::compute_offsets() { ++ Klass* k = SystemDictionary::Context_klass(); ++ if (k != NULL) { ++ CALLSITECONTEXT_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET); + } +- return success; + } + +-oop java_lang_invoke_CallSite::default_context() { +- InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::CallSite_klass()); +- oop def_context_oop = ik->java_mirror()->obj_field(_default_context_offset); +- assert(!oopDesc::is_null(def_context_oop), ""); +- return def_context_oop; ++nmethodBucket* java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(oop call_site) { ++ assert(java_lang_invoke_MethodHandleNatives_CallSiteContext::is_instance(call_site), ""); ++ return (nmethodBucket*) (address) call_site->long_field(_vmdependencies_offset); ++} ++ ++void java_lang_invoke_MethodHandleNatives_CallSiteContext::set_vmdependencies(oop call_site, nmethodBucket* context) { ++ assert(java_lang_invoke_MethodHandleNatives_CallSiteContext::is_instance(call_site), ""); ++ call_site->long_field_put(_vmdependencies_offset, (jlong) (address) context); + } + + // Support for java_security_AccessControlContext +@@ -3441,6 +3436,7 @@ void JavaClasses::compute_offsets() { + java_lang_invoke_LambdaForm::compute_offsets(); + java_lang_invoke_MethodType::compute_offsets(); + java_lang_invoke_CallSite::compute_offsets(); ++ java_lang_invoke_MethodHandleNatives_CallSiteContext::compute_offsets(); + } + java_security_AccessControlContext::compute_offsets(); + // Initialize reflection classes. The layouts of these classes +diff --git a/hotspot/src/share/vm/classfile/javaClasses.hpp b/hotspot/src/share/vm/classfile/javaClasses.hpp +index 35934319d..1eb04b968 100644 +--- a/hotspot/src/share/vm/classfile/javaClasses.hpp ++++ b/hotspot/src/share/vm/classfile/javaClasses.hpp +@@ -1213,8 +1213,6 @@ class java_lang_invoke_CallSite: AllStatic { + private: + static int _target_offset; + static int _context_offset; +- static int _default_context_offset; +- + + static void compute_offsets(); + +@@ -1225,11 +1223,8 @@ public: + + static volatile oop target_volatile(oop site) { return oop((oopDesc *)(site->obj_field_volatile(_target_offset))); } + static void set_target_volatile(oop site, oop target) { site->obj_field_put_volatile(_target_offset, target); } +- static oop context_volatile(oop site); +- static void set_context_volatile(oop site, oop context); +- static bool set_context_cas (oop site, oop context, oop expected); + +- static oop default_context(); ++ static oop context(oop site); + + // Testers + static bool is_subclass(Klass* klass) { +@@ -1243,6 +1238,33 @@ public: + static int target_offset_in_bytes() { return _target_offset; } + }; + ++// Interface to java.lang.invoke.MethodHandleNatives$CallSiteContext objects ++ ++#define CALLSITECONTEXT_INJECTED_FIELDS(macro) \ ++ macro(java_lang_invoke_MethodHandleNatives_CallSiteContext, vmdependencies, intptr_signature, false) ++ ++class java_lang_invoke_MethodHandleNatives_CallSiteContext : AllStatic { ++ friend class JavaClasses; ++ ++private: ++ static int _vmdependencies_offset; ++ ++ static void compute_offsets(); ++ ++public: ++ // Accessors ++ static nmethodBucket* vmdependencies(oop context); ++ static void set_vmdependencies(oop context, nmethodBucket* bucket); ++ ++ // Testers ++ static bool is_subclass(Klass* klass) { ++ return klass->is_subclass_of(SystemDictionary::Context_klass()); ++ } ++ static inline bool is_instance(oop obj) { ++ return obj != NULL && is_subclass(obj->klass()); ++ } ++}; ++ + // Interface to java.security.AccessControlContext objects + + class java_security_AccessControlContext: AllStatic { +@@ -1454,7 +1476,8 @@ class InjectedField { + #define ALL_INJECTED_FIELDS(macro) \ + CLASS_INJECTED_FIELDS(macro) \ + CLASSLOADER_INJECTED_FIELDS(macro) \ +- MEMBERNAME_INJECTED_FIELDS(macro) ++ MEMBERNAME_INJECTED_FIELDS(macro) \ ++ CALLSITECONTEXT_INJECTED_FIELDS(macro) + + // Interface to hard-coded offset checking + +diff --git a/hotspot/src/share/vm/classfile/systemDictionary.hpp b/hotspot/src/share/vm/classfile/systemDictionary.hpp +index 83ca3794b..ca91f53e7 100644 +--- a/hotspot/src/share/vm/classfile/systemDictionary.hpp ++++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp +@@ -159,6 +159,7 @@ class SymbolPropertyTable; + do_klass(MethodType_klass, java_lang_invoke_MethodType, Pre_JSR292 ) \ + do_klass(BootstrapMethodError_klass, java_lang_BootstrapMethodError, Pre_JSR292 ) \ + do_klass(CallSite_klass, java_lang_invoke_CallSite, Pre_JSR292 ) \ ++ do_klass(Context_klass, java_lang_invoke_MethodHandleNatives_CallSiteContext, Pre ) \ + do_klass(ConstantCallSite_klass, java_lang_invoke_ConstantCallSite, Pre_JSR292 ) \ + do_klass(MutableCallSite_klass, java_lang_invoke_MutableCallSite, Pre_JSR292 ) \ + do_klass(VolatileCallSite_klass, java_lang_invoke_VolatileCallSite, Pre_JSR292 ) \ +diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp +index f92b709ed..79f15589f 100644 +--- a/hotspot/src/share/vm/classfile/vmSymbols.hpp ++++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp +@@ -282,6 +282,7 @@ + /* internal classes known only to the JVM: */ \ + template(java_lang_invoke_MemberName, "java/lang/invoke/MemberName") \ + template(java_lang_invoke_MethodHandleNatives, "java/lang/invoke/MethodHandleNatives") \ ++ template(java_lang_invoke_MethodHandleNatives_CallSiteContext, "java/lang/invoke/MethodHandleNatives$CallSiteContext") \ + template(java_lang_invoke_LambdaForm, "java/lang/invoke/LambdaForm") \ + template(java_lang_invoke_ForceInline_signature, "Ljava/lang/invoke/ForceInline;") \ + template(java_lang_invoke_DontInline_signature, "Ljava/lang/invoke/DontInline;") \ +@@ -289,6 +290,7 @@ + template(java_lang_invoke_Stable_signature, "Ljava/lang/invoke/Stable;") \ + template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \ + template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \ ++ template(java_lang_invoke_MethodHandleNatives_CallSiteContext_signature, "Ljava/lang/invoke/MethodHandleNatives$CallSiteContext;") \ + /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \ + template(findMethodHandleType_name, "findMethodHandleType") \ + template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \ +@@ -411,7 +413,7 @@ + template(init_lock_name, "init_lock") \ + template(signers_name, "signers_name") \ + template(loader_data_name, "loader_data") \ +- template(dependencies_name, "dependencies") \ ++ template(vmdependencies_name, "vmdependencies") \ + template(input_stream_void_signature, "(Ljava/io/InputStream;)V") \ + template(getFileURL_name, "getFileURL") \ + template(getFileURL_signature, "(Ljava/io/File;)Ljava/net/URL;") \ +diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp +index decbce8be..52ed2f836 100644 +--- a/hotspot/src/share/vm/code/dependencies.cpp ++++ b/hotspot/src/share/vm/code/dependencies.cpp +@@ -123,9 +123,7 @@ void Dependencies::assert_has_no_finalizable_subclasses(ciKlass* ctxk) { + } + + void Dependencies::assert_call_site_target_value(ciCallSite* call_site, ciMethodHandle* method_handle) { +- ciKlass* ctxk = call_site->get_context(); +- check_ctxk(ctxk); +- assert_common_3(call_site_target_value, ctxk, call_site, method_handle); ++ assert_common_2(call_site_target_value, call_site, method_handle); + } + + // Helper function. If we are adding a new dep. under ctxk2, +@@ -181,7 +179,6 @@ void Dependencies::assert_common_2(DepType dept, + } + } + } else { +- assert(dep_implicit_context_arg(dept) == 0, "sanity"); + if (note_dep_seen(dept, x0) && note_dep_seen(dept, x1)) { + // look in this bucket for redundant assertions + const int stride = 2; +@@ -397,7 +394,7 @@ int Dependencies::_dep_args[TYPE_LIMIT] = { + 3, // unique_concrete_methods_2 ctxk, m1, m2 + 2, // unique_implementor ctxk, implementor + 1, // no_finalizable_subclasses ctxk +- 3 // call_site_target_value ctxk, call_site, method_handle ++ 2 // call_site_target_value call_site, method_handle + }; + + const char* Dependencies::dep_name(Dependencies::DepType dept) { +@@ -1648,16 +1645,11 @@ Klass* Dependencies::check_has_no_finalizable_subclasses(Klass* ctxk, KlassDepCh + return find_finalizable_subclass(search_at); + } + +-Klass* Dependencies::check_call_site_target_value(Klass* recorded_ctxk, oop call_site, oop method_handle, CallSiteDepChange* changes) { +- assert(call_site->is_a(SystemDictionary::CallSite_klass()), "sanity"); ++Klass* Dependencies::check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes) { ++ assert(!oopDesc::is_null(call_site), "sanity"); + assert(!oopDesc::is_null(method_handle), "sanity"); ++ assert(call_site->is_a(SystemDictionary::CallSite_klass()), "sanity"); + +- Klass* call_site_ctxk = MethodHandles::get_call_site_context(call_site); +- assert(!Klass::is_null(call_site_ctxk), "call site context should be initialized already"); +- if (recorded_ctxk != call_site_ctxk) { +- // Stale context +- return recorded_ctxk; +- } + if (changes == NULL) { + // Validate all CallSites + if (java_lang_invoke_CallSite::target(call_site) != method_handle) +@@ -1735,7 +1727,7 @@ Klass* Dependencies::DepStream::check_call_site_dependency(CallSiteDepChange* ch + Klass* witness = NULL; + switch (type()) { + case call_site_target_value: +- witness = check_call_site_target_value(context_type(), argument_oop(1), argument_oop(2), changes); ++ witness = check_call_site_target_value(argument_oop(0), argument_oop(1), changes); + break; + default: + witness = NULL; +diff --git a/hotspot/src/share/vm/code/dependencies.hpp b/hotspot/src/share/vm/code/dependencies.hpp +index da2201c3f..bbe140390 100644 +--- a/hotspot/src/share/vm/code/dependencies.hpp ++++ b/hotspot/src/share/vm/code/dependencies.hpp +@@ -175,7 +175,7 @@ class Dependencies: public ResourceObj { + non_klass_types = (1 << call_site_target_value), + klass_types = all_types & ~non_klass_types, + +- non_ctxk_types = (1 << evol_method), ++ non_ctxk_types = (1 << evol_method) | (1 << call_site_target_value), + implicit_ctxk_types = 0, + explicit_ctxk_types = all_types & ~(non_ctxk_types | implicit_ctxk_types), + +@@ -340,7 +340,7 @@ class Dependencies: public ResourceObj { + static Klass* check_exclusive_concrete_methods(Klass* ctxk, Method* m1, Method* m2, + KlassDepChange* changes = NULL); + static Klass* check_has_no_finalizable_subclasses(Klass* ctxk, KlassDepChange* changes = NULL); +- static Klass* check_call_site_target_value(Klass* recorded_ctxk, oop call_site, oop method_handle, CallSiteDepChange* changes = NULL); ++ static Klass* check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes = NULL); + // A returned Klass* is NULL if the dependency assertion is still + // valid. A non-NULL Klass* is a 'witness' to the assertion + // failure, a point in the class hierarchy where the assertion has +@@ -506,7 +506,7 @@ class Dependencies: public ResourceObj { + bool next(); + + DepType type() { return _type; } +- bool is_oop_argument(int i) { return type() == call_site_target_value && i > 0; } ++ bool is_oop_argument(int i) { return type() == call_site_target_value; } + int argument_count() { return dep_args(type()); } + int argument_index(int i) { assert(0 <= i && i < argument_count(), "oob"); + return _xi[i]; } +diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp +index 01e878022..ba5116575 100644 +--- a/hotspot/src/share/vm/code/nmethod.cpp ++++ b/hotspot/src/share/vm/code/nmethod.cpp +@@ -629,13 +629,18 @@ nmethod* nmethod::new_nmethod(methodHandle method, + // the number of methods compiled. For applications with a lot + // classes the slow way is too slow. + for (Dependencies::DepStream deps(nm); deps.next(); ) { +- Klass* klass = deps.context_type(); +- if (klass == NULL) { +- continue; // ignore things like evol_method ++ if (deps.type() == Dependencies::call_site_target_value) { ++ // CallSite dependencies are managed on per-CallSite instance basis. ++ oop call_site = deps.argument_oop(0); ++ MethodHandles::add_dependent_nmethod(call_site, nm); ++ } else { ++ Klass* klass = deps.context_type(); ++ if (klass == NULL) { ++ continue; // ignore things like evol_method ++ } ++ // record this nmethod as dependent on this klass ++ InstanceKlass::cast(klass)->add_dependent_nmethod(nm); + } +- +- // record this nmethod as dependent on this klass +- InstanceKlass::cast(klass)->add_dependent_nmethod(nm); + } + NOT_PRODUCT(nmethod_stats.note_nmethod(nm)); + if (PrintAssembly || CompilerOracle::has_option_string(method, "PrintAssembly")) { +@@ -1617,17 +1622,24 @@ void nmethod::flush_dependencies(BoolObjectClosure* is_alive) { + if (!has_flushed_dependencies()) { + set_has_flushed_dependencies(); + for (Dependencies::DepStream deps(this); deps.next(); ) { +- Klass* klass = deps.context_type(); +- if (klass == NULL) continue; // ignore things like evol_method +- +- // During GC the is_alive closure is non-NULL, and is used to +- // determine liveness of dependees that need to be updated. +- if (is_alive == NULL || klass->is_loader_alive(is_alive)) { +- // The GC defers deletion of this entry, since there might be multiple threads +- // iterating over the _dependencies graph. Other call paths are single-threaded +- // and may delete it immediately. +- bool delete_immediately = is_alive == NULL; +- InstanceKlass::cast(klass)->remove_dependent_nmethod(this, delete_immediately); ++ if (deps.type() == Dependencies::call_site_target_value) { ++ // CallSite dependencies are managed on per-CallSite instance basis. ++ oop call_site = deps.argument_oop(0); ++ MethodHandles::remove_dependent_nmethod(call_site, this); ++ } else { ++ Klass* klass = deps.context_type(); ++ if (klass == NULL) { ++ continue; // ignore things like evol_method ++ } ++ // During GC the is_alive closure is non-NULL, and is used to ++ // determine liveness of dependees that need to be updated. ++ if (is_alive == NULL || klass->is_loader_alive(is_alive)) { ++ // The GC defers deletion of this entry, since there might be multiple threads ++ // iterating over the _dependencies graph. Other call paths are single-threaded ++ // and may delete it immediately. ++ bool delete_immediately = is_alive == NULL; ++ InstanceKlass::cast(klass)->remove_dependent_nmethod(this, delete_immediately); ++ } + } + } + } +diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp +index 7028d378e..d76a10d14 100644 +--- a/hotspot/src/share/vm/memory/universe.cpp ++++ b/hotspot/src/share/vm/memory/universe.cpp +@@ -1213,40 +1213,6 @@ void Universe::flush_dependents_on(instanceKlassHandle dependee) { + } + } + +-// Flushes compiled methods dependent on a particular CallSite +-// instance when its target is different than the given MethodHandle. +-void Universe::flush_dependents_on(Handle call_site, Handle method_handle) { +- assert_lock_strong(Compile_lock); +- +- if (CodeCache::number_of_nmethods_with_dependencies() == 0) return; +- +- // CodeCache can only be updated by a thread_in_VM and they will all be +- // stopped dring the safepoint so CodeCache will be safe to update without +- // holding the CodeCache_lock. +- +- CallSiteDepChange changes(call_site(), method_handle()); +- +- // Compute the dependent nmethods that have a reference to a +- // CallSite object. We use InstanceKlass::mark_dependent_nmethod +- // directly instead of CodeCache::mark_for_deoptimization because we +- // want dependents on the call site class only not all classes in +- // the ContextStream. +- int marked = 0; +- { +- MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); +- InstanceKlass* ctxk = MethodHandles::get_call_site_context(call_site()); +- if (ctxk == NULL) { +- return; // No dependencies to invalidate yet. +- } +- marked = ctxk->mark_dependent_nmethods(changes); +- } +- if (marked > 0) { +- // At least one nmethod has been marked for deoptimization +- VM_Deoptimize op; +- VMThread::execute(&op); +- } +-} +- + #ifdef HOTSWAP + // Flushes compiled methods dependent on dependee in the evolutionary sense + void Universe::flush_evol_dependents_on(instanceKlassHandle ev_k_h) { +diff --git a/hotspot/src/share/vm/memory/universe.hpp b/hotspot/src/share/vm/memory/universe.hpp +index dbba5a021..88ad002fa 100644 +--- a/hotspot/src/share/vm/memory/universe.hpp ++++ b/hotspot/src/share/vm/memory/universe.hpp +@@ -475,7 +475,6 @@ class Universe: AllStatic { + + // Flushing and deoptimization + static void flush_dependents_on(instanceKlassHandle dependee); +- static void flush_dependents_on(Handle call_site, Handle method_handle); + #ifdef HOTSWAP + // Flushing and deoptimization in case of evolution + static void flush_evol_dependents_on(instanceKlassHandle dependee); +diff --git a/hotspot/src/share/vm/oops/instanceKlass.cpp b/hotspot/src/share/vm/oops/instanceKlass.cpp +index 00aea4377..ce297b681 100644 +--- a/hotspot/src/share/vm/oops/instanceKlass.cpp ++++ b/hotspot/src/share/vm/oops/instanceKlass.cpp +@@ -2102,11 +2102,10 @@ int nmethodBucket::decrement() { + // are dependent on the changes that were passed in and mark them for + // deoptimization. Returns the number of nmethods found. + // +-int InstanceKlass::mark_dependent_nmethods(DepChange& changes) { ++int nmethodBucket::mark_dependent_nmethods(nmethodBucket* deps, DepChange& changes) { + assert_locked_or_safepoint(CodeCache_lock); + int found = 0; +- nmethodBucket* b = _dependencies; +- while (b != NULL) { ++ for (nmethodBucket* b = deps; b != NULL; b = b->next()) { + nmethod* nm = b->get_nmethod(); + // since dependencies aren't removed until an nmethod becomes a zombie, + // the dependency list may contain nmethods which aren't alive. +@@ -2114,7 +2113,6 @@ int InstanceKlass::mark_dependent_nmethods(DepChange& changes) { + if (TraceDependencies) { + ResourceMark rm; + tty->print_cr("Marked for deoptimization"); +- tty->print_cr(" context = %s", this->external_name()); + changes.print(); + nm->print(); + nm->print_dependencies(); +@@ -2122,115 +2120,102 @@ int InstanceKlass::mark_dependent_nmethods(DepChange& changes) { + nm->mark_for_deoptimization(); + found++; + } +- b = b->next(); + } + return found; + } + +-void InstanceKlass::clean_dependent_nmethods() { +- assert_locked_or_safepoint(CodeCache_lock); +- +- if (has_unloaded_dependent()) { +- nmethodBucket* b = _dependencies; +- nmethodBucket* last = NULL; +- while (b != NULL) { +- assert(b->count() >= 0, err_msg("bucket count: %d", b->count())); +- +- nmethodBucket* next = b->next(); +- +- if (b->count() == 0) { +- if (last == NULL) { +- _dependencies = next; +- } else { +- last->set_next(next); +- } +- delete b; +- // last stays the same. +- } else { +- last = b; +- } +- +- b = next; +- } +- set_has_unloaded_dependent(false); +- } +-#ifdef ASSERT +- else { +- // Verification +- for (nmethodBucket* b = _dependencies; b != NULL; b = b->next()) { +- assert(b->count() >= 0, err_msg("bucket count: %d", b->count())); +- assert(b->count() != 0, "empty buckets need to be cleaned"); +- } +- } +-#endif +-} +- + // + // Add an nmethodBucket to the list of dependencies for this nmethod. + // It's possible that an nmethod has multiple dependencies on this klass + // so a count is kept for each bucket to guarantee that creation and +-// deletion of dependencies is consistent. ++// deletion of dependencies is consistent. Returns new head of the list. + // +-void InstanceKlass::add_dependent_nmethod(nmethod* nm) { ++nmethodBucket* nmethodBucket::add_dependent_nmethod(nmethodBucket* deps, nmethod* nm) { + assert_locked_or_safepoint(CodeCache_lock); +- nmethodBucket* b = _dependencies; +- nmethodBucket* last = NULL; +- while (b != NULL) { ++ for (nmethodBucket* b = deps; b != NULL; b = b->next()) { + if (nm == b->get_nmethod()) { + b->increment(); +- return; ++ return deps; + } +- b = b->next(); + } +- _dependencies = new nmethodBucket(nm, _dependencies); ++ return new nmethodBucket(nm, deps); + } + +- + // + // Decrement count of the nmethod in the dependency list and remove +-// the bucket competely when the count goes to 0. This method must ++// the bucket completely when the count goes to 0. This method must + // find a corresponding bucket otherwise there's a bug in the +-// recording of dependecies. +-// +-void InstanceKlass::remove_dependent_nmethod(nmethod* nm, bool delete_immediately) { ++// recording of dependencies. Returns true if the bucket was deleted, ++// or marked ready for reclaimation. ++bool nmethodBucket::remove_dependent_nmethod(nmethodBucket** deps, nmethod* nm, bool delete_immediately) { + assert_locked_or_safepoint(CodeCache_lock); +- nmethodBucket* b = _dependencies; ++ ++ nmethodBucket* first = *deps; + nmethodBucket* last = NULL; +- while (b != NULL) { ++ for (nmethodBucket* b = first; b != NULL; b = b->next()) { + if (nm == b->get_nmethod()) { + int val = b->decrement(); + guarantee(val >= 0, err_msg("Underflow: %d", val)); + if (val == 0) { + if (delete_immediately) { + if (last == NULL) { +- _dependencies = b->next(); ++ *deps = b->next(); + } else { + last->set_next(b->next()); + } + delete b; +- } else { +- // The deletion of this entry is deferred until a later, potentially parallel GC phase. +- set_has_unloaded_dependent(true); + } + } +- return; ++ return true; + } + last = b; +- b = b->next(); + } ++ + #ifdef ASSERT +- tty->print_cr("### %s can't find dependent nmethod:", this->external_name()); ++ tty->print_raw_cr("### can't find dependent nmethod"); + nm->print(); + #endif // ASSERT + ShouldNotReachHere(); ++ return false; + } + ++// Convenience overload, for callers that don't want to delete the nmethodBucket entry. ++bool nmethodBucket::remove_dependent_nmethod(nmethodBucket* deps, nmethod* nm) { ++ nmethodBucket** deps_addr = &deps; ++ return remove_dependent_nmethod(deps_addr, nm, false /* Don't delete */); ++} ++ ++// ++// Reclaim all unused buckets. Returns new head of the list. ++// ++nmethodBucket* nmethodBucket::clean_dependent_nmethods(nmethodBucket* deps) { ++ nmethodBucket* first = deps; ++ nmethodBucket* last = NULL; ++ nmethodBucket* b = first; ++ ++ while (b != NULL) { ++ assert(b->count() >= 0, err_msg("bucket count: %d", b->count())); ++ nmethodBucket* next = b->next(); ++ if (b->count() == 0) { ++ if (last == NULL) { ++ first = next; ++ } else { ++ last->set_next(next); ++ } ++ delete b; ++ // last stays the same. ++ } else { ++ last = b; ++ } ++ b = next; ++ } ++ return first; ++} + + #ifndef PRODUCT +-void InstanceKlass::print_dependent_nmethods(bool verbose) { +- nmethodBucket* b = _dependencies; ++void nmethodBucket::print_dependent_nmethods(nmethodBucket* deps, bool verbose) { + int idx = 0; +- while (b != NULL) { ++ for (nmethodBucket* b = deps; b != NULL; b = b->next()) { + nmethod* nm = b->get_nmethod(); + tty->print("[%d] count=%d { ", idx++, b->count()); + if (!verbose) { +@@ -2241,14 +2226,11 @@ void InstanceKlass::print_dependent_nmethods(bool verbose) { + nm->print_dependencies(); + tty->print_cr("--- } "); + } +- b = b->next(); + } + } + +- +-bool InstanceKlass::is_dependent_nmethod(nmethod* nm) { +- nmethodBucket* b = _dependencies; +- while (b != NULL) { ++bool nmethodBucket::is_dependent_nmethod(nmethodBucket* deps, nmethod* nm) { ++ for (nmethodBucket* b = deps; b != NULL; b = b->next()) { + if (nm == b->get_nmethod()) { + #ifdef ASSERT + int count = b->count(); +@@ -2256,12 +2238,58 @@ bool InstanceKlass::is_dependent_nmethod(nmethod* nm) { + #endif + return true; + } +- b = b->next(); + } + return false; + } + #endif //PRODUCT + ++int InstanceKlass::mark_dependent_nmethods(DepChange& changes) { ++ assert_locked_or_safepoint(CodeCache_lock); ++ return nmethodBucket::mark_dependent_nmethods(_dependencies, changes); ++} ++ ++void InstanceKlass::clean_dependent_nmethods() { ++ assert_locked_or_safepoint(CodeCache_lock); ++ ++ if (has_unloaded_dependent()) { ++ _dependencies = nmethodBucket::clean_dependent_nmethods(_dependencies); ++ set_has_unloaded_dependent(false); ++ } ++#ifdef ASSERT ++ else { ++ // Verification ++ for (nmethodBucket* b = _dependencies; b != NULL; b = b->next()) { ++ assert(b->count() >= 0, err_msg("bucket count: %d", b->count())); ++ assert(b->count() != 0, "empty buckets need to be cleaned"); ++ } ++ } ++#endif ++} ++ ++void InstanceKlass::add_dependent_nmethod(nmethod* nm) { ++ assert_locked_or_safepoint(CodeCache_lock); ++ _dependencies = nmethodBucket::add_dependent_nmethod(_dependencies, nm); ++} ++ ++void InstanceKlass::remove_dependent_nmethod(nmethod* nm, bool delete_immediately) { ++ assert_locked_or_safepoint(CodeCache_lock); ++ ++ if (nmethodBucket::remove_dependent_nmethod(&_dependencies, nm, delete_immediately)) { ++ set_has_unloaded_dependent(true); ++ } ++} ++ ++#ifndef PRODUCT ++void InstanceKlass::print_dependent_nmethods(bool verbose) { ++ nmethodBucket::print_dependent_nmethods(_dependencies, verbose); ++} ++ ++ ++bool InstanceKlass::is_dependent_nmethod(nmethod* nm) { ++ return nmethodBucket::is_dependent_nmethod(_dependencies, nm); ++} ++#endif //PRODUCT ++ + + // Garbage collection + +diff --git a/hotspot/src/share/vm/oops/instanceKlass.hpp b/hotspot/src/share/vm/oops/instanceKlass.hpp +index 973480341..9750ae56d 100644 +--- a/hotspot/src/share/vm/oops/instanceKlass.hpp ++++ b/hotspot/src/share/vm/oops/instanceKlass.hpp +@@ -1288,6 +1288,16 @@ class nmethodBucket: public CHeapObj { + nmethodBucket* next() { return _next; } + void set_next(nmethodBucket* b) { _next = b; } + nmethod* get_nmethod() { return _nmethod; } ++ ++ static int mark_dependent_nmethods(nmethodBucket* deps, DepChange& changes); ++ static nmethodBucket* add_dependent_nmethod(nmethodBucket* deps, nmethod* nm); ++ static bool remove_dependent_nmethod(nmethodBucket** deps, nmethod* nm, bool delete_immediately); ++ static bool remove_dependent_nmethod(nmethodBucket* deps, nmethod* nm); ++ static nmethodBucket* clean_dependent_nmethods(nmethodBucket* deps); ++#ifndef PRODUCT ++ static void print_dependent_nmethods(nmethodBucket* deps, bool verbose); ++ static bool is_dependent_nmethod(nmethodBucket* deps, nmethod* nm); ++#endif //PRODUCT + }; + + // An iterator that's used to access the inner classes indices in the +diff --git a/hotspot/src/share/vm/prims/methodHandles.cpp b/hotspot/src/share/vm/prims/methodHandles.cpp +index c1cbabec2..abd7c0b42 100644 +--- a/hotspot/src/share/vm/prims/methodHandles.cpp ++++ b/hotspot/src/share/vm/prims/methodHandles.cpp +@@ -946,22 +946,56 @@ int MethodHandles::find_MemberNames(KlassHandle k, + return rfill + overflow; + } + +-// Get context class for a CallSite instance: either extract existing context or use default one. +-InstanceKlass* MethodHandles::get_call_site_context(oop call_site) { +- // In order to extract a context the following traversal is performed: +- // CallSite.context => Cleaner.referent => Class._klass => Klass +- assert(java_lang_invoke_CallSite::is_instance(call_site), ""); +- oop context_oop = java_lang_invoke_CallSite::context_volatile(call_site); +- if (oopDesc::is_null(context_oop)) { +- return NULL; // The context hasn't been initialized yet. ++void MethodHandles::add_dependent_nmethod(oop call_site, nmethod* nm) { ++ assert_locked_or_safepoint(CodeCache_lock); ++ ++ oop context = java_lang_invoke_CallSite::context(call_site); ++ nmethodBucket* deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context); ++ ++ nmethodBucket* new_deps = nmethodBucket::add_dependent_nmethod(deps, nm); ++ if (deps != new_deps) { ++ java_lang_invoke_MethodHandleNatives_CallSiteContext::set_vmdependencies(context, new_deps); + } +- oop context_class_oop = java_lang_ref_Reference::referent(context_oop); +- if (oopDesc::is_null(context_class_oop)) { +- // The context reference was cleared by GC, so current dependency context +- // isn't usable anymore. Context should be fetched from CallSite again. +- return NULL; ++} ++ ++void MethodHandles::remove_dependent_nmethod(oop call_site, nmethod* nm) { ++ assert_locked_or_safepoint(CodeCache_lock); ++ ++ oop context = java_lang_invoke_CallSite::context(call_site); ++ nmethodBucket* deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context); ++ ++ if (nmethodBucket::remove_dependent_nmethod(deps, nm)) { ++ nmethodBucket* new_deps = nmethodBucket::clean_dependent_nmethods(deps); ++ if (deps != new_deps) { ++ java_lang_invoke_MethodHandleNatives_CallSiteContext::set_vmdependencies(context, new_deps); ++ } ++ } ++} ++ ++void MethodHandles::flush_dependent_nmethods(Handle call_site, Handle target) { ++ assert_lock_strong(Compile_lock); ++ ++ int marked = 0; ++ CallSiteDepChange changes(call_site(), target()); ++ { ++ MutexLockerEx mu2(CodeCache_lock, Mutex::_no_safepoint_check_flag); ++ ++ oop context = java_lang_invoke_CallSite::context(call_site()); ++ nmethodBucket* deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context); ++ ++ marked = nmethodBucket::mark_dependent_nmethods(deps, changes); ++ if (marked > 0) { ++ nmethodBucket* new_deps = nmethodBucket::clean_dependent_nmethods(deps); ++ if (deps != new_deps) { ++ java_lang_invoke_MethodHandleNatives_CallSiteContext::set_vmdependencies(context, new_deps); ++ } ++ } ++ } ++ if (marked > 0) { ++ // At least one nmethod has been marked for deoptimization ++ VM_Deoptimize op; ++ VMThread::execute(&op); + } +- return InstanceKlass::cast(java_lang_Class::as_Klass(context_class_oop)); + } + + //------------------------------------------------------------------------------ +@@ -1327,7 +1361,7 @@ JVM_ENTRY(void, MHN_setCallSiteTargetNormal(JNIEnv* env, jobject igcls, jobject + { + // Walk all nmethods depending on this call site. + MutexLocker mu(Compile_lock, thread); +- Universe::flush_dependents_on(call_site, target); ++ MethodHandles::flush_dependent_nmethods(call_site, target); + java_lang_invoke_CallSite::set_target(call_site(), target()); + } + } +@@ -1339,30 +1373,34 @@ JVM_ENTRY(void, MHN_setCallSiteTargetVolatile(JNIEnv* env, jobject igcls, jobjec + { + // Walk all nmethods depending on this call site. + MutexLocker mu(Compile_lock, thread); +- Universe::flush_dependents_on(call_site, target); ++ MethodHandles::flush_dependent_nmethods(call_site, target); + java_lang_invoke_CallSite::set_target_volatile(call_site(), target()); + } + } + JVM_END + +-JVM_ENTRY(void, MHN_invalidateDependentNMethods(JNIEnv* env, jobject igcls, jobject call_site_jh)) { +- Handle call_site(THREAD, JNIHandles::resolve_non_null(call_site_jh)); ++JVM_ENTRY(void, MHN_clearCallSiteContext(JNIEnv* env, jobject igcls, jobject context_jh)) { ++ Handle context(THREAD, JNIHandles::resolve_non_null(context_jh)); + { + // Walk all nmethods depending on this call site. + MutexLocker mu1(Compile_lock, thread); + +- CallSiteDepChange changes(call_site(), Handle()); +- +- InstanceKlass* ctxk = MethodHandles::get_call_site_context(call_site()); +- if (ctxk == NULL) { +- return; // No dependencies to invalidate yet. +- } + int marked = 0; + { + MutexLockerEx mu2(CodeCache_lock, Mutex::_no_safepoint_check_flag); +- marked = ctxk->mark_dependent_nmethods(changes); ++ nmethodBucket* b = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context()); ++ while(b != NULL) { ++ nmethod* nm = b->get_nmethod(); ++ if (b->count() > 0 && nm->is_alive() && !nm->is_marked_for_deoptimization()) { ++ nm->mark_for_deoptimization(); ++ marked++; ++ } ++ nmethodBucket* next = b->next(); ++ delete b; ++ b = next; ++ } ++ java_lang_invoke_MethodHandleNatives_CallSiteContext::set_vmdependencies(context(), NULL); // reset context + } +- java_lang_invoke_CallSite::set_context_volatile(call_site(), NULL); // Reset call site to initial state + if (marked > 0) { + // At least one nmethod has been marked for deoptimization + VM_Deoptimize op; +@@ -1408,6 +1446,7 @@ JVM_END + #define MT JLINV "MethodType;" + #define MH JLINV "MethodHandle;" + #define MEM JLINV "MemberName;" ++#define CTX JLINV"MethodHandleNatives$CallSiteContext;" + + #define CC (char*) /*cast a literal from (const char*)*/ + #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f) +@@ -1426,7 +1465,7 @@ static JNINativeMethod MHN_methods[] = { + {CC "objectFieldOffset", CC "(" MEM ")J", FN_PTR(MHN_objectFieldOffset)}, + {CC "setCallSiteTargetNormal", CC "(" CS "" MH ")V", FN_PTR(MHN_setCallSiteTargetNormal)}, + {CC "setCallSiteTargetVolatile", CC "(" CS "" MH ")V", FN_PTR(MHN_setCallSiteTargetVolatile)}, +- {CC"invalidateDependentNMethods", CC"("CS")V", FN_PTR(MHN_invalidateDependentNMethods)}, ++ {CC"clearCallSiteContext", CC "(" CTX ")V", FN_PTR(MHN_clearCallSiteContext)}, + {CC "staticFieldOffset", CC "(" MEM ")J", FN_PTR(MHN_staticFieldOffset)}, + {CC "staticFieldBase", CC "(" MEM ")" OBJ, FN_PTR(MHN_staticFieldBase)}, + {CC "getMemberVMInfo", CC "(" MEM ")" OBJ, FN_PTR(MHN_getMemberVMInfo)} +diff --git a/hotspot/src/share/vm/prims/methodHandles.hpp b/hotspot/src/share/vm/prims/methodHandles.hpp +index 4b6af60df..71508d215 100644 +--- a/hotspot/src/share/vm/prims/methodHandles.hpp ++++ b/hotspot/src/share/vm/prims/methodHandles.hpp +@@ -69,7 +69,10 @@ class MethodHandles: AllStatic { + enum { _suppress_defc = 1, _suppress_name = 2, _suppress_type = 4 }; + + // CallSite support +- static InstanceKlass* get_call_site_context(oop call_site); ++ static void add_dependent_nmethod(oop call_site, nmethod* nm); ++ static void remove_dependent_nmethod(oop call_site, nmethod* nm); ++ ++ static void flush_dependent_nmethods(Handle call_site, Handle target); + + // Generate MethodHandles adapters. + static void generate_adapters(); +diff --git a/hotspot/test/compiler/jsr292/CallSiteDepContextTest.java b/hotspot/test/compiler/jsr292/CallSiteDepContextTest.java +index 11e46ed03..d65bf4242 100644 +--- a/hotspot/test/compiler/jsr292/CallSiteDepContextTest.java ++++ b/hotspot/test/compiler/jsr292/CallSiteDepContextTest.java +@@ -24,11 +24,15 @@ + /** + * @test + * @bug 8057967 +- * @run main/bootclasspath -Xbatch java.lang.invoke.CallSiteDepContextTest ++ * @run main/bootclasspath/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:+TraceClassUnloading ++ * -XX:+PrintCompilation -XX:+TraceDependencies -XX:+TraceReferenceGC ++ * -verbose:gc java.lang.invoke.CallSiteDepContextTest + */ + package java.lang.invoke; + + import java.lang.ref.*; ++import java.lang.reflect.Field; ++ + import jdk.internal.org.objectweb.asm.*; + import sun.misc.Unsafe; + +@@ -95,6 +99,13 @@ public class CallSiteDepContextTest { + } + } + ++ public static void testHiddenDepField() throws Exception { ++ try { ++ Field f = MethodHandleNatives.CallSiteContext.class.getDeclaredField("vmdependencies"); ++ throw new AssertionError("Context.dependencies field should be hidden"); ++ } catch(NoSuchFieldException e) { /* expected */ } ++ } ++ + public static void testSharedCallSite() throws Throwable { + Class cls1 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("CS_1"), null); + Class cls2 = UNSAFE.defineAnonymousClass(Object.class, getClassFile("CS_2"), null); +@@ -131,12 +142,14 @@ public class CallSiteDepContextTest { + static ReferenceQueue rq = new ReferenceQueue(); + static PhantomReference ref; + +- public static void testGC() throws Throwable { ++ public static void testGC(boolean clear, boolean precompile) throws Throwable { ++ String id = "_" + clear + "_" + precompile; ++ + mcs = new MutableCallSite(LOOKUP.findStatic(T.class, "f1", TYPE)); + + Class[] cls = new Class[] { +- UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_1"), null), +- UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_2"), null), ++ UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_1" + id), null), ++ UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_2" + id), null), + }; + + MethodHandle[] mhs = new MethodHandle[] { +@@ -150,30 +163,38 @@ public class CallSiteDepContextTest { + execute(1, mhs); + + ref = new PhantomReference<>(cls[0], rq); +- cls[0] = UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_3"), null); ++ cls[0] = UNSAFE.defineAnonymousClass(Object.class, getClassFile("GC_3" + id), null); + mhs[0] = LOOKUP.findStatic(cls[0], METHOD_NAME, TYPE); + + do { + System.gc(); + try { +- Reference ref1 = rq.remove(1000); ++ Reference ref1 = rq.remove(100); + if (ref1 == ref) { +- ref1.clear(); +- System.gc(); // Ensure that the stale context is cleared + break; + } + } catch(InterruptedException e) { /* ignore */ } + } while (true); + +- execute(1, mhs); ++ if (clear) { ++ ref.clear(); ++ System.gc(); // Ensure that the stale context is unloaded ++ } ++ if (precompile) { ++ execute(1, mhs); ++ } + mcs.setTarget(LOOKUP.findStatic(T.class, "f2", TYPE)); + execute(2, mhs); + } + + public static void main(String[] args) throws Throwable { ++ testHiddenDepField(); + testSharedCallSite(); + testNonBoundCallSite(); +- testGC(); ++ testGC(false, false); ++ testGC(false, true); ++ testGC( true, false); ++ testGC( true, true); + System.out.println("TEST PASSED"); + } + } +diff --git a/jdk/src/share/classes/java/lang/invoke/CallSite.java b/jdk/src/share/classes/java/lang/invoke/CallSite.java +index 11e452b96..13cf24ca0 100644 +--- a/jdk/src/share/classes/java/lang/invoke/CallSite.java ++++ b/jdk/src/share/classes/java/lang/invoke/CallSite.java +@@ -27,8 +27,6 @@ package java.lang.invoke; + + import static java.lang.invoke.MethodHandleStatics.*; + import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP; +-import java.lang.reflect.Field; +-import sun.misc.Cleaner; + + /** + * A {@code CallSite} is a holder for a variable {@link MethodHandle}, +@@ -138,47 +136,9 @@ public class CallSite { + + /** + * {@code CallSite} dependency context. +- * VM uses context class to store nmethod dependencies on the call site target. +- * Can be in 2 states: (a) null; or (b) {@code Cleaner} instance pointing to some Class instance. +- * Lazily initialized when CallSite instance is linked to some indy call site or VM needs +- * it to store dependencies. As a corollary, "null" context means there are no dependencies +- * registered yet. {@code Cleaner} is used in 2 roles: +- * (a) context class access for VM; +- * (b) stale context class cleanup. +- * {@code Cleaner} holds the context class until cleanup action is finished (see {@code PhantomReference}). +- * Though it's impossible to get the context class using {@code Reference.get()}, VM extracts it directly +- * from {@code Reference.referent} field. ++ * JVM uses CallSite.context to store nmethod dependencies on the call site target. + */ +- private volatile Cleaner context = null; +- +- /** +- * Default context. +- * VM uses it to initialize non-linked CallSite context. +- */ +- private static class DefaultContext {} +- private static final Cleaner DEFAULT_CONTEXT = makeContext(DefaultContext.class, null); +- +- private static Cleaner makeContext(Class referent, final CallSite holder) { +- return Cleaner.create(referent, +- new Runnable() { +- @Override public void run() { +- MethodHandleNatives.invalidateDependentNMethods(holder); +- } +- }); +- } +- +- /** Initialize context class used for nmethod dependency tracking */ +- /*package-private*/ +- void initContext(Class newContext) { +- // If there are concurrent actions, exactly one succeeds. +- if (context == null) { +- UNSAFE.compareAndSwapObject(this, CONTEXT_OFFSET, /*expected=*/null, makeContext(newContext, this)); +- // No need to care about failed CAS attempt. +- // Since initContext is called from indy call site linkage in newContext class, there's no risk +- // that the context class becomes dead while corresponding context cleaner is alive (causing cleanup +- // action in the wrong context). +- } +- } ++ private final MethodHandleNatives.CallSiteContext context = MethodHandleNatives.CallSiteContext.make(this); + + /** + * Returns the type of this call site's target. +diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java b/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java +index 9a1343c50..899a409e4 100644 +--- a/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java ++++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java +@@ -30,6 +30,7 @@ import java.lang.reflect.Field; + import static java.lang.invoke.MethodHandleNatives.Constants.*; + import static java.lang.invoke.MethodHandleStatics.*; + import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP; ++import sun.misc.Cleaner; + + /** + * The JVM interface for the method handles package is all here. +@@ -71,8 +72,27 @@ class MethodHandleNatives { + static native void setCallSiteTargetNormal(CallSite site, MethodHandle target); + static native void setCallSiteTargetVolatile(CallSite site, MethodHandle target); + +- /** Invalidate CallSite context: clean up dependent nmethods and reset call site context to initial state (null). */ +- static native void invalidateDependentNMethods(CallSite site); ++ /** Represents a context to track nmethod dependencies on CallSite instance target. */ ++ static class CallSiteContext implements Runnable { ++ //@Injected JVM_nmethodBucket* vmdependencies; ++ ++ static CallSiteContext make(CallSite cs) { ++ final CallSiteContext newContext = new CallSiteContext(); ++ // Cleaner is attached to CallSite instance and it clears native structures allocated for CallSite context. ++ // Though the CallSite can become unreachable, its Context is retained by the Cleaner instance (which is ++ // referenced from Cleaner class) until cleanup is performed. ++ Cleaner.create(cs, newContext); ++ return newContext; ++ } ++ ++ @Override ++ public void run() { ++ MethodHandleNatives.clearCallSiteContext(this); ++ } ++ } ++ ++ /** Invalidate all recorded nmethods. */ ++ private static native void clearCallSiteContext(CallSiteContext context); + + private static native void registerNatives(); + static { +@@ -317,7 +337,6 @@ class MethodHandleNatives { + return Invokers.linkToTargetMethod(type); + } else { + appendixResult[0] = callSite; +- callSite.initContext(caller); + return Invokers.linkToCallSiteMethod(type); + } + } +-- +2.12.3 + diff --git a/8148470-Metadata-print-routines-should-not-print-to-.patch b/8148470-Metadata-print-routines-should-not-print-to-.patch new file mode 100644 index 0000000000000000000000000000000000000000..501cb3c8501c91e651f2f0627afbc2edac793066 --- /dev/null +++ b/8148470-Metadata-print-routines-should-not-print-to-.patch @@ -0,0 +1,29 @@ +From 42bb9ed9c5d4b0c8b07fb184ce1ab26718b376a5 Mon Sep 17 00:00:00 2001 +Subject: 8148470: Metadata print routines should not print to tty +--- + hotspot/src/share/vm/oops/metadata.hpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hotspot/src/share/vm/oops/metadata.hpp b/hotspot/src/share/vm/oops/metadata.hpp +index 372faa953..34dd66afd 100644 +--- a/hotspot/src/share/vm/oops/metadata.hpp ++++ b/hotspot/src/share/vm/oops/metadata.hpp +@@ -60,13 +60,13 @@ class Metadata : public MetaspaceObj { + if (this == NULL) + st->print("NULL"); + else +- print_on(tty); ++ print_on(st); + } + void print_value_on_maybe_null(outputStream* st) const { + if (this == NULL) + st->print("NULL"); + else +- print_value_on(tty); ++ print_value_on(st); + } + + virtual void print_on(outputStream* st) const; // First level print +-- +2.22.0 + diff --git a/8159720-Failure-of-C2-compilation-with-tiered-preven.patch b/8159720-Failure-of-C2-compilation-with-tiered-preven.patch deleted file mode 100644 index a52d0c90a81ef183ecc162b86487ce0d0e75d5b2..0000000000000000000000000000000000000000 --- a/8159720-Failure-of-C2-compilation-with-tiered-preven.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 717ae5f43045b1e2d6f95c52fbd81c54ebf50977 Mon Sep 17 00:00:00 2001 -Date: Fri, 16 Sep 2022 01:12:20 +0000 -Subject: 8159720: Failure of C2 compilation with tiered prevents some - C1 compilations. - ---- - hotspot/src/share/vm/opto/compile.cpp | 2 +- - hotspot/src/share/vm/opto/compile.hpp | 10 +++------- - hotspot/src/share/vm/opto/matcher.cpp | 8 ++++---- - hotspot/src/share/vm/opto/parse1.cpp | 4 ++-- - 4 files changed, 10 insertions(+), 14 deletions(-) - -diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp -index 5a42422e1..4a32e8a9f 100644 ---- a/hotspot/src/share/vm/opto/compile.cpp -+++ b/hotspot/src/share/vm/opto/compile.cpp -@@ -791,7 +791,7 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr - } - if (failing()) return; - if (cg == NULL) { -- record_method_not_compilable_all_tiers("cannot parse method"); -+ record_method_not_compilable("cannot parse method"); - return; - } - JVMState* jvms = build_start_state(start(), tf()); -diff --git a/hotspot/src/share/vm/opto/compile.hpp b/hotspot/src/share/vm/opto/compile.hpp -index 1150fd549..fb12b6874 100644 ---- a/hotspot/src/share/vm/opto/compile.hpp -+++ b/hotspot/src/share/vm/opto/compile.hpp -@@ -742,16 +742,12 @@ class Compile : public Phase { - bool failure_reason_is(const char* r) { return (r==_failure_reason) || (r!=NULL && _failure_reason!=NULL && strcmp(r, _failure_reason)==0); } - - void record_failure(const char* reason); -- void record_method_not_compilable(const char* reason, bool all_tiers = false) { -- // All bailouts cover "all_tiers" when TieredCompilation is off. -- if (!TieredCompilation) all_tiers = true; -- env()->record_method_not_compilable(reason, all_tiers); -+ void record_method_not_compilable(const char* reason) { -+ // Bailouts cover "all_tiers" when TieredCompilation is off. -+ env()->record_method_not_compilable(reason, !TieredCompilation); - // Record failure reason. - record_failure(reason); - } -- void record_method_not_compilable_all_tiers(const char* reason) { -- record_method_not_compilable(reason, true); -- } - bool check_node_count(uint margin, const char* reason) { - if (live_nodes() + margin > max_node_limit()) { - record_method_not_compilable(reason); -diff --git a/hotspot/src/share/vm/opto/matcher.cpp b/hotspot/src/share/vm/opto/matcher.cpp -index 07b8ee4c6..b26015ce6 100644 ---- a/hotspot/src/share/vm/opto/matcher.cpp -+++ b/hotspot/src/share/vm/opto/matcher.cpp -@@ -137,7 +137,7 @@ OptoReg::Name Matcher::warp_incoming_stk_arg( VMReg reg ) { - _in_arg_limit = OptoReg::add(warped, 1); // Bump max stack slot seen - if (!RegMask::can_represent_arg(warped)) { - // the compiler cannot represent this method's calling sequence -- C->record_method_not_compilable_all_tiers("unsupported incoming calling sequence"); -+ C->record_method_not_compilable("unsupported incoming calling sequence"); - return OptoReg::Bad; - } - return warped; -@@ -1148,7 +1148,7 @@ OptoReg::Name Matcher::warp_outgoing_stk_arg( VMReg reg, OptoReg::Name begin_out - if( warped >= out_arg_limit_per_call ) - out_arg_limit_per_call = OptoReg::add(warped,1); - if (!RegMask::can_represent_arg(warped)) { -- C->record_method_not_compilable_all_tiers("unsupported calling sequence"); -+ C->record_method_not_compilable("unsupported calling sequence"); - return OptoReg::Bad; - } - return warped; -@@ -1327,7 +1327,7 @@ MachNode *Matcher::match_sfpt( SafePointNode *sfpt ) { - uint r_cnt = mcall->tf()->range()->cnt(); - MachProjNode *proj = new (C) MachProjNode( mcall, r_cnt+10000, RegMask::Empty, MachProjNode::fat_proj ); - if (!RegMask::can_represent_arg(OptoReg::Name(out_arg_limit_per_call-1))) { -- C->record_method_not_compilable_all_tiers("unsupported outgoing calling sequence"); -+ C->record_method_not_compilable("unsupported outgoing calling sequence"); - } else { - for (int i = begin_out_arg_area; i < out_arg_limit_per_call; i++) - proj->_rout.Insert(OptoReg::Name(i)); -@@ -1515,7 +1515,7 @@ Node *Matcher::Label_Root( const Node *n, State *svec, Node *control, const Node - // out of stack space. See bugs 6272980 & 6227033 for more info. - LabelRootDepth++; - if (LabelRootDepth > MaxLabelRootDepth) { -- C->record_method_not_compilable_all_tiers("Out of stack space, increase MaxLabelRootDepth"); -+ C->record_method_not_compilable("Out of stack space, increase MaxLabelRootDepth"); - return NULL; - } - uint care = 0; // Edges matcher cares about -diff --git a/hotspot/src/share/vm/opto/parse1.cpp b/hotspot/src/share/vm/opto/parse1.cpp -index a9ef4f910..4fcd58cb4 100644 ---- a/hotspot/src/share/vm/opto/parse1.cpp -+++ b/hotspot/src/share/vm/opto/parse1.cpp -@@ -415,7 +415,7 @@ Parse::Parse(JVMState* caller, ciMethod* parse_method, float expected_uses) - _iter.reset_to_method(method()); - _flow = method()->get_flow_analysis(); - if (_flow->failing()) { -- C->record_method_not_compilable_all_tiers(_flow->failure_reason()); -+ C->record_method_not_compilable(_flow->failure_reason()); - } - - #ifndef PRODUCT -@@ -1088,7 +1088,7 @@ SafePointNode* Parse::create_entry_map() { - // Check for really stupid bail-out cases. - uint len = TypeFunc::Parms + method()->max_locals() + method()->max_stack(); - if (len >= 32760) { -- C->record_method_not_compilable_all_tiers("too many local variables"); -+ C->record_method_not_compilable("too many local variables"); - return NULL; - } - --- -2.18.0.huawei.25 - diff --git a/8166253.patch b/8166253.patch index 3722813ec271cb8ad08f9f916f3b3477cea75bad..ba4915b499997e4c6925a5dd81cb0a6cddbc66c2 100644 --- a/8166253.patch +++ b/8166253.patch @@ -117,14 +117,14 @@ index 000000000..fb6618688 +import java.nio.channels.OverlappingFileLockException; +import java.nio.file.Files; +import java.nio.file.Path; -+import jdk.test.lib.util.FileUtils; ++import jdk.testlibrary.FileUtils; + +/* + * @test + * @bug 8166253 + * @summary Verify that OverlappingFileLockException is thrown when expected. -+ * @library .. /test/lib -+ * @build jdk.test.lib.util.FileUtils ++ * @library /lib/testlibrary ++ * @build jdk.testlibrary.Utils + * @run main/othervm FileLockGC + */ +public class FileLockGC { diff --git a/8177146-MethodHandles.Lookup-bind-allows-illegal-pro.patch b/8177146-MethodHandles.Lookup-bind-allows-illegal-pro.patch new file mode 100644 index 0000000000000000000000000000000000000000..a168724f9d18123a4effb49c55d2a2c42df2579d --- /dev/null +++ b/8177146-MethodHandles.Lookup-bind-allows-illegal-pro.patch @@ -0,0 +1,221 @@ +From 5fbf4e8b326dd8453822ae40f3c6e4adffbf42ac Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Fri, 3 Nov 2023 16:21:09 +0800 +Subject: [PATCH] [Backport]8177146: MethodHandles.Lookup::bind allows illegal protected + access + +--- + .../classes/java/lang/invoke/MethodHandles.java | 22 +++-- + .../lang/invoke/8177146/TestMethodHandleBind.java | 96 ++++++++++++++++++++++ + jdk/test/java/lang/invoke/8177146/pkg/A.java | 40 +++++++++ + 3 files changed, 149 insertions(+), 9 deletions(-) + create mode 100644 jdk/test/java/lang/invoke/8177146/TestMethodHandleBind.java + create mode 100644 jdk/test/java/lang/invoke/8177146/pkg/A.java + +diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandles.java b/jdk/src/share/classes/java/lang/invoke/MethodHandles.java +index 7b9353ab0..62888c019 100644 +--- a/jdk/src/share/classes/java/lang/invoke/MethodHandles.java ++++ b/jdk/src/share/classes/java/lang/invoke/MethodHandles.java +@@ -1148,7 +1148,13 @@ return mh1; + public MethodHandle bind(Object receiver, String name, MethodType type) throws NoSuchMethodException, IllegalAccessException { + Class refc = receiver.getClass(); // may get NPE + MemberName method = resolveOrFail(REF_invokeSpecial, refc, name, type); +- MethodHandle mh = getDirectMethodNoRestrict(REF_invokeSpecial, refc, method, findBoundCallerClass(method)); ++ MethodHandle mh = getDirectMethodNoRestrictInvokeSpecial(refc, method, findBoundCallerClass(method)); ++ if (!mh.type().leadingReferenceParameter().isAssignableFrom(receiver.getClass())) { ++ throw new IllegalAccessException("The restricted defining class " + ++ mh.type().leadingReferenceParameter().getName() + ++ " is not assignable from receiver class " + ++ receiver.getClass().getName()); ++ } + return mh.bindArgumentL(0, receiver).setVarargs(method); + } + +@@ -1591,7 +1597,7 @@ return mh1; + throw method.makeAccessException("caller class must be a subclass below the method", caller); + } + MethodType rawType = mh.type(); +- if (rawType.parameterType(0) == caller) return mh; ++ if (caller.isAssignableFrom(rawType.parameterType(0))) return mh; // no need to restrict; already narrow + MethodType narrowType = rawType.changeParameterType(0, caller); + assert(!mh.isVarargsCollector()); // viewAsType will lose varargs-ness + assert(mh.viewAsTypeChecks(narrowType, true)); +@@ -1604,11 +1610,11 @@ return mh1; + final boolean checkSecurity = true; + return getDirectMethodCommon(refKind, refc, method, checkSecurity, doRestrict, callerClass); + } +- /** Check access and get the requested method, eliding receiver narrowing rules. */ +- private MethodHandle getDirectMethodNoRestrict(byte refKind, Class refc, MemberName method, Class callerClass) throws IllegalAccessException { ++ /** Check access and get the requested method, for invokespecial with no restriction on the application of narrowing rules. */ ++ private MethodHandle getDirectMethodNoRestrictInvokeSpecial(Class refc, MemberName method, Class callerClass) throws IllegalAccessException { + final boolean doRestrict = false; + final boolean checkSecurity = true; +- return getDirectMethodCommon(refKind, refc, method, checkSecurity, doRestrict, callerClass); ++ return getDirectMethodCommon(REF_invokeSpecial, refc, method, checkSecurity, doRestrict, callerClass); + } + /** Check access and get the requested method, eliding security manager checks. */ + private MethodHandle getDirectMethodNoSecurityManager(byte refKind, Class refc, MemberName method, Class callerClass) throws IllegalAccessException { +@@ -1660,10 +1666,8 @@ return mh1; + DirectMethodHandle dmh = DirectMethodHandle.make(refKind, refc, method); + MethodHandle mh = dmh; + // Optionally narrow the receiver argument to refc using restrictReceiver. +- if (doRestrict && +- (refKind == REF_invokeSpecial || +- (MethodHandleNatives.refKindHasReceiver(refKind) && +- restrictProtectedReceiver(method)))) { ++ if ((doRestrict && refKind == REF_invokeSpecial) || ++ (MethodHandleNatives.refKindHasReceiver(refKind) && restrictProtectedReceiver(method))) { + mh = restrictReceiver(method, dmh, lookupClass()); + } + mh = maybeBindCaller(method, mh, callerClass); +diff --git a/jdk/test/java/lang/invoke/8177146/TestMethodHandleBind.java b/jdk/test/java/lang/invoke/8177146/TestMethodHandleBind.java +new file mode 100644 +index 000000000..134cc9f75 +--- /dev/null ++++ b/jdk/test/java/lang/invoke/8177146/TestMethodHandleBind.java +@@ -0,0 +1,96 @@ ++/* ++ * Copyright (c) 2017, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* @test ++ * @bug 8177146 ++ * @run testng/othervm TestMethodHandleBind ++ */ ++ ++import org.testng.annotations.Test; ++ ++import java.lang.invoke.MethodHandle; ++import java.lang.invoke.MethodType; ++ ++import static java.lang.invoke.MethodHandles.lookup; ++ ++import static org.testng.Assert.*; ++ ++public class TestMethodHandleBind extends pkg.A { ++ static class B extends TestMethodHandleBind {} ++ ++ @Test ++ public void testInstanceOfCallerClass() throws Throwable { ++ MethodHandle bound = lookup().bind(new TestMethodHandleBind() , "m1", MethodType.methodType(String.class)); ++ String x = (String)bound.invoke(); ++ assertEquals(x, this.getClass().getSimpleName()); ++ } ++ ++ @Test ++ public void testInstanceOfCallerSubclass() throws Throwable { ++ MethodHandle bound = lookup().bind(new B() , "m1", MethodType.methodType(String.class)); ++ // MethodHandle bound = lookup().findVirtual(B.class, "m1", MethodType.methodType(String.class)).bindTo(new B()); ++ String x = (String)bound.invoke(); ++ assertEquals(x, "B"); ++ } ++ ++ @Test ++ public void testInstanceOfReceiverClass() throws Throwable { ++ try { ++ MethodHandle bound = lookup().bind(new pkg.A() , "m1", MethodType.methodType(String.class)); ++ bound.invoke(); ++ fail("IllegalAccessException expected"); ++ } catch (IllegalAccessException e) { ++ } ++ } ++ ++ @Test ++ public void testPublicMethod() throws Throwable { ++ MethodHandle bound = lookup().bind(new pkg.A() , "m2", MethodType.methodType(String.class)); ++ String x = (String)bound.invoke(); ++ assertEquals(x, "A"); ++ } ++ ++ @Test ++ public void testPublicMethod2() throws Throwable { ++ MethodHandle bound = lookup().bind(new TestMethodHandleBind(), "m2", MethodType.methodType(String.class)); ++ String x = (String)bound.invoke(); ++ assertEquals(x, this.getClass().getSimpleName()); ++ } ++ ++ @Test ++ public void testInstanceOfCallerClassVarargs() throws Throwable { ++ MethodHandle bound = lookup().bind(new TestMethodHandleBind() , "m3", MethodType.methodType(String.class, String[].class)); ++ String x = (String)bound.invoke("a", "b", "c"); ++ assertEquals(x, this.getClass().getSimpleName() + "abc"); ++ } ++ ++ @Test ++ public void testInstanceOfReceiverClassVarargs() throws Throwable { ++ try { ++ MethodHandle bound = lookup().bind(new pkg.A(), "m3", MethodType.methodType(String.class, String[].class)); ++ bound.invoke(); ++ fail("IllegalAccessException expected"); ++ } catch (IllegalAccessException e) { ++ } ++ } ++} +diff --git a/jdk/test/java/lang/invoke/8177146/pkg/A.java b/jdk/test/java/lang/invoke/8177146/pkg/A.java +new file mode 100644 +index 000000000..f34d52b8e +--- /dev/null ++++ b/jdk/test/java/lang/invoke/8177146/pkg/A.java +@@ -0,0 +1,40 @@ ++/* ++ * Copyright (c) 2017, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++package pkg; ++ ++public class A { ++ protected String m1() { ++ return this.getClass().getSimpleName(); ++ } ++ ++ public String m2() { ++ return this.getClass().getSimpleName(); ++ } ++ ++ protected String m3(String... args) { ++ StringBuilder sb = new StringBuilder(); ++ for (String s : args) ++ sb.append(s); ++ return this.getClass().getSimpleName() + sb.toString(); ++ } ++} +-- +2.12.3 + diff --git a/8178968-AArch64-Remove-non-standard-code-cache-size.patch b/8178968-AArch64-Remove-non-standard-code-cache-size.patch new file mode 100644 index 0000000000000000000000000000000000000000..82295a8ea92874ed36a35d6988d42f4b144c5dbe --- /dev/null +++ b/8178968-AArch64-Remove-non-standard-code-cache-size.patch @@ -0,0 +1,25 @@ +From bf0ddc70f543a1847d8822bc01537322aa5bbe6d Mon Sep 17 00:00:00 2001 +From: hedongbo +Date: Thu, 5 Jan 2023 19:40:11 +0000 +Subject: 8178968: AArch64: Remove non-standard code cache size + +--- + hotspot/src/cpu/aarch64/vm/globalDefinitions_aarch64.hpp | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/hotspot/src/cpu/aarch64/vm/globalDefinitions_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/globalDefinitions_aarch64.hpp +index f15ed99fb..ed623c435 100644 +--- a/hotspot/src/cpu/aarch64/vm/globalDefinitions_aarch64.hpp ++++ b/hotspot/src/cpu/aarch64/vm/globalDefinitions_aarch64.hpp +@@ -37,8 +37,4 @@ const bool CCallingConventionRequiresIntsAsLongs = false; + + #define SUPPORTS_NATIVE_CX8 + +-// The maximum B/BL offset range on AArch64 is 128MB. +-#undef CODE_CACHE_DEFAULT_LIMIT +-#define CODE_CACHE_DEFAULT_LIMIT (128*M) +- + #endif // CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP +-- +2.12.3 + diff --git a/8179273-sun.net.httpserver.LeftOverInputStream-shoul.patch b/8179273-sun.net.httpserver.LeftOverInputStream-shoul.patch new file mode 100644 index 0000000000000000000000000000000000000000..0433c99ae59cbbca7304fa88b7cbd7a900b1c075 --- /dev/null +++ b/8179273-sun.net.httpserver.LeftOverInputStream-shoul.patch @@ -0,0 +1,53 @@ +From b1c3eca9320e83db1fe6fe281c2d4a8875e8f16b Mon Sep 17 00:00:00 2001 +Date: Thu, 27 Jul 2023 20:07:00 +0800 +Subject: [PATCH] [Backport]8179273: sun.net.httpserver.LeftOverInputStream should stop + attempting to drain the stream when the server is stopped + +--- + .../classes/sun/net/httpserver/LeftOverInputStream.java | 7 +++++-- + jdk/src/share/classes/sun/net/httpserver/ServerImpl.java | 4 ++++ + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/jdk/src/share/classes/sun/net/httpserver/LeftOverInputStream.java b/jdk/src/share/classes/sun/net/httpserver/LeftOverInputStream.java +index c715d72ad..d3a6e1b08 100644 +--- a/jdk/src/share/classes/sun/net/httpserver/LeftOverInputStream.java ++++ b/jdk/src/share/classes/sun/net/httpserver/LeftOverInputStream.java +@@ -41,8 +41,8 @@ import com.sun.net.httpserver.spi.*; + * isEOF() returns true, when all expected bytes have been read + */ + abstract class LeftOverInputStream extends FilterInputStream { +- ExchangeImpl t; +- ServerImpl server; ++ final ExchangeImpl t; ++ final ServerImpl server; + protected boolean closed = false; + protected boolean eof = false; + byte[] one = new byte [1]; +@@ -109,6 +109,9 @@ abstract class LeftOverInputStream extends FilterInputStream { + int bufSize = 2048; + byte[] db = new byte [bufSize]; + while (l > 0) { ++ if (server.isFinishing()) { ++ break; ++ } + long len = readImpl (db, 0, bufSize); + if (len == -1) { + eof = true; +diff --git a/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java b/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java +index a5adbf609..271a5bbc7 100644 +--- a/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java ++++ b/jdk/src/share/classes/sun/net/httpserver/ServerImpl.java +@@ -219,6 +219,10 @@ class ServerImpl { + return httpsConfig; + } + ++ public final boolean isFinishing() { ++ return finished; ++ } ++ + public void stop (int delay) { + if (delay < 0) { + throw new IllegalArgumentException ("negative delay parameter"); +-- +2.19.1 + diff --git a/8185736-missing-default-exception-handler-in-calls-t.patch b/8185736-missing-default-exception-handler-in-calls-t.patch new file mode 100644 index 0000000000000000000000000000000000000000..2984d722ad2a13865361dd1f082df7d768217cfd --- /dev/null +++ b/8185736-missing-default-exception-handler-in-calls-t.patch @@ -0,0 +1,53 @@ +From da7a2005a2c181737b163f60dd705acc00002463 Mon Sep 17 00:00:00 2001 +From: hedongbo +Date: Thu, 5 Jan 2023 10:22:15 +0000 +Subject: 8185736: missing default exception handler in calls to + rethrow_Stub + +--- + hotspot/src/share/vm/opto/doCall.cpp | 9 +++++++++ + hotspot/src/share/vm/opto/output.cpp | 1 + + 2 files changed, 10 insertions(+) + +diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp +index 366769356..1b2b77c71 100644 +--- a/hotspot/src/share/vm/opto/doCall.cpp ++++ b/hotspot/src/share/vm/opto/doCall.cpp +@@ -702,6 +702,7 @@ void Parse::catch_call_exceptions(ciExceptionHandlerStream& handlers) { + GrowableArray* extypes = new (C->node_arena()) GrowableArray(C->node_arena(), 8, 0, NULL); + GrowableArray* saw_unloaded = new (C->node_arena()) GrowableArray(C->node_arena(), 8, 0, 0); + ++ bool default_handler = false; + for (; !handlers.is_done(); handlers.next()) { + ciExceptionHandler* h = handlers.handler(); + int h_bci = h->handler_bci(); +@@ -724,6 +725,14 @@ void Parse::catch_call_exceptions(ciExceptionHandlerStream& handlers) { + // Note: It's OK if the BCIs repeat themselves. + bcis->append(h_bci); + extypes->append(h_extype); ++ if (h_bci == -1) { ++ default_handler = true; ++ } ++ } ++ ++ if (!default_handler) { ++ bcis->append(-1); ++ extypes->append(TypeOopPtr::make_from_klass(env()->Throwable_klass())->is_instptr()); + } + + int len = bcis->length(); +diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp +index 5c9566e1e..6032b72a9 100644 +--- a/hotspot/src/share/vm/opto/output.cpp ++++ b/hotspot/src/share/vm/opto/output.cpp +@@ -1761,6 +1761,7 @@ void Compile::FillExceptionTables(uint cnt, uint *call_returns, uint *inct_start + } + + // Set the offset of the return from the call ++ assert(handler_bcis.find(-1) != -1, "must have default handler"); + _handler_table.add_subtable(call_return, &handler_bcis, NULL, &handler_pcos); + continue; + } +-- +2.12.3 + diff --git a/8193682-Infinite-loop-in-ZipOutputStream.close.patch b/8193682-Infinite-loop-in-ZipOutputStream.close.patch new file mode 100644 index 0000000000000000000000000000000000000000..628b67fbfa20b14d45a40f0494b85819951e10a0 --- /dev/null +++ b/8193682-Infinite-loop-in-ZipOutputStream.close.patch @@ -0,0 +1,352 @@ +From ba4213c7350e7a145a142d0cbe54718a8c92b93c Mon Sep 17 00:00:00 2001 +Subject: 8193682: Infinite loop in ZipOutputStream.close() +--- + .../java/util/zip/DeflaterOutputStream.java | 9 +- + .../java/util/zip/GZIPOutputStream.java | 38 +++-- + .../java/util/zip/ZipOutputStream.java | 96 ++++++------ + jdk/test/java/util/zip/CloseDeflaterTest.java | 147 ++++++++++++++++++ + 4 files changed, 226 insertions(+), 64 deletions(-) + create mode 100644 jdk/test/java/util/zip/CloseDeflaterTest.java + +diff --git a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java +index a1f768cae..f4cf79693 100644 +--- a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java ++++ b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java +@@ -235,9 +235,12 @@ class DeflaterOutputStream extends FilterOutputStream { + */ + public void close() throws IOException { + if (!closed) { +- finish(); +- if (usesDefaultDeflater) +- def.end(); ++ try { ++ finish(); ++ } finally { ++ if (usesDefaultDeflater) ++ def.end(); ++ } + out.close(); + closed = true; + } +diff --git a/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java b/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java +index 2c1cd409b..1c3f8592e 100644 +--- a/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java ++++ b/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java +@@ -154,24 +154,30 @@ class GZIPOutputStream extends DeflaterOutputStream { + */ + public void finish() throws IOException { + if (!def.finished()) { +- def.finish(); +- while (!def.finished()) { +- int len = def.deflate(buf, 0, buf.length); +- if (def.finished() && len <= buf.length - TRAILER_SIZE) { +- // last deflater buffer. Fit trailer at the end +- writeTrailer(buf, len); +- len = len + TRAILER_SIZE; +- out.write(buf, 0, len); +- return; ++ try { ++ def.finish(); ++ while (!def.finished()) { ++ int len = def.deflate(buf, 0, buf.length); ++ if (def.finished() && len <= buf.length - TRAILER_SIZE) { ++ // last deflater buffer. Fit trailer at the end ++ writeTrailer(buf, len); ++ len = len + TRAILER_SIZE; ++ out.write(buf, 0, len); ++ return; ++ } ++ if (len > 0) ++ out.write(buf, 0, len); + } +- if (len > 0) +- out.write(buf, 0, len); ++ // if we can't fit the trailer at the end of the last ++ // deflater buffer, we write it separately ++ byte[] trailer = new byte[TRAILER_SIZE]; ++ writeTrailer(trailer, 0); ++ out.write(trailer); ++ } catch (IOException e) { ++ if (usesDefaultDeflater) ++ def.end(); ++ throw e; + } +- // if we can't fit the trailer at the end of the last +- // deflater buffer, we write it separately +- byte[] trailer = new byte[TRAILER_SIZE]; +- writeTrailer(trailer, 0); +- out.write(trailer); + } + } + +diff --git a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java +index 6b480aa1d..f001ddf00 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java ++++ b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java +@@ -247,59 +247,65 @@ class ZipOutputStream extends DeflaterOutputStream implements ZipConstants { + public void closeEntry() throws IOException { + ensureOpen(); + if (current != null) { +- ZipEntry e = current.entry; +- switch (e.method) { +- case DEFLATED: +- def.finish(); +- while (!def.finished()) { +- deflate(); +- } +- if ((e.flag & 8) == 0) { +- // verify size, compressed size, and crc-32 settings +- if (e.size != def.getBytesRead()) { +- throw new ZipException( +- "invalid entry size (expected " + e.size + +- " but got " + def.getBytesRead() + " bytes)"); ++ try { ++ ZipEntry e = current.entry; ++ switch (e.method) { ++ case DEFLATED: ++ def.finish(); ++ while (!def.finished()) { ++ deflate(); + } +- if (e.csize != def.getBytesWritten()) { ++ if ((e.flag & 8) == 0) { ++ // verify size, compressed size, and crc-32 settings ++ if (e.size != def.getBytesRead()) { ++ throw new ZipException( ++ "invalid entry size (expected " + e.size + ++ " but got " + def.getBytesRead() + " bytes)"); ++ } ++ if (e.csize != def.getBytesWritten()) { ++ throw new ZipException( ++ "invalid entry compressed size (expected " + ++ e.csize + " but got " + def.getBytesWritten() + " bytes)"); ++ } ++ if (e.crc != crc.getValue()) { ++ throw new ZipException( ++ "invalid entry CRC-32 (expected 0x" + ++ Long.toHexString(e.crc) + " but got 0x" + ++ Long.toHexString(crc.getValue()) + ")"); ++ } ++ } else { ++ e.size = def.getBytesRead(); ++ e.csize = def.getBytesWritten(); ++ e.crc = crc.getValue(); ++ writeEXT(e); ++ } ++ def.reset(); ++ written += e.csize; ++ break; ++ case STORED: ++ // we already know that both e.size and e.csize are the same ++ if (e.size != written - locoff) { + throw new ZipException( +- "invalid entry compressed size (expected " + +- e.csize + " but got " + def.getBytesWritten() + " bytes)"); ++ "invalid entry size (expected " + e.size + ++ " but got " + (written - locoff) + " bytes)"); + } + if (e.crc != crc.getValue()) { + throw new ZipException( +- "invalid entry CRC-32 (expected 0x" + +- Long.toHexString(e.crc) + " but got 0x" + +- Long.toHexString(crc.getValue()) + ")"); ++ "invalid entry crc-32 (expected 0x" + ++ Long.toHexString(e.crc) + " but got 0x" + ++ Long.toHexString(crc.getValue()) + ")"); + } +- } else { +- e.size = def.getBytesRead(); +- e.csize = def.getBytesWritten(); +- e.crc = crc.getValue(); +- writeEXT(e); ++ break; ++ default: ++ throw new ZipException("invalid compression method"); + } +- def.reset(); +- written += e.csize; +- break; +- case STORED: +- // we already know that both e.size and e.csize are the same +- if (e.size != written - locoff) { +- throw new ZipException( +- "invalid entry size (expected " + e.size + +- " but got " + (written - locoff) + " bytes)"); +- } +- if (e.crc != crc.getValue()) { +- throw new ZipException( +- "invalid entry crc-32 (expected 0x" + +- Long.toHexString(e.crc) + " but got 0x" + +- Long.toHexString(crc.getValue()) + ")"); +- } +- break; +- default: +- throw new ZipException("invalid compression method"); ++ crc.reset(); ++ current = null; ++ } catch (IOException e) { ++ if (usesDefaultDeflater && !(e instanceof ZipException)) ++ def.end(); ++ throw e; + } +- crc.reset(); +- current = null; + } + } + +diff --git a/jdk/test/java/util/zip/CloseDeflaterTest.java b/jdk/test/java/util/zip/CloseDeflaterTest.java +new file mode 100644 +index 000000000..8aa4960f5 +--- /dev/null ++++ b/jdk/test/java/util/zip/CloseDeflaterTest.java +@@ -0,0 +1,147 @@ ++/* ++ * Copyright (c) 2021, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/** ++ * @test ++ * @bug 8193682 ++ * @summary Test Infinite loop while writing on closed GZipOutputStream , ZipOutputStream and JarOutputStream. ++ * @run testng CloseDeflaterTest ++ */ ++import java.io.*; ++import java.util.Random; ++import java.util.jar.JarOutputStream; ++import java.util.zip.GZIPOutputStream; ++import java.util.zip.ZipOutputStream; ++import java.util.zip.ZipEntry; ++ ++import org.testng.annotations.BeforeTest; ++import org.testng.annotations.DataProvider; ++import org.testng.annotations.Test; ++import static org.testng.Assert.fail; ++ ++ ++public class CloseDeflaterTest { ++ ++ //number of bytes to write ++ private static final int INPUT_LENGTH= 512; ++ //OutputStream that will throw an exception during a write operation ++ private static OutputStream outStream = new OutputStream() { ++ @Override ++ public void write(byte[] b, int off, int len) throws IOException { ++ //throw exception during write ++ throw new IOException(); ++ } ++ @Override ++ public void write(byte b[]) throws IOException {} ++ @Override ++ public void write(int b) throws IOException {} ++ }; ++ private static byte[] inputBytes = new byte[INPUT_LENGTH]; ++ private static Random rand = new Random(); ++ ++ @DataProvider(name = "testgzipinput") ++ public Object[][] testGZipInput() { ++ //testGZip will close the GZipOutputStream using close() method when the boolean ++ //useCloseMethod is set to true and finish() method if the value is set to false ++ return new Object[][] { ++ { GZIPOutputStream.class, true }, ++ { GZIPOutputStream.class, false }, ++ }; ++ } ++ ++ @DataProvider(name = "testzipjarinput") ++ public Object[][] testZipAndJarInput() { ++ //testZipAndJarInput will perfrom write/closeEntry operations on JarOutputStream when the boolean ++ //useJar is set to true and on ZipOutputStream if the value is set to false ++ return new Object[][] { ++ { JarOutputStream.class, true }, ++ { ZipOutputStream.class, false }, ++ }; ++ } ++ ++ @BeforeTest ++ public void before_test() ++ { ++ //add inputBytes array with random bytes to write into Zip ++ rand.nextBytes(inputBytes); ++ } ++ ++ //Test for infinite loop by writing bytes to closed GZIPOutputStream ++ @Test(dataProvider = "testgzipinput") ++ public void testGZip(Class type, boolean useCloseMethod) throws IOException { ++ GZIPOutputStream zip = new GZIPOutputStream(outStream); ++ try { ++ zip.write(inputBytes, 0, INPUT_LENGTH); ++ //close zip ++ if(useCloseMethod) { ++ zip.close(); ++ } else { ++ zip.finish(); ++ } ++ } catch (IOException e) { ++ //expected ++ } ++ for (int i = 0; i < 3; i++) { ++ try { ++ //write on a closed GZIPOutputStream ++ zip.write(inputBytes, 0, INPUT_LENGTH); ++ fail("Deflater closed exception not thrown"); ++ } catch (NullPointerException e) { ++ //expected , Deflater has been closed exception ++ } ++ } ++ } ++ ++ //Test for infinite loop by writing bytes to closed ZipOutputStream/JarOutputStream ++ @Test(dataProvider = "testzipjarinput") ++ public void testZipCloseEntry(Class type,boolean useJar) throws IOException { ++ ZipOutputStream zip = null; ++ if(useJar) { ++ zip = new JarOutputStream(outStream); ++ } else { ++ zip = new ZipOutputStream(outStream); ++ } ++ try { ++ zip.putNextEntry(new ZipEntry("")); ++ } catch (IOException e) { ++ //expected to throw IOException since putNextEntry calls write method ++ } ++ try { ++ zip.write(inputBytes, 0, INPUT_LENGTH); ++ //close zip entry ++ zip.closeEntry(); ++ } catch (IOException e) { ++ //expected ++ } ++ for (int i = 0; i < 3; i++) { ++ try { ++ //write on a closed ZipOutputStream ++ zip.write(inputBytes, 0, INPUT_LENGTH); ++ fail("Deflater closed exception not thrown"); ++ } catch (NullPointerException e) { ++ //expected , Deflater has been closed exception ++ } ++ } ++ } ++ ++} +-- +2.22.0 + diff --git a/8196485.patch b/8196485.patch index 96cfb5534f2e795433493594582efc7a62094261..9784b060a9d94e7578f976c6ad8a5352eacfde0e 100644 --- a/8196485.patch +++ b/8196485.patch @@ -153,21 +153,18 @@ new file mode 100644 index 000000000..92950cf68 --- /dev/null +++ b/hotspot/test/gc/g1/TestFromCardCacheIndex.java -@@ -0,0 +1,119 @@ +@@ -0,0 +1,116 @@ +/* + * @test TestFromCardCacheIndex.java + * @bug 8196485 + * @summary Ensure that G1 does not miss a remembered set entry due to from card cache default value indices. + * @key gc -+ * @requires vm.gc.G1 -+ * @requires vm.debug + * @requires vm.bits != "32" -+ * @library /test/lib -+ * @modules java.base/jdk.internal.misc -+ * java.management ++ * @library /testlibrary/whitebox /testlibrary ++ * @modules java.base/jdk.internal.misc java.management + * @build sun.hotspot.WhiteBox + * @run driver ClassFileInstaller sun.hotspot.WhiteBox -+ * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. -Xms20M -Xmx20M -XX:+UseCompressedOops -XX:G1HeapRegionSize=1M -XX:HeapBaseMinAddress=2199011721216 -XX:+UseG1GC -verbose:gc TestFromCardCacheIndex ++ * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. -Xms20M -Xmx20M -XX:+UseCompressedOops -XX:G1HeapRegionSize=1M -XX:HeapBaseMinAddress=2199011721216 -XX:+UseG1GC -verbose:gc TestFromCardCacheIndex + */ + +import sun.hotspot.WhiteBox; diff --git a/8200720-Print-additional-information-in-thread-dump-.patch b/8200720-Print-additional-information-in-thread-dump-.patch index 12c1b59cac2fbfa08db35f96db2a7bed4fe748de..b355c7945b1b0d3e3b51093786df017d1dfc9cdc 100644 --- a/8200720-Print-additional-information-in-thread-dump-.patch +++ b/8200720-Print-additional-information-in-thread-dump-.patch @@ -129,7 +129,7 @@ index 61627e4..bd35e95 100644 if (internal_format) { p->trace_stack(); diff --git a/hotspot/src/share/vm/runtime/thread.hpp b/hotspot/src/share/vm/runtime/thread.hpp -index fcd4814..be53498 100644 +index 7d80daba..0e126964 100644 --- a/hotspot/src/share/vm/runtime/thread.hpp +++ b/hotspot/src/share/vm/runtime/thread.hpp @@ -41,6 +41,7 @@ @@ -162,22 +162,22 @@ index fcd4814..be53498 100644 void set_lgrp_id(int value) { _lgrp_id = value; } // Printing -- void print_on(outputStream* st) const; +- virtual void print_on(outputStream* st) const; + void print_on(outputStream* st, bool print_extended_info) const; + void print_on(outputStream* st) const { print_on(st, false); } void print() const { print_on(tty); } virtual void print_on_error(outputStream* st, char* buf, int buflen) const; -@@ -1463,7 +1469,8 @@ class JavaThread: public Thread { +@@ -1464,7 +1470,8 @@ class JavaThread: public Thread { // Misc. operations char* name() const { return (char*)get_thread_name(); } - void print_on(outputStream* st) const; + void print_on(outputStream* st, bool print_extended_info) const; + void print_on(outputStream* st) const { print_on(st, false); } - void print() const { print_on(tty); } void print_value(); void print_thread_state_on(outputStream* ) const PRODUCT_RETURN; + void print_thread_state() const PRODUCT_RETURN; @@ -1975,10 +1982,10 @@ class Threads: AllStatic { // Verification @@ -190,7 +190,7 @@ index fcd4814..be53498 100644 + print_on(tty, print_stacks, internal_format, false /* no concurrent lock printed */, false /* simple format */); } static void print_on_error(outputStream* st, Thread* current, char* buf, int buflen); - + diff --git a/hotspot/src/share/vm/runtime/threadStatisticalInfo.hpp b/hotspot/src/share/vm/runtime/threadStatisticalInfo.hpp new file mode 100644 index 0000000..9dbe62d diff --git a/8202951-Support-default-jsa.patch b/8202951-Support-default-jsa.patch index 0724ff1c97e131598afaf47223b5bafdff75b8fe..331b62593491332585165037170c83a9ee14111f 100644 --- a/8202951-Support-default-jsa.patch +++ b/8202951-Support-default-jsa.patch @@ -171,8 +171,8 @@ diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in index 4c3a9f61..79248cbf 100644 --- a/common/autoconf/spec.gmk.in +++ b/common/autoconf/spec.gmk.in -@@ -611,6 +611,10 @@ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ - MSVCR_DLL:=@MSVCR_DLL@ +@@ -612,6 +612,10 @@ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ + VCRUNTIME_1_DLL:=@VCRUNTIME_1_DLL@ MSVCP_DLL:=@MSVCP_DLL@ UCRT_DLL_DIR:=@UCRT_DLL_DIR@ +# CDS_ARCHIVE diff --git a/8202952.patch b/8202952.patch deleted file mode 100644 index 368a3934ee5c1d0ea1d93bd6b948cc6543f298c7..0000000000000000000000000000000000000000 --- a/8202952.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5fafa8bd0a85d93ff0480bc2d163c4070742d8f5 Mon Sep 17 00:00:00 2001 -Date: Fri, 22 Jan 2021 11:26:11 +0800 -Subject: 8202952:C2:Unexpected dead nodes after - matching - -Bug url: https://bugs.openjdk.java.net/browse/JDK-8202952 ---- - hotspot/src/share/vm/opto/matcher.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/hotspot/src/share/vm/opto/matcher.cpp b/hotspot/src/share/vm/opto/matcher.cpp -index 70e8af221..f5d30c3af 100644 ---- a/hotspot/src/share/vm/opto/matcher.cpp -+++ b/hotspot/src/share/vm/opto/matcher.cpp -@@ -2230,6 +2230,7 @@ void Matcher::find_shared( Node *n ) { - // AtomicAdd is not an addressing expression. - // Cheap to find it by looking for screwy base. - !adr->in(AddPNode::Base)->is_top() && -+ LP64_ONLY( off->get_long() == (int) (off->get_long()) && ) // immL32 - // Are there other uses besides address expressions? - !is_visited(adr) ) { - address_visited.set(adr->_idx); // Flag as address_visited --- -2.19.0 - diff --git a/8203699.patch b/8203699.patch index 02dd88ac4db63332d26926a327065d36715698e9..8c242c983c810bd60b78ba4ef53d715557ab63fa 100644 --- a/8203699.patch +++ b/8203699.patch @@ -12,22 +12,6 @@ Bug url: https://bugs.openjdk.java.net/browse/JDK-8203699 2 files changed, 171 insertions(+) create mode 100644 jdk/test/java/lang/invoke/lookup/TestDefenderMethodLookup.java -diff --git a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp -index f771c5f07..70ab1bcb8 100644 ---- a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp -+++ b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp -@@ -1209,6 +1209,11 @@ void MacroAssembler::check_klass_subtype_slow_path(Register sub_klass, - mov(r0, super_klass); - } - -+ // Get super_klass value into r0 (even if it was in r5 or r2) -+ if (super_klass != r0) { -+ mov(r0, super_klass); -+ } -+ - #ifndef PRODUCT - mov(rscratch2, (address)&SharedRuntime::_partial_subtype_ctr); - Address pst_counter_addr(rscratch2); diff --git a/jdk/test/java/lang/invoke/lookup/TestDefenderMethodLookup.java b/jdk/test/java/lang/invoke/lookup/TestDefenderMethodLookup.java new file mode 100644 index 000000000..8ab268b57 diff --git a/8204595-add-more-thread-related-system-settings-info.patch b/8204595-add-more-thread-related-system-settings-info.patch index 47dc73d4692ad032002e9d96d7bcbed6a4e558df..24edd30878e00c5422c3924f639c94cf2af07f70 100644 --- a/8204595-add-more-thread-related-system-settings-info.patch +++ b/8204595-add-more-thread-related-system-settings-info.patch @@ -1,5 +1,4 @@ From 16caa051cb7299312cdaf9d79eaef01d294474f6 Mon Sep 17 00:00:00 2001 -From: eapen Date: Thu, 15 Dec 2022 17:06:41 +0800 Subject: [PATCH 21/33] I68TO2: 8204595: add more thread-related system settings info to hs_error file on Linux @@ -44,7 +43,7 @@ index abf2031..1ec68ab 100644 +} + void os::Linux::print_container_info(outputStream* st) { - if (!OSContainer::is_containerized()) { + if (!OSContainer::is_containerized()) { return; @@ -6928,4 +6948,4 @@ bool os::trim_native_heap(os::size_change_t* rss_change) { #else diff --git a/8213397-Stack-dump-should-show-more-clearly-when-a-t.patch b/8213397-Stack-dump-should-show-more-clearly-when-a-t.patch new file mode 100644 index 0000000000000000000000000000000000000000..b45886f2f94db57bc5ae6ebf379c34e3a849ce18 --- /dev/null +++ b/8213397-Stack-dump-should-show-more-clearly-when-a-t.patch @@ -0,0 +1,392 @@ +From 3a774c78473c4fc3dcd1dc39f8c9daec4c5a6502 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 14:45:54 +0800 +Subject: 8213397-Stack-dump-should-show-more-clearly-when-a-t.patch + +--- + hotspot/src/share/vm/oops/instanceKlass.cpp | 23 +- + hotspot/src/share/vm/runtime/thread.cpp | 2 + + hotspot/src/share/vm/runtime/thread.hpp | 8 + + .../src/share/vm/runtime/thread.inline.hpp | 12 + + hotspot/src/share/vm/runtime/vframe.cpp | 8 + + .../TestThreadDumpClassInitMonitor.java | 217 ++++++++++++++++++ + 6 files changed, 259 insertions(+), 11 deletions(-) + create mode 100644 hotspot/test/runtime/Thread/TestThreadDumpClassInitMonitor.java + +diff --git a/hotspot/src/share/vm/oops/instanceKlass.cpp b/hotspot/src/share/vm/oops/instanceKlass.cpp +index 538645bbe..993778270 100644 +--- a/hotspot/src/share/vm/oops/instanceKlass.cpp ++++ b/hotspot/src/share/vm/oops/instanceKlass.cpp +@@ -920,25 +920,28 @@ void InstanceKlass::initialize_impl(instanceKlassHandle this_oop, TRAPS) { + + bool wait = false; + ++ assert(THREAD->is_Java_thread(), "non-JavaThread in initialize_impl"); ++ JavaThread* jt = (JavaThread*)THREAD; ++ + // refer to the JVM book page 47 for description of steps + // Step 1 + { + oop init_lock = this_oop->init_lock(); + ObjectLocker ol(init_lock, THREAD, init_lock != NULL); + +- Thread *self = THREAD; // it's passed the current thread +- + // Step 2 + // If we were to use wait() instead of waitInterruptibly() then + // we might end up throwing IE from link/symbol resolution sites + // that aren't expected to throw. This would wreak havoc. See 6320309. +- while(this_oop->is_being_initialized() && !this_oop->is_reentrant_initialization(self)) { +- wait = true; +- ol.waitUninterruptibly(CHECK); ++ while (this_oop->is_being_initialized() && !this_oop->is_reentrant_initialization(jt)) { ++ wait = true; ++ jt->set_class_to_be_initialized(this_oop()); ++ ol.waitUninterruptibly(jt); ++ jt->set_class_to_be_initialized(NULL); + } + + // Step 3 +- if (this_oop->is_being_initialized() && this_oop->is_reentrant_initialization(self)) { ++ if (this_oop->is_being_initialized() && this_oop->is_reentrant_initialization(jt)) { + DTRACE_CLASSINIT_PROBE_WAIT(recursive, InstanceKlass::cast(this_oop()), -1,wait); + return; + } +@@ -968,7 +971,7 @@ void InstanceKlass::initialize_impl(instanceKlassHandle this_oop, TRAPS) { + + // Step 6 + this_oop->set_init_state(being_initialized); +- this_oop->set_init_thread(self); ++ this_oop->set_init_thread(jt); + } + + // Step 7 +@@ -1004,8 +1007,6 @@ void InstanceKlass::initialize_impl(instanceKlassHandle this_oop, TRAPS) { + + // Step 8 + { +- assert(THREAD->is_Java_thread(), "non-JavaThread in initialize_impl"); +- JavaThread* jt = (JavaThread*)THREAD; + DTRACE_CLASSINIT_PROBE_WAIT(clinit, InstanceKlass::cast(this_oop()), -1,wait); + // Timer includes any side effects of class initialization (resolution, + // etc), but not recursive entry into call_class_initializer(). +@@ -1031,14 +1032,14 @@ void InstanceKlass::initialize_impl(instanceKlassHandle this_oop, TRAPS) { + CLEAR_PENDING_EXCEPTION; + // JVMTI has already reported the pending exception + // JVMTI internal flag reset is needed in order to report ExceptionInInitializerError +- JvmtiExport::clear_detected_exception((JavaThread*)THREAD); ++ JvmtiExport::clear_detected_exception(jt); + { + EXCEPTION_MARK; + this_oop->set_initialization_state_and_notify(initialization_error, THREAD); + CLEAR_PENDING_EXCEPTION; // ignore any exception thrown, class initialization error is thrown below + // JVMTI has already reported the pending exception + // JVMTI internal flag reset is needed in order to report ExceptionInInitializerError +- JvmtiExport::clear_detected_exception((JavaThread*)THREAD); ++ JvmtiExport::clear_detected_exception(jt); + } + DTRACE_CLASSINIT_PROBE_WAIT(error, InstanceKlass::cast(this_oop()), -1,wait); + if (e->is_a(SystemDictionary::Error_klass())) { +diff --git a/hotspot/src/share/vm/runtime/thread.cpp b/hotspot/src/share/vm/runtime/thread.cpp +index 2be226463..50543ac73 100644 +--- a/hotspot/src/share/vm/runtime/thread.cpp ++++ b/hotspot/src/share/vm/runtime/thread.cpp +@@ -1538,6 +1538,8 @@ void JavaThread::initialize() { + _popframe_preserved_args_size = 0; + _frames_to_pop_failed_realloc = 0; + ++_class_to_be_initialized = NULL; ++ + pd_initialize(); + } + +diff --git a/hotspot/src/share/vm/runtime/thread.hpp b/hotspot/src/share/vm/runtime/thread.hpp +index 220fe9316..1d3caf9aa 100644 +--- a/hotspot/src/share/vm/runtime/thread.hpp ++++ b/hotspot/src/share/vm/runtime/thread.hpp +@@ -1802,11 +1802,19 @@ public: + bool is_attaching_via_jni() const { return _jni_attach_state == _attaching_via_jni; } + bool has_attached_via_jni() const { return is_attaching_via_jni() || _jni_attach_state == _attached_via_jni; } + inline void set_done_attaching_via_jni(); ++ ++ // Stack dump assistance: Track the class we want to initialize but for which we have to wait ++ // on its init_lock() because it is already being initialized. ++ inline void set_class_to_be_initialized(InstanceKlass* k); ++ inline InstanceKlass* class_to_be_initialized() const; ++ + private: + // This field is used to determine if a thread has claimed + // a par_id: it is UINT_MAX if the thread has not claimed a par_id; + // otherwise its value is the par_id that has been claimed. + uint _claimed_par_id; ++ ++ InstanceKlass* _class_to_be_initialized; + public: + uint get_claimed_par_id() { return _claimed_par_id; } + void set_claimed_par_id(uint id) { _claimed_par_id = id;} +diff --git a/hotspot/src/share/vm/runtime/thread.inline.hpp b/hotspot/src/share/vm/runtime/thread.inline.hpp +index b05e0ec5c..d3ab3aba9 100644 +--- a/hotspot/src/share/vm/runtime/thread.inline.hpp ++++ b/hotspot/src/share/vm/runtime/thread.inline.hpp +@@ -74,4 +74,16 @@ inline void JavaThread::set_done_attaching_via_jni() { + OrderAccess::fence(); + } + ++// Allow tracking of class initialization monitor use ++inline void JavaThread::set_class_to_be_initialized(InstanceKlass* k) { ++ assert((k == NULL && _class_to_be_initialized != NULL) || ++ (k != NULL && _class_to_be_initialized == NULL), "incorrect usage"); ++ assert(this == Thread::current(), "Only the current thread can set this field"); ++ _class_to_be_initialized = k; ++} ++ ++inline InstanceKlass* JavaThread::class_to_be_initialized() const { ++ return _class_to_be_initialized; ++} ++ + #endif // SHARE_VM_RUNTIME_THREAD_INLINE_HPP +diff --git a/hotspot/src/share/vm/runtime/vframe.cpp b/hotspot/src/share/vm/runtime/vframe.cpp +index b3a6d0770..93d62ade7 100644 +--- a/hotspot/src/share/vm/runtime/vframe.cpp ++++ b/hotspot/src/share/vm/runtime/vframe.cpp +@@ -176,6 +176,14 @@ void javaVFrame::print_lock_info_on(outputStream* st, int frame_count) { + Klass* k = obj->klass(); + st->print_cr("\t- %s <" INTPTR_FORMAT "> (a %s)", "parking to wait for ", (address)obj, k->external_name()); + } ++ else if (thread()->osthread()->get_state() == OBJECT_WAIT) { ++ // We are waiting on an Object monitor but Object.wait() isn't the ++ // top-frame, so we should be waiting on a Class initialization monitor. ++ InstanceKlass* k = thread()->class_to_be_initialized(); ++ if (k != NULL) { ++ st->print_cr("\t- waiting on the Class initialization monitor for %s", k->external_name()); ++ } ++ } + } + + +diff --git a/hotspot/test/runtime/Thread/TestThreadDumpClassInitMonitor.java b/hotspot/test/runtime/Thread/TestThreadDumpClassInitMonitor.java +new file mode 100644 +index 000000000..8aa218efb +--- /dev/null ++++ b/hotspot/test/runtime/Thread/TestThreadDumpClassInitMonitor.java +@@ -0,0 +1,217 @@ ++/* ++ * Copyright (c) 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 8213397 8217337 ++ * @summary Check that the thread dump shows when a thread is blocked ++ * on a class initialization monitor ++ * ++ * @library /testlibrary ++ * @run main/othervm TestThreadDumpClassInitMonitor ++ */ ++ ++import com.oracle.java.testlibrary.*; ++ ++import java.io.IOException; ++import java.util.List; ++import java.lang.management.ManagementFactory; ++import java.lang.management.RuntimeMXBean; ++ ++public class TestThreadDumpClassInitMonitor { ++ // jstack tends to be closely bound to the VM that we are running ++ // so use getTestJDKTool() instead of getCompileJDKTool() or even ++ // getJDKTool() which can fall back to "compile.jdk". ++ final static String JSTACK = JDKToolFinder.getTestJDKTool("jstack"); ++ final static String PID = getPid(); ++ final static Thread current = Thread.currentThread(); ++ ++ /* ++ * This is the output we're looking for: ++ * ++ * "TestThread" #22 prio=5 os_prio=0 cpu=1.19ms elapsed=0.80s tid=0x00007f8f9405d800 nid=0x568b in Object.wait() [0x00007f8fd94d0000] ++ * java.lang.Thread.State: RUNNABLE ++ * Thread: 0x00007f8f9405d800 [0x568b] State: _at_safepoint _has_called_back 0 _at_poll_safepoint 0 // DEBUG ONLY ++ * JavaThread state: _thread_blocked // DEBUG ONLY ++ * at TestThreadDumpClassInitMonitor$Target$1.run(TestThreadDumpClassInitMonitor.java:69) ++ * - waiting on the Class initialization monitor for TestThreadDumpClassInitMonitor$Target ++ * ++ */ ++ final static String TEST_THREAD = "TestThread"; ++ final static String TEST_THREAD_ENTRY = "\"" + TEST_THREAD; ++ final static String IN_OBJECT_WAIT = "in Object.wait()"; ++ final static String THREAD_STATE = "java.lang.Thread.State: RUNNABLE"; ++ final static String THREAD_INFO = "Thread:"; // the details are not important ++ final static String JAVATHREAD_STATE = "JavaThread state: _thread_blocked"; ++ final static String CURRENT_METHOD = "at TestThreadDumpClassInitMonitor$Target$1.run"; ++ final static String WAIT_INFO = "- waiting on the Class initialization monitor for TestThreadDumpClassInitMonitor$Target"; ++ ++ volatile static boolean ready = false; ++ ++ static List stackDump; // jstack output as lines ++ ++ static class Target { ++ ++ static int field; ++ ++ // The main thread will initialize this class and so ++ // execute the actual test logic here. ++ static { ++ if (Thread.currentThread() != current) { ++ throw new Error("Initialization logic error"); ++ } ++ System.out.println("Initializing Target class in main thread"); ++ ++ Thread t = new Thread() { ++ public void run() { ++ System.out.println("Test thread about to access Target"); ++ ready = true; // tell main thread we're close ++ // This will block until the main thread completes ++ // static initialization of target ++ Target.field = 42; ++ System.out.println("Test thread done"); ++ } ++ }; ++ t.setName(TEST_THREAD); ++ t.start(); ++ ++ // We want to run jstack once the test thread is blocked but ++ // there's no programmatic way to detect that. So we check the flag ++ // that will be set just before it should block, then by the time ++ // we can exec jstack it should be ready. ++ try { ++ while (!ready) { ++ Thread.sleep(200); ++ } ++ } ++ catch (InterruptedException ie) { ++ throw new Error("Shouldn't happen"); ++ } ++ ++ // Now run jstack ++ try { ++ ProcessBuilder pb = new ProcessBuilder(JSTACK, PID); ++ OutputAnalyzer output = new OutputAnalyzer(pb.start()); ++ output.shouldHaveExitValue(0); ++ stackDump = output.asLines(); ++ } ++ catch (IOException ioe) { ++ throw new Error("Launching jstack failed", ioe); ++ } ++ } ++ } ++ ++ ++ public static void main(String[] args) throws Throwable { ++ // Implicitly run the main test logic ++ Target.field = 21; ++ ++ // Now check the output of jstack ++ try { ++ // product builds miss 2 lines of information in the stack ++ boolean isProduct = !Platform.isDebugBuild(); ++ int foundLines = 0; ++ parseStack: for (String line : stackDump) { ++ switch(foundLines) { ++ case 0: { ++ if (!line.startsWith(TEST_THREAD_ENTRY)) { ++ continue; ++ } ++ foundLines++; ++ if (!line.contains(IN_OBJECT_WAIT)) { ++ throw new Error("Unexpected initial stack line: " + line); ++ } ++ continue; ++ } ++ case 1: { ++ if (!line.trim().equals(THREAD_STATE)) { ++ throw new Error("Unexpected thread state line: " + line); ++ } ++ if (isProduct) { ++ foundLines += 3; ++ } else { ++ foundLines++; ++ } ++ continue; ++ } ++ case 2: { // Debug build ++ if (!line.startsWith(THREAD_INFO)) { ++ throw new Error("Unexpected thread info line: " + line); ++ } ++ foundLines++; ++ continue; ++ } ++ case 3: { // Debug build ++ if (!line.trim().equals(JAVATHREAD_STATE)) { ++ throw new Error("Unexpected JavaThread state line: " + line); ++ } ++ foundLines++; ++ continue; ++ } ++ case 4: { ++ if (!line.trim().startsWith(CURRENT_METHOD)) { ++ throw new Error("Unexpected current method line: " + line); ++ } ++ foundLines++; ++ continue; ++ } ++ case 5: { ++ if (!line.trim().equals(WAIT_INFO)) { ++ throw new Error("Unexpected monitor information line: " + line); ++ } ++ break parseStack; ++ } ++ default: throw new Error("Logic error in case statement"); ++ } ++ } ++ ++ if (foundLines == 0) { ++ throw new Error("Unexpected stack content - did not find line starting with " ++ + TEST_THREAD_ENTRY); ++ } ++ } ++ catch (Error e) { ++ // Dump the full stack trace on error so we can check the content ++ for (String line : stackDump) { ++ System.out.println(line); ++ } ++ throw e; ++ } ++ } ++ ++ // This helper relies on RuntimeMXBean.getName() returning a string ++ // that looks like this: 5436@mt-haku ++ // ++ // The testlibrary has tryFindJvmPid(), but that uses a separate ++ // process which is much more expensive for finding out your own PID. ++ // ++ static String getPid() { ++ RuntimeMXBean runtimebean = ManagementFactory.getRuntimeMXBean(); ++ String vmname = runtimebean.getName(); ++ int i = vmname.indexOf('@'); ++ if (i != -1) { ++ vmname = vmname.substring(0, i); ++ } ++ return vmname; ++ } ++} +\ No newline at end of file +-- +2.22.0 + diff --git a/8254723-Add-diagnostic-command-to-write-Linux-perf-m.patch b/8254723-Add-diagnostic-command-to-write-Linux-perf-m.patch new file mode 100644 index 0000000000000000000000000000000000000000..c3e3ca9fe0fe2f97fd826a110dc56e6f96f13316 --- /dev/null +++ b/8254723-Add-diagnostic-command-to-write-Linux-perf-m.patch @@ -0,0 +1,277 @@ +From 6a5759c82b869c4d931273609aa19eb1a84df8db Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:12:51 +0800 +Subject: 8254723-Add-diagnostic-command-to-write-Linux-perf-m.patch + +--- + hotspot/src/os/linux/vm/globals_linux.hpp | 5 +- + hotspot/src/os/linux/vm/os_linux.cpp | 6 ++ + hotspot/src/share/vm/code/codeCache.cpp | 36 ++++++++ + hotspot/src/share/vm/code/codeCache.hpp | 1 + + hotspot/src/share/vm/runtime/java.cpp | 6 ++ + .../share/vm/services/diagnosticCommand.cpp | 7 ++ + .../share/vm/services/diagnosticCommand.hpp | 23 +++++ + .../test/serviceability/dcmd/PerfMapTest.java | 84 +++++++++++++++++++ + 8 files changed, 167 insertions(+), 1 deletion(-) + create mode 100644 hotspot/test/serviceability/dcmd/PerfMapTest.java + +diff --git a/hotspot/src/os/linux/vm/globals_linux.hpp b/hotspot/src/os/linux/vm/globals_linux.hpp +index f98bde41a..5cbe686d3 100644 +--- a/hotspot/src/os/linux/vm/globals_linux.hpp ++++ b/hotspot/src/os/linux/vm/globals_linux.hpp +@@ -55,7 +55,10 @@ + product(bool, PreferContainerQuotaForCPUCount, true, \ + "Calculate the container CPU availability based on the value" \ + " of quotas (if set), when true. Otherwise, use the CPU" \ +- " shares value, provided it is less than quota.") ++ " shares value, provided it is less than quota.") \ ++ \ ++ diagnostic(bool, DumpPerfMapAtExit, false, \ ++ "Write map file for Linux perf tool at exit") + + // + // Defines Linux-specific default values. The flags are available on all +diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp +index a1cc85ca3..197b5c193 100644 +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -5648,6 +5648,12 @@ jint os::init_2(void) + // initialize thread priority policy + prio_init(); + ++ if (DumpPerfMapAtExit && FLAG_IS_DEFAULT(UseCodeCacheFlushing)) { ++ // Disable code cache flushing to ensure the map file written at ++ // exit contains all nmethods generated during execution. ++ FLAG_SET_DEFAULT(UseCodeCacheFlushing, false); ++ } ++ + return JNI_OK; + } + +diff --git a/hotspot/src/share/vm/code/codeCache.cpp b/hotspot/src/share/vm/code/codeCache.cpp +index 37f24b5e9..97ad3ba79 100644 +--- a/hotspot/src/share/vm/code/codeCache.cpp ++++ b/hotspot/src/share/vm/code/codeCache.cpp +@@ -1033,3 +1033,39 @@ void CodeCache::log_state(outputStream* st) { + unallocated_capacity()); + } + ++#ifdef LINUX ++void CodeCache::write_perf_map() { ++ MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); ++ ++ // Perf expects to find the map file at /tmp/perf-.map. ++ char fname[32]; ++ jio_snprintf(fname, sizeof(fname), "/tmp/perf-%d.map", os::current_process_id()); ++ ++ fileStream fs(fname, "w"); ++ if (!fs.is_open()) { ++ DEBUG_ONLY(warning("[codecache] Failed to create %s for perf map", fname)); ++ return; ++ } ++ ++ FOR_ALL_ALIVE_BLOBS(cb) { ++ if (cb->is_nmethod()) { ++ nmethod *nm = (nmethod *) cb; ++ assert(!nm->is_unloaded(), "Tautology"); ++ ResourceMark rm; ++ const char* method_name = nm->method()->name_and_sig_as_C_string(); ++ fs.print_cr(INTPTR_FORMAT " " INTPTR_FORMAT " %s", ++ (intptr_t)cb->code_begin(), (intptr_t)cb->code_size(), ++ method_name); ++ } ++ if (cb->is_runtime_stub()) { ++ RuntimeStub *stub = (RuntimeStub *) cb; ++ ResourceMark rm; ++ const char* method_name = stub->name(); ++ fs.print_cr(INTPTR_FORMAT " " INTPTR_FORMAT " %s", ++ (intptr_t)cb->code_begin(), (intptr_t)cb->code_size(), ++ method_name); ++ } ++ } ++} ++ ++#endif // LINUX +diff --git a/hotspot/src/share/vm/code/codeCache.hpp b/hotspot/src/share/vm/code/codeCache.hpp +index ab1417b19..0aad2d648 100644 +--- a/hotspot/src/share/vm/code/codeCache.hpp ++++ b/hotspot/src/share/vm/code/codeCache.hpp +@@ -158,6 +158,7 @@ class CodeCache : AllStatic { + static void print_trace(const char* event, CodeBlob* cb, int size = 0) PRODUCT_RETURN; + static void print_summary(outputStream* st, bool detailed = true); // Prints a summary of the code cache usage + static void log_state(outputStream* st); ++ LINUX_ONLY(static void write_perf_map();) + + // Dcmd (Diagnostic commands) + static void print_codelist(outputStream* st); +diff --git a/hotspot/src/share/vm/runtime/java.cpp b/hotspot/src/share/vm/runtime/java.cpp +index 5a628b73e..fec8fb94d 100644 +--- a/hotspot/src/share/vm/runtime/java.cpp ++++ b/hotspot/src/share/vm/runtime/java.cpp +@@ -537,6 +537,12 @@ void before_exit(JavaThread * thread) { + BytecodeHistogram::print(); + } + ++#ifdef LINUX ++ if (DumpPerfMapAtExit) { ++ CodeCache::write_perf_map(); ++ } ++#endif ++ + if (JvmtiExport::should_post_thread_life()) { + JvmtiExport::post_thread_end(thread); + } +diff --git a/hotspot/src/share/vm/services/diagnosticCommand.cpp b/hotspot/src/share/vm/services/diagnosticCommand.cpp +index 416dc77ce..f8f6ad546 100644 +--- a/hotspot/src/share/vm/services/diagnosticCommand.cpp ++++ b/hotspot/src/share/vm/services/diagnosticCommand.cpp +@@ -36,6 +36,7 @@ + #include "services/management.hpp" + #include "utilities/macros.hpp" + #include "oops/objArrayOop.hpp" ++#include "code/codeCache.hpp" + + #ifdef LINUX + #include "trimCHeapDCmd.hpp" +@@ -81,6 +82,7 @@ void DCmdRegistrant::register_dcmds(){ + #ifdef LINUX + DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); + DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); ++ DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); + #endif // LINUX + + // Enhanced JMX Agent Support +@@ -868,3 +870,8 @@ void CodeCacheDCmd::execute(DCmdSource source, TRAPS) { + VMThread::execute(&printCodeCacheOp); + } + ++#ifdef LINUX ++void PerfMapDCmd::execute(DCmdSource source, TRAPS) { ++ CodeCache::write_perf_map(); ++} ++#endif // LINUX +\ No newline at end of file +diff --git a/hotspot/src/share/vm/services/diagnosticCommand.hpp b/hotspot/src/share/vm/services/diagnosticCommand.hpp +index 3733fa7f7..d446aab4e 100644 +--- a/hotspot/src/share/vm/services/diagnosticCommand.hpp ++++ b/hotspot/src/share/vm/services/diagnosticCommand.hpp +@@ -590,4 +590,27 @@ public: + virtual void execute(DCmdSource source, TRAPS); + }; + ++#ifdef LINUX ++class PerfMapDCmd : public DCmd { ++public: ++ PerfMapDCmd(outputStream* output, bool heap) : DCmd(output, heap) {} ++ static const char* name() { ++ return "Compiler.perfmap"; ++ } ++ static const char* description() { ++ return "Write map file for Linux perf tool."; ++ } ++ static const char* impact() { ++ return "Low"; ++ } ++ static const JavaPermission permission() { ++ JavaPermission p = {"java.lang.management.ManagementPermission", ++ "monitor", NULL}; ++ return p; ++ } ++ static int num_arguments() { return 0; } ++ virtual void execute(DCmdSource source, TRAPS); ++}; ++#endif // LINUX ++ + #endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP +diff --git a/hotspot/test/serviceability/dcmd/PerfMapTest.java b/hotspot/test/serviceability/dcmd/PerfMapTest.java +new file mode 100644 +index 000000000..1807b2a7f +--- /dev/null ++++ b/hotspot/test/serviceability/dcmd/PerfMapTest.java +@@ -0,0 +1,84 @@ ++/* ++ * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2020, Arm Limited. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test PerfMapTest ++ * @bug 8254723 ++ * @requires os.family == "linux" ++ * @library /testlibrary ++ * @run testng/othervm PerfMapTest ++ * @summary Test of diagnostic command Compiler.perfmap ++ */ ++ ++import org.testng.annotations.Test; ++import org.testng.Assert; ++ ++import com.oracle.java.testlibrary.OutputAnalyzer; ++import com.oracle.java.testlibrary.CommandExecutor; ++import com.oracle.java.testlibrary.JMXExecutor; ++import com.oracle.java.testlibrary.ProcessTools; ++ ++import java.io.IOException; ++import java.nio.file.Files; ++import java.nio.file.Path; ++import java.nio.file.Paths; ++import java.util.regex.Matcher; ++import java.util.regex.Pattern; ++ ++/** ++ * Call jcmd Compiler.perfmap and check the output file has the expected ++ * format. ++ */ ++public class PerfMapTest { ++ ++ static final Pattern LINE_PATTERN = ++ Pattern.compile("^((?:0x)?\\p{XDigit}+)\\s+((?:0x)?\\p{XDigit}+)\\s+(.*)$"); ++ ++ public void run(CommandExecutor executor) throws Exception { ++ OutputAnalyzer output = executor.execute("Compiler.perfmap"); ++ ++ output.stderrShouldBeEmpty(); ++ output.stdoutShouldBeEmpty(); ++ ++ final long pid = ProcessTools.getProcessId(); ++ final Path path = Paths.get(String.format("/tmp/perf-%d.map", pid)); ++ ++ Assert.assertTrue(Files.exists(path)); ++ ++ // Sanity check the file contents ++ try { ++ for (String entry : Files.readAllLines(path)) { ++ Matcher m = LINE_PATTERN.matcher(entry); ++ Assert.assertTrue(m.matches(), "Invalid file format: " + entry); ++ } ++ } catch (IOException e) { ++ Assert.fail(e.toString()); ++ } ++ } ++ ++ @Test ++ public void jmx() throws Exception { ++ run(new JMXExecutor()); ++ } ++} +-- +2.22.0 + diff --git a/8257695-linux-Add-process-memory-information-to-hs-e.patch b/8257695-linux-Add-process-memory-information-to-hs-e.patch index 7cd83f422d0fa48247ce6de1b4365ed5c91e1a75..f94afff3f1e160f2abddc9863f7da8ad3c312c7e 100644 --- a/8257695-linux-Add-process-memory-information-to-hs-e.patch +++ b/8257695-linux-Add-process-memory-information-to-hs-e.patch @@ -1,5 +1,4 @@ From d68c637a36b65d0bce893991e9c910efbc06239a Mon Sep 17 00:00:00 2001 -From: eapen Date: Mon, 12 Dec 2022 16:10:41 +0800 Subject: [PATCH 10/33] I68TO2: 8257695: [linux] Add process-memory information to hs-err and VM.info @@ -22,7 +21,7 @@ index 6dbedf5..4c265d5 100644 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC -@@ -2216,7 +2219,10 @@ void os::print_os_info(outputStream* st) { +@@ -2215,7 +2218,10 @@ void os::print_os_info(outputStream* st) { os::Posix::print_load_average(st); @@ -34,7 +33,7 @@ index 6dbedf5..4c265d5 100644 os::Linux::print_container_info(st); } -@@ -2278,12 +2284,69 @@ void os::Linux::print_libversion_info(outputStream* st) { +@@ -2280,12 +2286,69 @@ void os::Linux::print_libversion_info(outputStream* st) { st->cr(); } @@ -103,7 +102,7 @@ index 6dbedf5..4c265d5 100644 +} + void os::Linux::print_container_info(outputStream* st) { - if (!OSContainer::is_containerized()) { + if (!OSContainer::is_containerized()) { return; diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp index c674882..066b03a 100644 diff --git a/8260923-Add-more-tests-for-SSLSocket-input-output-sh.patch b/8260923-Add-more-tests-for-SSLSocket-input-output-sh.patch new file mode 100644 index 0000000000000000000000000000000000000000..c49fe15533ec52962c94bdbeb0adc31580577567 --- /dev/null +++ b/8260923-Add-more-tests-for-SSLSocket-input-output-sh.patch @@ -0,0 +1,131 @@ +From c3aae68d629a3adc02fb0764c95d922e716f0ee3 Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Mon, 15 Jan 2024 11:13:55 +0800 +Subject: [PATCH] [Backport]8260923: Add more tests for SSLSocket input/output shutdown +--- + .../ssl/SSLSocketImpl/SSLSocketCloseHang.java | 69 ++++++++++++++-------- + 1 file changed, 46 insertions(+), 23 deletions(-) + +diff --git a/jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java b/jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java +index f74c1fe76..ff6334feb 100644 +--- a/jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java ++++ b/jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java +@@ -23,12 +23,17 @@ + + /* + * @test +- * @bug 8184328 8253368 ++ * @bug 8184328 8253368 8260923 + * @summary JDK8u131-b34-socketRead0 hang at SSL read +- * @run main/othervm SSLSocketCloseHang +- * @run main/othervm SSLSocketCloseHang shutdownInputTest ++ * @run main/othervm SSLSocketCloseHang TLSv1.2 ++ * @run main/othervm SSLSocketCloseHang TLSv1.2 shutdownInput ++ * @run main/othervm SSLSocketCloseHang TLSv1.2 shutdownOutput ++ * @run main/othervm SSLSocketCloseHang TLSv1.3 ++ * @run main/othervm SSLSocketCloseHang TLSv1.3 shutdownInput ++ * @run main/othervm SSLSocketCloseHang TLSv1.3 shutdownOutput + */ + ++ + import java.io.*; + import java.net.*; + import java.util.*; +@@ -36,7 +41,6 @@ import java.security.*; + import javax.net.ssl.*; + + public class SSLSocketCloseHang { +- + /* + * ============================================================= + * Set the various variables needed for the tests, then +@@ -73,7 +77,7 @@ public class SSLSocketCloseHang { + */ + static boolean debug = false; + +- static boolean shutdownInputTest = false; ++ static String socketCloseType; + + /* + * If the client or server is doing some kind of object creation +@@ -148,28 +152,45 @@ public class SSLSocketCloseHang { + Thread.sleep(500); + System.err.println("Client closing: " + System.nanoTime()); + +- if (shutdownInputTest) { +- try { +- sslSocket.shutdownInput(); +- } catch (SSLException e) { +- if (!e.getMessage().contains +- ("closing inbound before receiving peer's close_notify")) { +- throw new RuntimeException("expected different exception message. " + +- e.getMessage()); +- } +- } +- if (!sslSocket.getSession().isValid()) { +- throw new RuntimeException("expected session to remain valid"); +- } ++ closeConnection(sslSocket); ++ ++ clientClosed = true; ++ System.err.println("Client closed: " + System.nanoTime()); ++ } + ++ private void closeConnection(SSLSocket sslSocket) throws IOException { ++ if ("shutdownInput".equals(socketCloseType)) { ++ shutdownInput(sslSocket); ++ // second call to shutdownInput() should just return, ++ // shouldn't throw any exception ++ sslSocket.shutdownInput(); ++ // invoking shutdownOutput() just after shutdownInput() ++ sslSocket.shutdownOutput(); ++ } else if ("shutdownOutput".equals(socketCloseType)) { ++ sslSocket.shutdownOutput(); ++ // second call to shutdownInput() should just return, ++ // shouldn't throw any exception ++ sslSocket.shutdownOutput(); ++ // invoking shutdownInput() just after shutdownOutput() ++ shutdownInput(sslSocket); + } else { + sslSocket.close(); + } ++ } + +- +- +- clientClosed = true; +- System.err.println("Client closed: " + System.nanoTime()); ++ private void shutdownInput(SSLSocket sslSocket) throws IOException { ++ try { ++ sslSocket.shutdownInput(); ++ } catch (SSLException e) { ++ if (!e.getMessage().contains ++ ("closing inbound before receiving peer's close_notify")) { ++ throw new RuntimeException("expected different exception " ++ + "message. " + e.getMessage()); ++ } ++ } ++ if (!sslSocket.getSession().isValid()) { ++ throw new RuntimeException("expected session to remain valid"); ++ } + } + + /* +@@ -197,11 +218,13 @@ public class SSLSocketCloseHang { + System.setProperty("javax.net.ssl.keyStorePassword", passwd); + System.setProperty("javax.net.ssl.trustStore", trustFilename); + System.setProperty("javax.net.ssl.trustStorePassword", passwd); ++ System.setProperty("jdk.tls.client.protocols", args[0]); + + if (debug) + System.setProperty("javax.net.debug", "all"); + +- shutdownInputTest = args.length > 0 ? true : false; ++ socketCloseType = args.length > 1 ? args[1] : ""; ++ + + /* + * Start the tests. +-- +2.12.3 + diff --git a/8263557-Possible-NULL-dereference-in-Arena-destruct_.patch b/8263557-Possible-NULL-dereference-in-Arena-destruct_.patch new file mode 100644 index 0000000000000000000000000000000000000000..481b9230c2e407e0ea76f2f75f3c5f6d48096803 --- /dev/null +++ b/8263557-Possible-NULL-dereference-in-Arena-destruct_.patch @@ -0,0 +1,25 @@ +From facc89d6a5776a26193c9321111c8489e4af525f Mon Sep 17 00:00:00 2001 +Subject: 8263557: Possible NULL dereference in Arena::destruct_contents() + +--- + hotspot/src/share/vm/memory/allocation.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/hotspot/src/share/vm/memory/allocation.cpp b/hotspot/src/share/vm/memory/allocation.cpp +index 3cd30a686..abbcc6c49 100644 +--- a/hotspot/src/share/vm/memory/allocation.cpp ++++ b/hotspot/src/share/vm/memory/allocation.cpp +@@ -521,7 +521,9 @@ void Arena::destruct_contents() { + // reset size before chop to avoid a rare racing condition + // that can have total arena memory exceed total chunk memory + set_size_in_bytes(0); +- _first->chop(); ++ if (_first != NULL) { ++ _first->chop(); ++ } + reset(); + } + +-- +2.22.0 + diff --git a/8273553-sun.security.ssl.SSLEngineImpl.closeInbound-.patch b/8273553-sun.security.ssl.SSLEngineImpl.closeInbound-.patch new file mode 100644 index 0000000000000000000000000000000000000000..fce10484c340ee7e45c3bd871c296e2355cd8344 --- /dev/null +++ b/8273553-sun.security.ssl.SSLEngineImpl.closeInbound-.patch @@ -0,0 +1,581 @@ +From 4e32bc622c1f73c2ab6a4ef4b4bbd92e381a3439 Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Mon, 15 Jan 2024 11:11:41 +0800 +Subject: [PATCH] [Backport]8273553: sun.security.ssl.SSLEngineImpl.closeInbound also has + similar error of JDK-8253368 +--- + .../classes/sun/security/ssl/SSLEngineImpl.java | 24 +- + .../classes/sun/security/ssl/SSLSocketImpl.java | 7 +- + .../SSLSocketSSLEngineCloseInbound.java | 491 +++++++++++++++++++++ + 3 files changed, 508 insertions(+), 14 deletions(-) + create mode 100644 jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketSSLEngineCloseInbound.java + +diff --git a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java +index 05ffb8a00..a9cc989f2 100644 +--- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java ++++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java +@@ -47,7 +47,7 @@ import javax.net.ssl.SSLProtocolException; + import javax.net.ssl.SSLSession; + + /** +- * Implementation of an non-blocking SSLEngine. ++ * Implementation of a non-blocking SSLEngine. + * + * @author Brad Wetmore + */ +@@ -230,7 +230,7 @@ final class SSLEngineImpl extends SSLEngine implements SSLTransport { + if (ciphertext == null && !conContext.isNegotiated && + conContext.isInboundClosed() && + hsStatus == HandshakeStatus.NEED_WRAP) { +- // Even the outboud is open, no futher data could be wrapped as: ++ // Even the outbound is open, no further data could be wrapped as: + // 1. the outbound is empty + // 2. no negotiated connection + // 3. the inbound has closed, cannot complete the handshake +@@ -631,17 +631,19 @@ final class SSLEngineImpl extends SSLEngine implements SSLTransport { + SSLLogger.finest("Closing inbound of SSLEngine"); + } + +- // Is it ready to close inbound? +- // +- // No need to throw exception if the initial handshake is not started. +- if (!conContext.isInputCloseNotified && +- (conContext.isNegotiated || conContext.handshakeContext != null)) { + +- throw conContext.fatal(Alert.INTERNAL_ERROR, +- "closing inbound before receiving peer's close_notify"); ++ try { ++ // Is it ready to close inbound? ++ // ++ // No need to throw exception if the initial handshake is not started. ++ if (!conContext.isInputCloseNotified && ++ (conContext.isNegotiated || conContext.handshakeContext != null)) { ++ throw new SSLException( ++ "closing inbound before receiving peer's close_notify"); ++ } ++ } finally { ++ conContext.closeInbound(); + } +- +- conContext.closeInbound(); + } + + @Override +diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java +index 69c96f226..7e8b131bb 100644 +--- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java ++++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java +@@ -742,9 +742,10 @@ public final class SSLSocketImpl + // No need to throw exception if the initial handshake is not started. + try { + if (checkCloseNotify && !conContext.isInputCloseNotified && +- (conContext.isNegotiated || conContext.handshakeContext != null)) { +- throw new SSLException( +- "closing inbound before receiving peer's close_notify"); ++ (conContext.isNegotiated || ++ conContext.handshakeContext != null)) { ++ throw new SSLException( ++ "closing inbound before receiving peer's close_notify"); + } + } finally { + conContext.closeInbound(); +diff --git a/jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketSSLEngineCloseInbound.java b/jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketSSLEngineCloseInbound.java +new file mode 100644 +index 000000000..abf1571ca +--- /dev/null ++++ b/jdk/test/sun/security/ssl/SSLSocketImpl/SSLSocketSSLEngineCloseInbound.java +@@ -0,0 +1,491 @@ ++/* ++ * Copyright (c) 2011, 2022, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++// ++// SunJSSE does not support dynamic system properties, no way to re-use ++// system properties in samevm/agentvm mode. ++// ++ ++/* ++ * @test ++ * @bug 8273553 8253368 ++ * @summary sun.security.ssl.SSLEngineImpl.closeInbound also has similar error ++ * of JDK-8253368 ++ * @run main/othervm SSLSocketSSLEngineCloseInbound TLSv1.3 ++ * @run main/othervm SSLSocketSSLEngineCloseInbound TLSv1.2 ++ * @run main/othervm SSLSocketSSLEngineCloseInbound TLSv1.1 ++ * @run main/othervm SSLSocketSSLEngineCloseInbound TLSv1 ++ * @run main/othervm SSLSocketSSLEngineCloseInbound TLS ++ */ ++ ++/** ++ * A SSLSocket/SSLEngine interop test case. This is not the way to ++ * code SSLEngine-based servers, but works for what we need to do here, ++ * which is to make sure that SSLEngine/SSLSockets can talk to each other. ++ * SSLEngines can use direct or indirect buffers, and different code ++ * is used to get at the buffer contents internally, so we test that here. ++ * ++ * The test creates one SSLSocket (client) and one SSLEngine (server). ++ * The SSLSocket talks to a raw ServerSocket, and the server code ++ * does the translation between byte [] and ByteBuffers that the SSLEngine ++ * can use. The "transport" layer consists of a Socket Input/OutputStream ++ * and two byte buffers for the SSLEngines: think of them ++ * as directly connected pipes. ++ * ++ * Again, this is a *very* simple example: real code will be much more ++ * involved. For example, different threading and I/O models could be ++ * used, transport mechanisms could close unexpectedly, and so on. ++ * ++ * When this application runs, notice that several messages ++ * (wrap/unwrap) pass before any application data is consumed or ++ * produced. (For more information, please see the SSL/TLS ++ * specifications.) There may several steps for a successful handshake, ++ * so it's typical to see the following series of operations: ++ * ++ * client server message ++ * ====== ====== ======= ++ * write() ... ClientHello ++ * ... unwrap() ClientHello ++ * ... wrap() ServerHello/Certificate ++ * read() ... ServerHello/Certificate ++ * write() ... ClientKeyExchange ++ * write() ... ChangeCipherSpec ++ * write() ... Finished ++ * ... unwrap() ClientKeyExchange ++ * ... unwrap() ChangeCipherSpec ++ * ... unwrap() Finished ++ * ... wrap() ChangeCipherSpec ++ * ... wrap() Finished ++ * read() ... ChangeCipherSpec ++ * read() ... Finished ++ */ ++import javax.net.ssl.*; ++import javax.net.ssl.SSLEngineResult.*; ++import java.io.*; ++import java.net.*; ++import java.security.*; ++import java.nio.*; ++ ++public class SSLSocketSSLEngineCloseInbound { ++ ++ /* ++ * Enables logging of the SSL/TLS operations. ++ */ ++ private static final boolean logging = true; ++ ++ /* ++ * Enables the JSSE system debugging system property: ++ * ++ * -Djavax.net.debug=all ++ * ++ * This gives a lot of low-level information about operations underway, ++ * including specific handshake messages, and might be best examined ++ * after gaining some familiarity with this application. ++ */ ++ private static final boolean debug = false; ++ private final SSLContext sslc; ++ private SSLEngine serverEngine; // server-side SSLEngine ++ private SSLSocket clientSocket; ++ ++ private final byte[] serverMsg = ++ "Hi there Client, I'm a Server.".getBytes(); ++ private final byte[] clientMsg = ++ "Hello Server, I'm a Client! Pleased to meet you!".getBytes(); ++ ++ private ByteBuffer serverOut; // write side of serverEngine ++ private ByteBuffer serverIn; // read side of serverEngine ++ ++ private volatile Exception clientException; ++ private volatile Exception serverException; ++ ++ /* ++ * For data transport, this example uses local ByteBuffers. ++ */ ++ private ByteBuffer cTOs; // "reliable" transport client->server ++ private ByteBuffer sTOc; // "reliable" transport server->client ++ ++ /* ++ * The following is to set up the keystores/trust material. ++ */ ++ private static final String pathToStores = "../../../../javax/net/ssl/etc"; ++ private static final String keyStoreFile = "keystore"; ++ private static final String trustStoreFile = "truststore"; ++ private static final String keyFilename = ++ System.getProperty("test.src", ".") + "/" + pathToStores ++ + "/" + keyStoreFile; ++ private static final String trustFilename = ++ System.getProperty("test.src", ".") + "/" + pathToStores ++ + "/" + trustStoreFile; ++ ++ /* ++ * Main entry point for this test. ++ */ ++ public static void main(String[] args) throws Exception { ++ String protocol = args[0]; ++ ++ // reset security properties to make sure that the algorithms ++ // and keys used in this test are not disabled. ++ Security.setProperty("jdk.tls.disabledAlgorithms", ""); ++ Security.setProperty("jdk.certpath.disabledAlgorithms", ""); ++ ++ if (debug) { ++ System.setProperty("javax.net.debug", "all"); ++ } ++ ++ /* ++ * Run the tests with direct and indirect buffers. ++ */ ++ SSLSocketSSLEngineCloseInbound test = ++ new SSLSocketSSLEngineCloseInbound(protocol); ++ log("-------------------------------------"); ++ log("Testing " + protocol + " for direct buffers ..."); ++ test.runTest(true); ++ ++ log("---------------------------------------"); ++ log("Testing " + protocol + " for indirect buffers ..."); ++ test.runTest(false); ++ ++ log("Test Passed."); ++ } ++ ++ /* ++ * Create an initialized SSLContext to use for these tests. ++ */ ++ public SSLSocketSSLEngineCloseInbound(String protocol) throws Exception { ++ ++ KeyStore ks = KeyStore.getInstance("JKS"); ++ KeyStore ts = KeyStore.getInstance("JKS"); ++ ++ char[] passphrase = "passphrase".toCharArray(); ++ ++ try (FileInputStream keyFile = new FileInputStream(keyFilename); ++ FileInputStream trustFile = new FileInputStream(trustFilename)) { ++ ks.load(keyFile, passphrase); ++ ts.load(trustFile, passphrase); ++ } ++ ++ KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); ++ kmf.init(ks, passphrase); ++ ++ TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509"); ++ tmf.init(ts); ++ ++ SSLContext sslCtx = SSLContext.getInstance(protocol); ++ ++ sslCtx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); ++ ++ sslc = sslCtx; ++ } ++ ++ /* ++ * Run the test. ++ * ++ * Sit in a tight loop, with the server engine calling wrap/unwrap ++ * regardless of whether data is available or not. We do this until ++ * we get the application data. Then we shutdown and go to the next one. ++ * ++ * The main loop handles all the I/O phases of the SSLEngine's ++ * lifetime: ++ * ++ * initial handshaking ++ * application data transfer ++ * engine closing ++ * ++ * One could easily separate these phases into separate ++ * sections of code. ++ */ ++ private void runTest(boolean direct) throws Exception { ++ clientSocket = null; ++ ++ // generates the server-side Socket ++ try (ServerSocket serverSocket = new ServerSocket()) { ++ serverSocket.setReuseAddress(false); ++ serverSocket.bind(null); ++ int port = serverSocket.getLocalPort(); ++ log("Port: " + port); ++ Thread thread = createClientThread(port); ++ ++ createSSLEngine(); ++ createBuffers(direct); ++ ++ // server-side socket that will read ++ try (Socket socket = serverSocket.accept()) { ++ socket.setSoTimeout(500); ++ ++ InputStream is = socket.getInputStream(); ++ OutputStream os = socket.getOutputStream(); ++ ++ SSLEngineResult serverResult; // results from last operation ++ ++ /* ++ * Examining the SSLEngineResults could be much more involved, ++ * and may alter the overall flow of the application. ++ * ++ * For example, if we received a BUFFER_OVERFLOW when trying ++ * to write to the output pipe, we could reallocate a larger ++ * pipe, but instead we wait for the peer to drain it. ++ */ ++ byte[] inbound = new byte[8192]; ++ byte[] outbound = new byte[8192]; ++ ++ while (!isEngineClosed(serverEngine)) { ++ int len; ++ ++ // Inbound data ++ log("================"); ++ ++ // Try reading Client side, even if it's already closed. ++ try { ++ len = is.read(inbound); ++ if (len > 0) { ++ cTOs.put(inbound, 0, len); ++ } ++ } catch (IOException e) { ++ /* ++ * swallow IO/SocketTimeoutExceptions. We'll do ++ * the testing/exit after the unwraps. ++ */ ++ } ++ ++ cTOs.flip(); ++ ++ serverResult = serverEngine.unwrap(cTOs, serverIn); ++ log("server unwrap: ", serverResult); ++ runDelegatedTasks(serverResult, serverEngine); ++ cTOs.compact(); ++ ++ // Outbound data ++ log("----"); ++ ++ // After we've received our app bytes, close input side ++ // and see what happens. Exit the test at the end. ++ if (serverIn.position() != 0) { ++ try { ++ serverEngine.closeInbound(); ++ throw new Exception( ++ "No error shutting down client's input"); ++ } catch (SSLException e) { ++ System.out.println( ++ "Server caught the right Exception"); ++ } ++ ++ if (serverEngine.getSession().isValid()) { ++ System.out.println("Server session is still valid"); ++ } else { ++ throw new Exception("Server session is not valid"); ++ } ++ ++ return; ++ } ++ ++ serverResult = serverEngine.wrap(serverOut, sTOc); ++ log("server wrap: ", serverResult); ++ runDelegatedTasks(serverResult, serverEngine); ++ ++ sTOc.flip(); ++ ++ if ((len = sTOc.remaining()) != 0) { ++ sTOc.get(outbound, 0, len); ++ os.write(outbound, 0, len); ++ // Give the other side a chance to process ++ } ++ ++ sTOc.compact(); ++ } ++ } catch (Exception e) { ++ serverException = e; ++ } finally { ++ // Wait for the client to join up with us. ++ if (thread != null) { ++ thread.join(); ++ } ++ } ++ } finally { ++ if (serverException != null) { ++ if (clientException != null) { ++ serverException.initCause(clientException); ++ } ++ throw serverException; ++ } ++ if (clientException != null) { ++ if (serverException != null) { ++ clientException.initCause(serverException); ++ } ++ throw clientException; ++ } ++ } ++ } ++ ++ /* ++ * Create a client thread which does simple SSLSocket operations. ++ * We'll write and read one data packet. ++ */ ++ private Thread createClientThread(final int port) { ++ ++ Thread t = new Thread("ClientThread") { ++ ++ @Override ++ public void run() { ++ // client-side socket ++ try (SSLSocket sslSocket = (SSLSocket)sslc.getSocketFactory(). ++ createSocket("localhost", port)) { ++ clientSocket = sslSocket; ++ ++ OutputStream os = sslSocket.getOutputStream(); ++ ++ // write(byte[]) goes in one shot. ++ os.write(clientMsg); ++ os.flush(); ++ ++ try { ++ sslSocket.shutdownInput(); ++ throw new Exception( ++ "No error shutting down client's input"); ++ } catch (SSLException e) { ++ System.out.println("Client caught the right Exception"); ++ } ++ ++ if (sslSocket.getSession().isValid()) { ++ System.out.println("Client session is still valid"); ++ } else { ++ throw new Exception("Client's session is not valid"); ++ } ++ ++ // Give server a chance to read before we shutdown via ++ // the try-with-resources block. ++ Thread.sleep(2000); ++ } catch (Exception e) { ++ clientException = e; ++ } ++ } ++ }; ++ t.start(); ++ return t; ++ } ++ ++ /* ++ * Using the SSLContext created during object creation, ++ * create/configure the SSLEngines we'll use for this test. ++ */ ++ private void createSSLEngine() { ++ /* ++ * Configure the serverEngine to act as a server in the SSL/TLS ++ * handshake. ++ */ ++ serverEngine = sslc.createSSLEngine(); ++ serverEngine.setUseClientMode(false); ++ serverEngine.getNeedClientAuth(); ++ } ++ ++ /* ++ * Create and size the buffers appropriately. ++ */ ++ private void createBuffers(boolean direct) { ++ ++ SSLSession session = serverEngine.getSession(); ++ int appBufferMax = session.getApplicationBufferSize(); ++ int netBufferMax = session.getPacketBufferSize(); ++ ++ /* ++ * We'll make the input buffers a bit bigger than the max needed ++ * size, so that unwrap()s following a successful data transfer ++ * won't generate BUFFER_OVERFLOWS. ++ * ++ * We'll use a mix of direct and indirect ByteBuffers for ++ * tutorial purposes only. In reality, only use direct ++ * ByteBuffers when they give a clear performance enhancement. ++ */ ++ if (direct) { ++ serverIn = ByteBuffer.allocateDirect(appBufferMax + 50); ++ cTOs = ByteBuffer.allocateDirect(netBufferMax); ++ sTOc = ByteBuffer.allocateDirect(netBufferMax); ++ } else { ++ serverIn = ByteBuffer.allocate(appBufferMax + 50); ++ cTOs = ByteBuffer.allocate(netBufferMax); ++ sTOc = ByteBuffer.allocate(netBufferMax); ++ } ++ ++ serverOut = ByteBuffer.wrap(serverMsg); ++ } ++ ++ /* ++ * If the result indicates that we have outstanding tasks to do, ++ * go ahead and run them in this thread. ++ */ ++ private static void runDelegatedTasks(SSLEngineResult result, ++ SSLEngine engine) throws Exception { ++ ++ if (result.getHandshakeStatus() == HandshakeStatus.NEED_TASK) { ++ Runnable runnable; ++ while ((runnable = engine.getDelegatedTask()) != null) { ++ log("\trunning delegated task..."); ++ runnable.run(); ++ } ++ HandshakeStatus hsStatus = engine.getHandshakeStatus(); ++ if (hsStatus == HandshakeStatus.NEED_TASK) { ++ throw new Exception( ++ "handshake shouldn't need additional tasks"); ++ } ++ log("\tnew HandshakeStatus: " + hsStatus); ++ } ++ } ++ ++ private static boolean isEngineClosed(SSLEngine engine) { ++ return (engine.isOutboundDone() && engine.isInboundDone()); ++ } ++ ++ /* ++ * Logging code ++ */ ++ private static boolean resultOnce = true; ++ ++ private static void log(String str, SSLEngineResult result) { ++ if (!logging) { ++ return; ++ } ++ if (resultOnce) { ++ resultOnce = false; ++ log("The format of the SSLEngineResult is: \n" ++ + "\t\"getStatus() / getHandshakeStatus()\" +\n" ++ + "\t\"bytesConsumed() / bytesProduced()\"\n"); ++ } ++ HandshakeStatus hsStatus = result.getHandshakeStatus(); ++ log(str ++ + result.getStatus() + "/" + hsStatus + ", " ++ + result.bytesConsumed() + "/" + result.bytesProduced() ++ + " bytes"); ++ if (hsStatus == HandshakeStatus.FINISHED) { ++ log("\t...ready for application data"); ++ } ++ } ++ ++ private static void log(String str) { ++ if (logging) { ++ if (debug) { ++ System.err.println(str); ++ } else { ++ System.out.println(str); ++ } ++ } ++ } ++} +-- +2.12.3 + diff --git a/8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch b/8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch new file mode 100644 index 0000000000000000000000000000000000000000..ee61f2742d573c1a6fe7c9a573a1ad2d85ace4fc --- /dev/null +++ b/8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch @@ -0,0 +1,238 @@ +From e5bf7f105c0066f770f5cdc65f94410d45d11f0f Mon Sep 17 00:00:00 2001 +Subject: 8278794: Infinite loop in DeflaterOutputStream.finish() + +--- + .../share/classes/java/util/zip/Deflater.java | 10 ++ + .../java/util/zip/DeflaterOutputStream.java | 14 +- + .../java/util/zip/ZipOutputStream.java | 4 +- + jdk/test/java/util/zip/CloseDeflaterTest.java | 147 ------------------ + 4 files changed, 22 insertions(+), 153 deletions(-) + delete mode 100644 jdk/test/java/util/zip/CloseDeflaterTest.java + +diff --git a/jdk/src/share/classes/java/util/zip/Deflater.java b/jdk/src/share/classes/java/util/zip/Deflater.java +index 3bb5f9901..bffa397d9 100644 +--- a/jdk/src/share/classes/java/util/zip/Deflater.java ++++ b/jdk/src/share/classes/java/util/zip/Deflater.java +@@ -559,6 +559,16 @@ class Deflater { + throw new NullPointerException("Deflater has been closed"); + } + ++ /** ++ * Returns the value of 'finish' flag. ++ * 'finish' will be set to true if def.finish() method is called. ++ */ ++ boolean shouldFinish() { ++ synchronized (zsRef) { ++ return finish; ++ } ++ } ++ + private static native void initIDs(); + private native static long init(int level, int strategy, boolean nowrap); + private native static void setDictionary(long addr, byte[] b, int off, int len); +diff --git a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java +index f4cf79693..c698a0147 100644 +--- a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java ++++ b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2022, 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 +@@ -221,9 +221,15 @@ class DeflaterOutputStream extends FilterOutputStream { + */ + public void finish() throws IOException { + if (!def.finished()) { +- def.finish(); +- while (!def.finished()) { +- deflate(); ++ try{ ++ def.finish(); ++ while (!def.finished()) { ++ deflate(); ++ } ++ } catch(IOException e) { ++ if (usesDefaultDeflater) ++ def.end(); ++ throw e; + } + } + } +diff --git a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java +index f001ddf00..cd9194276 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java ++++ b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2022, 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 +@@ -302,7 +302,7 @@ class ZipOutputStream extends DeflaterOutputStream implements ZipConstants { + crc.reset(); + current = null; + } catch (IOException e) { +- if (usesDefaultDeflater && !(e instanceof ZipException)) ++ if (def.shouldFinish() && usesDefaultDeflater && !(e instanceof ZipException)) + def.end(); + throw e; + } +diff --git a/jdk/test/java/util/zip/CloseDeflaterTest.java b/jdk/test/java/util/zip/CloseDeflaterTest.java +deleted file mode 100644 +index 8aa4960f5..000000000 +--- a/jdk/test/java/util/zip/CloseDeflaterTest.java ++++ /dev/null +@@ -1,147 +0,0 @@ +-/* +- * Copyright (c) 2021, 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 +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/** +- * @test +- * @bug 8193682 +- * @summary Test Infinite loop while writing on closed GZipOutputStream , ZipOutputStream and JarOutputStream. +- * @run testng CloseDeflaterTest +- */ +-import java.io.*; +-import java.util.Random; +-import java.util.jar.JarOutputStream; +-import java.util.zip.GZIPOutputStream; +-import java.util.zip.ZipOutputStream; +-import java.util.zip.ZipEntry; +- +-import org.testng.annotations.BeforeTest; +-import org.testng.annotations.DataProvider; +-import org.testng.annotations.Test; +-import static org.testng.Assert.fail; +- +- +-public class CloseDeflaterTest { +- +- //number of bytes to write +- private static final int INPUT_LENGTH= 512; +- //OutputStream that will throw an exception during a write operation +- private static OutputStream outStream = new OutputStream() { +- @Override +- public void write(byte[] b, int off, int len) throws IOException { +- //throw exception during write +- throw new IOException(); +- } +- @Override +- public void write(byte b[]) throws IOException {} +- @Override +- public void write(int b) throws IOException {} +- }; +- private static byte[] inputBytes = new byte[INPUT_LENGTH]; +- private static Random rand = new Random(); +- +- @DataProvider(name = "testgzipinput") +- public Object[][] testGZipInput() { +- //testGZip will close the GZipOutputStream using close() method when the boolean +- //useCloseMethod is set to true and finish() method if the value is set to false +- return new Object[][] { +- { GZIPOutputStream.class, true }, +- { GZIPOutputStream.class, false }, +- }; +- } +- +- @DataProvider(name = "testzipjarinput") +- public Object[][] testZipAndJarInput() { +- //testZipAndJarInput will perfrom write/closeEntry operations on JarOutputStream when the boolean +- //useJar is set to true and on ZipOutputStream if the value is set to false +- return new Object[][] { +- { JarOutputStream.class, true }, +- { ZipOutputStream.class, false }, +- }; +- } +- +- @BeforeTest +- public void before_test() +- { +- //add inputBytes array with random bytes to write into Zip +- rand.nextBytes(inputBytes); +- } +- +- //Test for infinite loop by writing bytes to closed GZIPOutputStream +- @Test(dataProvider = "testgzipinput") +- public void testGZip(Class type, boolean useCloseMethod) throws IOException { +- GZIPOutputStream zip = new GZIPOutputStream(outStream); +- try { +- zip.write(inputBytes, 0, INPUT_LENGTH); +- //close zip +- if(useCloseMethod) { +- zip.close(); +- } else { +- zip.finish(); +- } +- } catch (IOException e) { +- //expected +- } +- for (int i = 0; i < 3; i++) { +- try { +- //write on a closed GZIPOutputStream +- zip.write(inputBytes, 0, INPUT_LENGTH); +- fail("Deflater closed exception not thrown"); +- } catch (NullPointerException e) { +- //expected , Deflater has been closed exception +- } +- } +- } +- +- //Test for infinite loop by writing bytes to closed ZipOutputStream/JarOutputStream +- @Test(dataProvider = "testzipjarinput") +- public void testZipCloseEntry(Class type,boolean useJar) throws IOException { +- ZipOutputStream zip = null; +- if(useJar) { +- zip = new JarOutputStream(outStream); +- } else { +- zip = new ZipOutputStream(outStream); +- } +- try { +- zip.putNextEntry(new ZipEntry("")); +- } catch (IOException e) { +- //expected to throw IOException since putNextEntry calls write method +- } +- try { +- zip.write(inputBytes, 0, INPUT_LENGTH); +- //close zip entry +- zip.closeEntry(); +- } catch (IOException e) { +- //expected +- } +- for (int i = 0; i < 3; i++) { +- try { +- //write on a closed ZipOutputStream +- zip.write(inputBytes, 0, INPUT_LENGTH); +- fail("Deflater closed exception not thrown"); +- } catch (NullPointerException e) { +- //expected , Deflater has been closed exception +- } +- } +- } +- +-} +-- +2.22.0 + diff --git a/8285516-clearPassword-should-be-called-in-a-finally-.patch b/8285516-clearPassword-should-be-called-in-a-finally-.patch new file mode 100644 index 0000000000000000000000000000000000000000..8d7c2d6a20893190a7788bc09b08e964e2972167 --- /dev/null +++ b/8285516-clearPassword-should-be-called-in-a-finally-.patch @@ -0,0 +1,33 @@ +From 42884748f75ef4ea6e0cc8e537c831cb258961f8 Mon Sep 17 00:00:00 2001 +Subject: 8285516: clearPassword should be called in a finally try block + +--- + .../share/classes/sun/security/pkcs12/PKCS12KeyStore.java | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java b/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java +index 0457b1e5c..63e0afc2a 100644 +--- a/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ++++ b/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java +@@ -837,14 +837,14 @@ public final class PKCS12KeyStore extends KeyStoreSpi { + { + SecretKey skey = null; + ++ PBEKeySpec keySpec = new PBEKeySpec(password); + try { +- PBEKeySpec keySpec = new PBEKeySpec(password); + SecretKeyFactory skFac = SecretKeyFactory.getInstance("PBE"); + skey = skFac.generateSecret(keySpec); +- keySpec.clearPassword(); + } catch (Exception e) { +- throw new IOException("getSecretKey failed: " + +- e.getMessage(), e); ++ throw new IOException("getSecretKey failed: " + e.getMessage(), e); ++ } finally { ++ keySpec.clearPassword(); + } + return skey; + } +-- +2.22.0 + diff --git a/8287109-Distrust-failed-with-CertificateExpired.patch b/8287109-Distrust-failed-with-CertificateExpired.patch deleted file mode 100644 index 11a8755508584eac643789f7ab155d4fba5a59b2..0000000000000000000000000000000000000000 --- a/8287109-Distrust-failed-with-CertificateExpired.patch +++ /dev/null @@ -1,237 +0,0 @@ -From d2d3408154beb52370ee8784767375a7cc8d325d Mon Sep 17 00:00:00 2001 -Date: Wed, 21 Sep 2022 10:31:17 +0800 -Subject: 8287109: Distrust.java failed with CertificateExpiredException - ---- - .../Symantec/Distrust.java | 26 +++++- - .../Symantec/appleistca2g1-chain.pem | 80 ------------------- - .../Symantec/geotrustglobalca-chain.pem | 66 --------------- - 3 files changed, 23 insertions(+), 149 deletions(-) - delete mode 100644 jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/appleistca2g1-chain.pem - delete mode 100644 jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustglobalca-chain.pem - -diff --git a/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/Distrust.java b/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/Distrust.java -index d394f417..22266255 100644 ---- a/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/Distrust.java -+++ b/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/Distrust.java -@@ -51,15 +51,14 @@ public class Distrust { - // Each of the roots have a test certificate chain stored in a file - // named "-chain.pem". - private static String[] rootsToTest = new String[] { -- "geotrustglobalca", "geotrustprimarycag2", "geotrustprimarycag3", -+ "geotrustprimarycag2", "geotrustprimarycag3", - "geotrustuniversalca", "thawteprimaryrootca", "thawteprimaryrootcag2", - "thawteprimaryrootcag3", "verisignclass3g3ca", "verisignclass3g4ca", - "verisignclass3g5ca", "verisignuniversalrootca" }; - - // Each of the subCAs with a delayed distrust date have a test certificate - // chain stored in a file named "-chain.pem". -- private static String[] subCAsToTest = new String[] { -- "appleistca2g1", "appleistca8g1" }; -+ private static String[] subCAsToTest = new String[] {"appleistca8g1"}; - - // A date that is after the restrictions take affect - private static final Date APRIL_17_2019 = -@@ -177,6 +176,11 @@ public class Distrust { - throw new Exception("chain should be invalid"); - } - } catch (CertificateException ce) { -+ // expired TLS certificates should not be treated as failure -+ if (expired(ce)) { -+ System.err.println("Test is N/A, chain is expired"); -+ return; -+ } - if (valid) { - throw new Exception("Unexpected exception, chain " + - "should be valid", ce); -@@ -184,6 +188,7 @@ public class Distrust { - if (ce instanceof ValidatorException) { - ValidatorException ve = (ValidatorException)ce; - if (ve.getErrorType() != ValidatorException.T_UNTRUSTED_CERT) { -+ ce.printStackTrace(System.err); - throw new Exception("Unexpected exception: " + ce); - } - } else { -@@ -192,6 +197,21 @@ public class Distrust { - } - } - -+ // check if a cause of exception is an expired cert -+ private static boolean expired(CertificateException ce) { -+ if (ce instanceof CertificateExpiredException) { -+ return true; -+ } -+ Throwable t = ce.getCause(); -+ while (t != null) { -+ if (t instanceof CertificateExpiredException) { -+ return true; -+ } -+ t = t.getCause(); -+ } -+ return false; -+ } -+ - private static X509Certificate[] loadCertificateChain(String name) - throws Exception { - try (InputStream in = new FileInputStream(TEST_SRC + File.separator + -diff --git a/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/appleistca2g1-chain.pem b/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/appleistca2g1-chain.pem -deleted file mode 100644 -index 0235631d..00000000 ---- a/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/appleistca2g1-chain.pem -+++ /dev/null -@@ -1,80 +0,0 @@ -------BEGIN CERTIFICATE----- --MIIGGzCCBQOgAwIBAgIITJltLCqcD0gwDQYJKoZIhvcNAQELBQAwYjEcMBoGA1UE --AxMTQXBwbGUgSVNUIENBIDIgLSBHMTEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBB --dXRob3JpdHkxEzARBgNVBAoTCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE5 --MDEwODIxMTcxNFoXDTIwMDgwODIxMjcwMFowgaoxSjBIBgNVBAMMQWFjdGl2ZS5n --ZW90cnVzdC1nbG9iYWwtY2EudGVzdC1wYWdlcy5jZXJ0aWZpY2F0ZW1hbmFnZXIu --YXBwbGUuY29tMSUwIwYDVQQLDBxtYW5hZ2VtZW50OmlkbXMuZ3JvdXAuODY0ODU5 --MRMwEQYDVQQKDApBcHBsZSBJbmMuMRMwEQYDVQQIDApDYWxpZm9ybmlhMQswCQYD --VQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCjFUrVHTEX --0aVU6x9LiGa6oVr9blaCsMFrLicPQguc43Vs/pN+g4jzRXsTSMe9XefezBQb6tzZ --SMRXVB4kWMr4K1BVgQDkXeyoh4KrXRkdEF9ZIJPNxwTmmYUOc5M6NOYwkLelYz+t --7n1iNIGylbjwU4qwauElk2alFVqYTEPDLzwvqVDb9jMAJ8MPSDjfUlXW0XD9oXZM --hC+8LU9JBgJ3YBdzRHa4WnrudUbWjspqaNfAYpVIX0cfCJKnMsKqaSKjS4pIRtWm --L6NlCTCoIMyOh+wmbWPPX24H2D3+ump5FA35fRYbVznmosl5n1AK34S9tD4XZ7lO --WZKfaFi1liMCAwEAAaOCAoowggKGMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAU --2HqURHyQcJAWnt0XnAFEA4bWKikwfgYIKwYBBQUHAQEEcjBwMDQGCCsGAQUFBzAC --hihodHRwOi8vY2VydHMuYXBwbGUuY29tL2FwcGxlaXN0Y2EyZzEuZGVyMDgGCCsG --AQUFBzABhixodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAzLWFwcGxlaXN0Y2Ey --ZzEwMTBMBgNVHREERTBDgkFhY3RpdmUuZ2VvdHJ1c3QtZ2xvYmFsLWNhLnRlc3Qt --cGFnZXMuY2VydGlmaWNhdGVtYW5hZ2VyLmFwcGxlLmNvbTCB/wYDVR0gBIH3MIH0 --MIHxBgoqhkiG92NkBQsEMIHiMIGkBggrBgEFBQcCAjCBlwyBlFJlbGlhbmNlIG9u --IHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5j --ZSBvZiBhbnkgYXBwbGljYWJsZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2Ug --YW5kL29yIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wOQYIKwYB --BQUHAgEWLWh0dHA6Ly93d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5 --L3JwYTAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwNwYDVR0fBDAwLjAs --oCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVpc3RjYTJnMS5jcmwwHQYD --VR0OBBYEFP0qkmFJhArI0MsfW0V+/wY9x4GSMA4GA1UdDwEB/wQEAwIFoDANBgkq --hkiG9w0BAQsFAAOCAQEATjT8M0bIq+mFc8k5cd4KDjCMBjYl/l3/8zKlWYGP+nl1 --KRogXcGRa3LcfpdJcqgMrx8e9Xohduvl8MBzwv671rYkppzZdsmZdLVorAdbL5GL --suhTjAS5yL3NBWNMRpeOgFsVr7YtPDEvo3CFsnzjg7THe0S6Y35oYukJtUzGUvSY --kC3ApBTdjj0vAeow+dbt+AHKnQiEnon4ToSFmtnkru08Uxe7uyHCQ2sLUg0EPYc9 --t9I8lviaHfK/mQoCzlme2O/H5Rher8dXCv8hVT1NKbsi28EpgpqcTLS+hn/Edc/q --4dPDoO1Ozs+ixRzFeMpA+JrnAyARb6qbSrAPBgtIbQ== -------END CERTIFICATE----- -------BEGIN CERTIFICATE----- --MIIEQDCCAyigAwIBAgIDAjp0MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT --MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i --YWwgQ0EwHhcNMTQwNjE2MTU0MjAyWhcNMjIwNTIwMTU0MjAyWjBiMRwwGgYDVQQD --ExNBcHBsZSBJU1QgQ0EgMiAtIEcxMSAwHgYDVQQLExdDZXJ0aWZpY2F0aW9uIEF1 --dGhvcml0eTETMBEGA1UEChMKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0G --CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQk6EdR0MgFrILa+vD1bTox5jN896/ --6E3p4zaAB/xFG2p8RYauVtOkCX9hDWtdflJrfbTIOcT0Zzr3g84Zb4YvfkV+Rxxn --UsqVBV3iNlGFwNRngDVvFd0+/R3S/Y80UNjsdiq+49Pa5P3I6ygClhGXF2Ec6cRZ --O0LcMtEJHdqm0UOG/16yvIzPZtsBiwKulEjzOI/96jKoCOyGl1GUJD5JSZZT6Hmh --QIHpBbuTlVH84/18EUv3ngizFUkVB/nRN6CbSzL2tcTcatH8Cu324MUpoKiLcf4N --krz+VHAYCm3H7Qz7yS0Gw4yF/MuGXNY2jhKLCX/7GRo41fCUMHoPpozzAgMBAAGj --ggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1luMrMTjAdBgNVHQ4E --FgQU2HqURHyQcJAWnt0XnAFEA4bWKikwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV --HQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2cuc3ltY2IuY29t --L2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUFBwEBBCIwIDAeBggrBgEFBQcwAYYS --aHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARFMEMwQQYKYIZIAYb4RQEHNjAzMDEG --CCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3RydXN0LmNvbS9yZXNvdXJjZXMvY3Bz --MA0GCSqGSIb3DQEBCwUAA4IBAQAWR3NvhaJi4ecqdruJlUIml7xKrKxwUzo/MYM9 --PByrmuKxXRx2GqA8DHJXvtOeUODImdZY1wLqzg0pVHzN9cLGkClVo28UqAtCDTqY --bQZ4nvBqox0CCqIopI3CgUY+bWfa3j/+hQ5CKhLetbf7uBunlux3n+zUU5V6/wf0 --8goUwFFSsdaOUAsamVy8C8m97e34XsFW201+I6QRoSzUGwWa5BtS9nw4mQVLunKN --QolgBGYq9P1o12v3mUEo1mwkq+YlUy7Igpnioo8jvjCDsSeL+mh/AUnoxphrEC6Y --XorXykuxx8lYmtA225aV7LaB5PLNbxt5h0wQPInkTfpU3Kqm -------END CERTIFICATE----- -------BEGIN CERTIFICATE----- --MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT --MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i --YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG --EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg --R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 --9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq --fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv --iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU --1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ --bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW --MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA --ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l --uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn --Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS --tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF --PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un --hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV --5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== -------END CERTIFICATE----- -diff --git a/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustglobalca-chain.pem b/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustglobalca-chain.pem -deleted file mode 100644 -index 3249716b..00000000 ---- a/jdk/test/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustglobalca-chain.pem -+++ /dev/null -@@ -1,66 +0,0 @@ -------BEGIN CERTIFICATE----- --MIIHBjCCBe6gAwIBAgIQanINWwJAuap0V7lFjnfUwTANBgkqhkiG9w0BAQsFADBE --MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMU --R2VvVHJ1c3QgU1NMIENBIC0gRzMwHhcNMTcwNTAzMDAwMDAwWhcNMjAwNTAyMjM1 --OTU5WjCBkTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNV --BAcMDU1vdW50YWluIFZpZXcxFzAVBgNVBAoMDkdlb1RydXN0LCBJbmMuMRgwFgYD --VQQLDA9Sb290IDEwIC0gVkFMSUQxIjAgBgNVBAMMGXZhbGlkLXJvb3QxMC5nZW90 --cnVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTegUYhAh0 --P7aF6jzk8dit4Vzddo3hM+J7Eak/+N1sqVUS2HpNd7VO50FrbEWKIRusv7QNtlpY --1Cgrla8M4RAhCB0wkkHXZ1Evz6E1AEFQqNSjyuRQxeEXl+xCL+MF+yAMhDRnHh+E --eSJ3ie0T66saOyaLM9fPpr3xomAQ/IRlP1atJ/Z8XbPo25HuxwzxiWFW+RjwVIfI --gxHz4Okwc1uImDUIDlEu9Uaqqb4jHhxU1EkKMmgEncpqwCROcZMujUkogfB49Z7+ --K17r6ARIrUuxqfNPrPwe+O88WgIeDSWffPM67UlvtomZOwuTNdv9OoCX1wUCLS7m --/gZ3rqqqeJvfAgMBAAGjggOkMIIDoDAkBgNVHREEHTAbghl2YWxpZC1yb290MTAu --Z2VvdHJ1c3QuY29tMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgWgMCsGA1UdHwQk --MCIwIKAeoByGGmh0dHA6Ly9nbi5zeW1jYi5jb20vZ24uY3JsMIGdBgNVHSAEgZUw --gZIwgY8GBmeBDAECAjCBhDA/BggrBgEFBQcCARYzaHR0cHM6Ly93d3cuZ2VvdHJ1 --c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5L2xlZ2FsMEEGCCsGAQUFBwICMDUM --M2h0dHBzOi8vd3d3Lmdlb3RydXN0LmNvbS9yZXNvdXJjZXMvcmVwb3NpdG9yeS9s --ZWdhbDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAU --0m/3lvSFP3I8MH0j2oV4m6N8WnwwVwYIKwYBBQUHAQEESzBJMB8GCCsGAQUFBzAB --hhNodHRwOi8vZ24uc3ltY2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8vZ24uc3lt --Y2IuY29tL2duLmNydDCCAfUGCisGAQQB1nkCBAIEggHlBIIB4QHfAHUA3esdK3oN --T6Ygi4GtgWhwfi6OnQHVXIiNPRHEzbbsvswAAAFbz9h5vQAABAMARjBEAiAx/C0U --5NdHxK4v2oHnstYksb1Vny8PcQkSvgpx9PsZEwIgNTOU70Zc5szG23xdbvtoH5lN --SAoVswiF5gFQS5MGu1sAdgCkuQmQtBhYFIe7E6LMZ3AKPDWYBPkb37jjd80OyA3c --EAAAAVvP2HnZAAAEAwBHMEUCIFGjB8r2H0VDwTUE/aY/Mv+M97sqAvEP1doOcHpg --0qyfAiEArw/S2F7OEcmKGUY1WRBuApfAx5d7hzrTSV/jZv95qJwAdgDuS723dc5g --uuFCaR+r4Z5mow9+X7By2IMAxHuJeqj9ywAAAVvP2HoDAAAEAwBHMEUCIQCH6MFZ --tZF3Cqukt3/69fkU0Y5ePXXx8+xkOXRsIG3EGgIgSmCBWrnmPiiGA3x5QP8I8m4r --Uee0y7s4NQNwjMgHrjwAdgC8eOHfxfY8aEZJM02hD6FfCXlpIAnAgbTz9pF/Ptm4 --pQAAAVvP2HqcAAAEAwBHMEUCIA8e2kAVYYuQCtn4PqK98BuHnLm9rC40DboFLCle --SmQsAiEApbCJR05hr9VkNWmjaaUUGGZdVyUu9XX504LHVWyXZDUwDQYJKoZIhvcN --AQELBQADggEBAEtfBfZ2y5uTohvW3h00Kcuop6Nq7Y59GU3MeizPKtx48DB8qHyd --y5bLFwXzsGA1WkwpKzPbROsTGcAAXJHh03bj24AemUr/J/eQcjkfSoNBdHDpiSsk --VZkQK2fGJDiYJ/r9mxKZcgd2pyN3l2OtVtNMv2dnFGF35UkkeqO3jqImwbypAmRX --HdQV9dvW2YDRjzkebNNey6UwY9+YTSzr4da2hcaMHrj588Eqa4DDgNcY9QnE2RzN --giArA+4RlM4AZ3jC2A756I67hrlvH+lhumHLp06hGfMiQJF1aaauFVSa36HKc3C/ --ty+sLdJbemEJLAr8uNXggFD+U8TKw1S4LSw= -------END CERTIFICATE----- -------BEGIN CERTIFICATE----- --MIIETzCCAzegAwIBAgIDAjpvMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT --MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i --YWwgQ0EwHhcNMTMxMTA1MjEzNjUwWhcNMjIwNTIwMjEzNjUwWjBEMQswCQYDVQQG --EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg --U1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDjvn4K --hqPPa209K6GXrUkkTdd3uTR5CKWeop7eRxKSPX7qGYax6E89X/fQp3eaWx8KA7UZ --U9ulIZRpY51qTJEMEEe+EfpshiW3qwRoQjgJZfAU2hme+msLq2LvjafvY3AjqK+B --89FuiGdT7BKkKXWKp/JXPaKDmJfyCn3U50NuMHhiIllZuHEnRaoPZsZVP/oyFysx --j0ag+mkUfJ2fWuLrM04QprPtd2PYw5703d95mnrU7t7dmszDt6ldzBE6B7tvl6QB --I0eVH6N3+liSxsfQvc+TGEK3fveeZerVO8rtrMVwof7UEJrwEgRErBpbeFBFV0xv --vYDLgVwts7x2oR5lAgMBAAGjggFKMIIBRjAfBgNVHSMEGDAWgBTAephojYn7qwVk --DBF9qn1luMrMTjAdBgNVHQ4EFgQU0m/3lvSFP3I8MH0j2oV4m6N8WnwwEgYDVR0T --AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNgYDVR0fBC8wLTAroCmgJ4Yl --aHR0cDovL2cxLnN5bWNiLmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAvBggrBgEFBQcB --AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9nMi5zeW1jYi5jb20wTAYDVR0gBEUw --QzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1 --c3QuY29tL3Jlc291cmNlcy9jcHMwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5 --bWFudGVjUEtJLTEtNTM5MA0GCSqGSIb3DQEBCwUAA4IBAQCg1Pcs+3QLf2TxzUNq --n2JTHAJ8mJCi7k9o1CAacxI+d7NQ63K87oi+fxfqd4+DYZVPhKHLMk9sIb7SaZZ9 --Y73cK6gf0BOEcP72NZWJ+aZ3sEbIu7cT9clgadZM/tKO79NgwYCA4ef7i28heUrg --3Kkbwbf7w0lZXLV3B0TUl/xJAIlvBk4BcBmsLxHA4uYPL4ZLjXvDuacu9PGsFj45 --SVGeF0tPEDpbpaiSb/361gsDTUdWVxnzy2v189bPsPX1oxHSIFMTNDcFLENaY9+N --QNaFHlHpURceA1bJ8TCt55sRornQMYGbaLHZ6PPmlH7HrhMvh+3QJbBo+d4IWvMp --zNSS -------END CERTIFICATE----- --- -2.22.0 - diff --git a/8293114-GC-should-trim-the-native-heap-and-bug-fix.patch b/8293114-GC-should-trim-the-native-heap-and-bug-fix.patch index 1cc4fed773da81eaaa1e0408ca82f59be53c225b..eb0b7ef82a3279df571b9e033de5832d40e5fd08 100644 --- a/8293114-GC-should-trim-the-native-heap-and-bug-fix.patch +++ b/8293114-GC-should-trim-the-native-heap-and-bug-fix.patch @@ -503,7 +503,7 @@ index e39fd7a..024499a 100644 +++ b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp @@ -1,5 +1,5 @@ /* -- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. +- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * diff --git a/8293344-JDK-8242181-broke-stack-printing-for-non-att.patch b/8293344-JDK-8242181-broke-stack-printing-for-non-att.patch new file mode 100644 index 0000000000000000000000000000000000000000..6160d6a2b8dea2b498c322d1301dcf379a8b9f3d --- /dev/null +++ b/8293344-JDK-8242181-broke-stack-printing-for-non-att.patch @@ -0,0 +1,21 @@ +From 1b17272792968ae8b888c7ccb99133a4aee6b97f Mon Sep 17 00:00:00 2001 +Subject: 8293344: JDK-8242181 broke stack printing for non-attached threads +--- + hotspot/src/share/vm/utilities/elfFile.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/hotspot/src/share/vm/utilities/elfFile.cpp b/hotspot/src/share/vm/utilities/elfFile.cpp +index 81bd44109..448963b2d 100644 +--- a/hotspot/src/share/vm/utilities/elfFile.cpp ++++ b/hotspot/src/share/vm/utilities/elfFile.cpp +@@ -318,7 +318,6 @@ bool ElfFile::specifies_noexecstack() { + + bool ElfFile::get_source_info(const uint32_t offset_in_library, char* filename, const size_t filename_len, + int* line, bool is_pc_after_call) { +- ResourceMark rm; + if (!load_dwarf_file()) { + // Some ELF libraries do not provide separate .debuginfo files. Check if the current ELF file has the required + // DWARF sections. If so, treat the current ELF file as DWARF file. +-- +2.22.0 + diff --git a/8294357-tz-Update-Timezone-Data-to-2022d.patch b/8294357-tz-Update-Timezone-Data-to-2022d.patch deleted file mode 100644 index 2e10ad41cd93d36f5e14464c36bbc4cbcb6cce88..0000000000000000000000000000000000000000 --- a/8294357-tz-Update-Timezone-Data-to-2022d.patch +++ /dev/null @@ -1,526 +0,0 @@ -From 78c19b03f00f61f673311cf3c70a21ce25933eec Mon Sep 17 00:00:00 2001 -From: eapen -Date: Wed, 30 Nov 2022 11:39:58 +0000 -Subject: [PATCH 07/33] I68TO2: 8294357: (tz) Update Timezone Data to 2022d ---- - jdk/make/data/tzdata/VERSION | 2 +- - jdk/make/data/tzdata/asia | 30 +++++++---- - jdk/make/data/tzdata/backward | 2 + - jdk/make/data/tzdata/europe | 58 ++++------------------ - jdk/make/data/tzdata/southamerica | 10 +++- - jdk/make/data/tzdata/zone.tab | 2 - - .../classes/sun/util/calendar/ZoneInfoFile.java | 9 +--- - jdk/test/java/util/TimeZone/TimeZoneData/VERSION | 2 +- - .../java/util/TimeZone/TimeZoneData/aliases.txt | 2 + - .../util/TimeZone/TimeZoneData/displaynames.txt | 2 - - jdk/test/sun/util/calendar/zi/TestZoneInfo310.java | 15 ++++-- - jdk/test/sun/util/calendar/zi/tzdata/VERSION | 2 +- - jdk/test/sun/util/calendar/zi/tzdata/asia | 30 +++++++---- - jdk/test/sun/util/calendar/zi/tzdata/backward | 2 + - jdk/test/sun/util/calendar/zi/tzdata/europe | 58 ++++------------------ - jdk/test/sun/util/calendar/zi/tzdata/southamerica | 10 +++- - jdk/test/sun/util/calendar/zi/tzdata/zone.tab | 2 - - 17 files changed, 99 insertions(+), 139 deletions(-) - -diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION -index decb871..889d0e6 100644 ---- a/jdk/make/data/tzdata/VERSION -+++ b/jdk/make/data/tzdata/VERSION -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2022c -+tzdata2022d -diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia -index 6cb6d2c..1dc7d34 100644 ---- a/jdk/make/data/tzdata/asia -+++ b/jdk/make/data/tzdata/asia -@@ -3398,10 +3398,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 - # The winter time in 2015 started on October 23 at 01:00. - # https://wafa.ps/ar_page.aspx?id=CgpCdYa670694628582aCgpCdY - # http://www.palestinecabinet.gov.ps/portal/meeting/details/27583 --# --# From Paul Eggert (2019-04-10): --# For now, guess spring-ahead transitions are at 00:00 on the Saturday --# preceding March's last Sunday (i.e., Sat>=24). - - # From P Chan (2021-10-18): - # http://wafa.ps/Pages/Details/34701 -@@ -3418,6 +3414,18 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 - # From Heba Hamad (2022-03-10): - # summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM. - -+# From Heba Hamad (2022-08-30): -+# winter time will begin in Palestine from Saturday 10-29, 02:00 AM by -+# 60 minutes backwards. Also the state of Palestine adopted the summer -+# and winter time for the years: 2023,2024,2025,2026 ... -+# https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001.pdf -+# (2022-08-31): ... the Saturday before the last Sunday in March and October -+# at 2:00 AM ,for the years from 2023 to 2026. -+# (2022-09-05): https://mtit.pna.ps/Site/New/1453 -+# -+# From Paul Eggert (2022-08-31): -+# For now, assume that this rule will also be used after 2026. -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule EgyptAsia 1957 only - May 10 0:00 1:00 S - Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - -@@ -3448,14 +3456,16 @@ Rule Palestine 2013 only - Sep 27 0:00 0 - - Rule Palestine 2014 only - Oct 24 0:00 0 - - Rule Palestine 2015 only - Mar 28 0:00 1:00 S - Rule Palestine 2015 only - Oct 23 1:00 0 - --Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S --Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 - -+Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S -+Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 - - Rule Palestine 2019 only - Mar 29 0:00 1:00 S --Rule Palestine 2019 only - Oct Sat>=24 0:00 0 - --Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S -+Rule Palestine 2019 only - Oct Sat<=30 0:00 0 - -+Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S - Rule Palestine 2020 only - Oct 24 1:00 0 - --Rule Palestine 2021 max - Oct Fri>=23 1:00 0 - --Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S -+Rule Palestine 2021 only - Oct 29 1:00 0 - -+Rule Palestine 2022 only - Mar 27 0:00 1:00 S -+Rule Palestine 2022 max - Oct Sat<=30 2:00 0 - -+Rule Palestine 2023 max - Mar Sat<=30 2:00 1:00 S - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Gaza 2:17:52 - LMT 1900 Oct -diff --git a/jdk/make/data/tzdata/backward b/jdk/make/data/tzdata/backward -index d4a29e8..7765d99 100644 ---- a/jdk/make/data/tzdata/backward -+++ b/jdk/make/data/tzdata/backward -@@ -113,6 +113,8 @@ Link Etc/UTC Etc/UCT - Link Europe/London Europe/Belfast - Link Europe/Kyiv Europe/Kiev - Link Europe/Chisinau Europe/Tiraspol -+Link Europe/Kyiv Europe/Uzhgorod -+Link Europe/Kyiv Europe/Zaporozhye - Link Europe/London GB - Link Europe/London GB-Eire - Link Etc/GMT GMT+0 -diff --git a/jdk/make/data/tzdata/europe b/jdk/make/data/tzdata/europe -index f7eb7a3..9e0a538 100644 ---- a/jdk/make/data/tzdata/europe -+++ b/jdk/make/data/tzdata/europe -@@ -2638,10 +2638,14 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 - # From Alexander Krivenyshev (2014-03-17): - # time change at 2:00 (2am) on March 30, 2014 - # https://vz.ru/news/2014/3/17/677464.html --# From Paul Eggert (2014-03-30): --# Simferopol and Sevastopol reportedly changed their central town clocks --# late the previous day, but this appears to have been ceremonial --# and the discrepancies are small enough to not worry about. -+# From Tim Parenti (2022-07-01), per Paul Eggert (2014-03-30): -+# The clocks at the railway station in Simferopol were put forward from 22:00 -+# to 24:00 the previous day in a "symbolic ceremony"; however, per -+# contemporaneous news reports, "ordinary Crimeans [made] the daylight savings -+# time switch at 2am" on Sunday. -+# https://www.business-standard.com/article/pti-stories/crimea-to-set-clocks-to-russia-time-114033000014_1.html -+# https://www.reuters.com/article/us-ukraine-crisis-crimea-time/crimea-switches-to-moscow-time-amid-incorporation-frenzy-idUKBREA2S0LT20140329 -+# https://www.bbc.com/news/av/world-europe-26806583 - 2:00 EU EE%sT 2014 Mar 30 2:00 - 4:00 - MSK 2014 Oct 26 2:00s - 3:00 - MSK -@@ -3774,8 +3778,8 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - # US colleague David Cochrane) are still trying to get more - # information upon these local deviations from Kiev rules. - # --# From Paul Eggert (2022-02-08): --# For now, assume that Ukraine's other three zones followed the same rules, -+# From Paul Eggert (2022-08-27): -+# For now, assume that Ukraine's zones all followed the same rules, - # except that Crimea switched to Moscow time in 1994 as described elsewhere. - - # From Igor Karpov, who works for the Ukrainian Ministry of Justice, -@@ -3845,21 +3849,7 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - # * Ukrainian Government's Resolution of 20.03.1992, No. 139. - # http://www.uazakon.com/documents/date_8u/pg_grcasa.htm - --# From Paul Eggert (2022-04-12): --# As is usual in tzdb, Ukrainian zones use the most common English spellings. --# In particular, tzdb's name Europe/Kyiv uses the most common spelling in --# English for Ukraine's capital. Although tzdb's former name was Europe/Kiev, --# "Kyiv" is now more common due to widespread reporting of the current conflict. --# Conversely, tzdb continues to use the names Europe/Uzhgorod and --# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is --# certainly wrong as a transliteration of the Czech "Praha". --# English-language spelling of Ukrainian names is in flux, and --# some day "Uzhhorod" or "Zaporizhzhia" may become substantially more --# common in English; in the meantime, do not change these --# English spellings as that means less disruption for our users. -- - # Zone NAME STDOFF RULES FORMAT [UNTIL] --# This represents most of Ukraine. See above for the spelling of "Kyiv". - Zone Europe/Kyiv 2:02:04 - LMT 1880 - 2:02:04 - KMT 1924 May 2 # Kyiv Mean Time - 2:00 - EET 1930 Jun 21 -@@ -3869,34 +3859,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880 - 2:00 1:00 EEST 1991 Sep 29 3:00 - 2:00 C-Eur EE%sT 1996 May 13 - 2:00 EU EE%sT --# Transcarpathia used CET 1990/1991. --# "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but --# "Uzhgorod" is more common in English. --Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct -- 1:00 - CET 1940 -- 1:00 C-Eur CE%sT 1944 Oct -- 1:00 1:00 CEST 1944 Oct 26 -- 1:00 - CET 1945 Jun 29 -- 3:00 Russia MSK/MSD 1990 -- 3:00 - MSK 1990 Jul 1 2:00 -- 1:00 - CET 1991 Mar 31 3:00 -- 2:00 - EET 1992 Mar 20 -- 2:00 C-Eur EE%sT 1996 May 13 -- 2:00 EU EE%sT --# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991. --# "Zaporizhzhia" is the transliteration of the Ukrainian name, but --# "Zaporozh'ye" is more common in English. Use the common English --# spelling, except omit the apostrophe as it is not allowed in --# portable Posix file names. --Zone Europe/Zaporozhye 2:20:40 - LMT 1880 -- 2:20 - +0220 1924 May 2 -- 2:00 - EET 1930 Jun 21 -- 3:00 - MSK 1941 Aug 25 -- 1:00 C-Eur CE%sT 1943 Oct 25 -- 3:00 Russia MSK/MSD 1991 Mar 31 2:00 -- 2:00 E-Eur EE%sT 1992 Mar 20 -- 2:00 C-Eur EE%sT 1996 May 13 -- 2:00 EU EE%sT - - # Vatican City - # See Europe/Rome. -diff --git a/jdk/make/data/tzdata/southamerica b/jdk/make/data/tzdata/southamerica -index 13ec081..3c0e0e2 100644 ---- a/jdk/make/data/tzdata/southamerica -+++ b/jdk/make/data/tzdata/southamerica -@@ -1332,8 +1332,14 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 - # for America/Santiago will start on midnight of September 11th; - # and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas) - # will keep UTC -3 "indefinitely"... This is because on September 4th --# we will have a voting whether to approve a new Constitution.... --# https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sabado-10-de-septiembre-los-relojes-se-deben-adelantar-una-hora/ -+# we will have a voting whether to approve a new Constitution. -+# -+# From Eduardo Romero Urra (2022-08-17): -+# https://www.diariooficial.interior.gob.cl/publicaciones/2022/08/13/43327/01/2172567.pdf -+# -+# From Paul Eggert (2022-08-17): -+# Although the presidential decree stops at fall 2026, assume that -+# similar DST rules will continue thereafter. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Chile 1927 1931 - Sep 1 0:00 1:00 - -diff --git a/jdk/make/data/tzdata/zone.tab b/jdk/make/data/tzdata/zone.tab -index 51b65fa..ee02519 100644 ---- a/jdk/make/data/tzdata/zone.tab -+++ b/jdk/make/data/tzdata/zone.tab -@@ -424,8 +424,6 @@ TV -0831+17913 Pacific/Funafuti - TW +2503+12130 Asia/Taipei - TZ -0648+03917 Africa/Dar_es_Salaam - UA +5026+03031 Europe/Kyiv Ukraine (most areas) --UA +4837+02218 Europe/Uzhgorod Transcarpathia --UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk - UG +0019+03225 Africa/Kampala - UM +2813-17722 Pacific/Midway Midway Islands - UM +1917+16637 Pacific/Wake Wake Island -diff --git a/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java b/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java -index 43bddd5..4b84cda 100644 ---- a/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java -+++ b/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java -@@ -573,12 +573,8 @@ public final class ZoneInfoFile { - // we can then pass in the dom = -1, dow > 0 into ZoneInfo - // - // hacking, assume the >=24 is the result of ZRB optimization for -- // "last", it works for now. From tzdata2020d this hacking -- // will not work for Asia/Gaza and Asia/Hebron which follow -- // Palestine DST rules. -- if (dom < 0 || dom >= 24 && -- !(zoneId.equals("Asia/Gaza") || -- zoneId.equals("Asia/Hebron"))) { -+ // "last", it works for now. -+ if (dom < 0 || dom >= 24) { - params[1] = -1; - params[2] = toCalendarDOW[dow]; - } else { -@@ -600,7 +596,6 @@ public final class ZoneInfoFile { - params[7] = 0; - } else { - // hacking: see comment above -- // No need of hacking for Asia/Gaza and Asia/Hebron from tz2021e - if (dom < 0 || dom >= 24) { - params[6] = -1; - params[7] = toCalendarDOW[dow]; -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -index c32bee3..7147016 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -@@ -1 +1 @@ --tzdata2022c -+tzdata2022d -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt -index a5e6428..e3ce742 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt -@@ -183,6 +183,8 @@ Link Etc/UTC Etc/UCT - Link Europe/London Europe/Belfast - Link Europe/Kyiv Europe/Kiev - Link Europe/Chisinau Europe/Tiraspol -+Link Europe/Kyiv Europe/Uzhgorod -+Link Europe/Kyiv Europe/Zaporozhye - Link Europe/London GB - Link Europe/London GB-Eire - Link Etc/GMT GMT+0 -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -index fc14853..b382395 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -@@ -163,11 +163,9 @@ Europe/Simferopol MSK - Europe/Sofia EET EEST - Europe/Tallinn EET EEST - Europe/Tirane CET CEST --Europe/Uzhgorod EET EEST - Europe/Vienna CET CEST - Europe/Vilnius EET EEST - Europe/Warsaw CET CEST --Europe/Zaporozhye EET EEST - Europe/Zurich CET CEST - HST HST - MET MET MEST -diff --git a/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java b/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java -index 3aad69f..c682531 100644 ---- a/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java -+++ b/jdk/test/sun/util/calendar/zi/TestZoneInfo310.java -@@ -173,10 +173,19 @@ public class TestZoneInfo310 { - * Temporary ignoring the failing TimeZones which are having zone - * rules defined till year 2037 and/or above and have negative DST - * save time in IANA tzdata. This bug is tracked via JDK-8223388. -+ * -+ * Tehran/Iran rule has rules beyond 2037, in which javazic assumes -+ * to be the last year. Thus javazic's rule is based on year 2037 -+ * (Mar 20th/Sep 20th are the cutover dates), while the real rule -+ * has year 2087 where Mar 21st/Sep 21st are the cutover dates. - */ -- if (zid.equals("Africa/Casablanca") || zid.equals("Africa/El_Aaiun") -- || zid.equals("Asia/Tehran") || zid.equals("Iran")) { -- continue; -+ if (zid.equals("Africa/Casablanca") || // uses "Morocco" rule -+ zid.equals("Africa/El_Aaiun") || // uses "Morocco" rule -+ zid.equals("Asia/Tehran") || // last rule mismatch -+ zid.equals("Asia/Gaza") || // uses "Palestine" rule -+ zid.equals("Asia/Hebron") || // uses "Palestine" rule -+ zid.equals("Iran")) { // last rule mismatch -+ continue; - } - if (! zi.equalsTo(ziOLD)) { - System.out.println(zi.diffsTo(ziOLD)); -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/VERSION b/jdk/test/sun/util/calendar/zi/tzdata/VERSION -index decb871..889d0e6 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION -+++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2022c -+tzdata2022d -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/asia b/jdk/test/sun/util/calendar/zi/tzdata/asia -index 6cb6d2c..1dc7d34 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/asia -+++ b/jdk/test/sun/util/calendar/zi/tzdata/asia -@@ -3398,10 +3398,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 - # The winter time in 2015 started on October 23 at 01:00. - # https://wafa.ps/ar_page.aspx?id=CgpCdYa670694628582aCgpCdY - # http://www.palestinecabinet.gov.ps/portal/meeting/details/27583 --# --# From Paul Eggert (2019-04-10): --# For now, guess spring-ahead transitions are at 00:00 on the Saturday --# preceding March's last Sunday (i.e., Sat>=24). - - # From P Chan (2021-10-18): - # http://wafa.ps/Pages/Details/34701 -@@ -3418,6 +3414,18 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 - # From Heba Hamad (2022-03-10): - # summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM. - -+# From Heba Hamad (2022-08-30): -+# winter time will begin in Palestine from Saturday 10-29, 02:00 AM by -+# 60 minutes backwards. Also the state of Palestine adopted the summer -+# and winter time for the years: 2023,2024,2025,2026 ... -+# https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001.pdf -+# (2022-08-31): ... the Saturday before the last Sunday in March and October -+# at 2:00 AM ,for the years from 2023 to 2026. -+# (2022-09-05): https://mtit.pna.ps/Site/New/1453 -+# -+# From Paul Eggert (2022-08-31): -+# For now, assume that this rule will also be used after 2026. -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule EgyptAsia 1957 only - May 10 0:00 1:00 S - Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - -@@ -3448,14 +3456,16 @@ Rule Palestine 2013 only - Sep 27 0:00 0 - - Rule Palestine 2014 only - Oct 24 0:00 0 - - Rule Palestine 2015 only - Mar 28 0:00 1:00 S - Rule Palestine 2015 only - Oct 23 1:00 0 - --Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S --Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 - -+Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S -+Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 - - Rule Palestine 2019 only - Mar 29 0:00 1:00 S --Rule Palestine 2019 only - Oct Sat>=24 0:00 0 - --Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S -+Rule Palestine 2019 only - Oct Sat<=30 0:00 0 - -+Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S - Rule Palestine 2020 only - Oct 24 1:00 0 - --Rule Palestine 2021 max - Oct Fri>=23 1:00 0 - --Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S -+Rule Palestine 2021 only - Oct 29 1:00 0 - -+Rule Palestine 2022 only - Mar 27 0:00 1:00 S -+Rule Palestine 2022 max - Oct Sat<=30 2:00 0 - -+Rule Palestine 2023 max - Mar Sat<=30 2:00 1:00 S - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Gaza 2:17:52 - LMT 1900 Oct -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/backward b/jdk/test/sun/util/calendar/zi/tzdata/backward -index d4a29e8..7765d99 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/backward -+++ b/jdk/test/sun/util/calendar/zi/tzdata/backward -@@ -113,6 +113,8 @@ Link Etc/UTC Etc/UCT - Link Europe/London Europe/Belfast - Link Europe/Kyiv Europe/Kiev - Link Europe/Chisinau Europe/Tiraspol -+Link Europe/Kyiv Europe/Uzhgorod -+Link Europe/Kyiv Europe/Zaporozhye - Link Europe/London GB - Link Europe/London GB-Eire - Link Etc/GMT GMT+0 -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/europe b/jdk/test/sun/util/calendar/zi/tzdata/europe -index f7eb7a3..9e0a538 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/europe -+++ b/jdk/test/sun/util/calendar/zi/tzdata/europe -@@ -2638,10 +2638,14 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 - # From Alexander Krivenyshev (2014-03-17): - # time change at 2:00 (2am) on March 30, 2014 - # https://vz.ru/news/2014/3/17/677464.html --# From Paul Eggert (2014-03-30): --# Simferopol and Sevastopol reportedly changed their central town clocks --# late the previous day, but this appears to have been ceremonial --# and the discrepancies are small enough to not worry about. -+# From Tim Parenti (2022-07-01), per Paul Eggert (2014-03-30): -+# The clocks at the railway station in Simferopol were put forward from 22:00 -+# to 24:00 the previous day in a "symbolic ceremony"; however, per -+# contemporaneous news reports, "ordinary Crimeans [made] the daylight savings -+# time switch at 2am" on Sunday. -+# https://www.business-standard.com/article/pti-stories/crimea-to-set-clocks-to-russia-time-114033000014_1.html -+# https://www.reuters.com/article/us-ukraine-crisis-crimea-time/crimea-switches-to-moscow-time-amid-incorporation-frenzy-idUKBREA2S0LT20140329 -+# https://www.bbc.com/news/av/world-europe-26806583 - 2:00 EU EE%sT 2014 Mar 30 2:00 - 4:00 - MSK 2014 Oct 26 2:00s - 3:00 - MSK -@@ -3774,8 +3778,8 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - # US colleague David Cochrane) are still trying to get more - # information upon these local deviations from Kiev rules. - # --# From Paul Eggert (2022-02-08): --# For now, assume that Ukraine's other three zones followed the same rules, -+# From Paul Eggert (2022-08-27): -+# For now, assume that Ukraine's zones all followed the same rules, - # except that Crimea switched to Moscow time in 1994 as described elsewhere. - - # From Igor Karpov, who works for the Ukrainian Ministry of Justice, -@@ -3845,21 +3849,7 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - # * Ukrainian Government's Resolution of 20.03.1992, No. 139. - # http://www.uazakon.com/documents/date_8u/pg_grcasa.htm - --# From Paul Eggert (2022-04-12): --# As is usual in tzdb, Ukrainian zones use the most common English spellings. --# In particular, tzdb's name Europe/Kyiv uses the most common spelling in --# English for Ukraine's capital. Although tzdb's former name was Europe/Kiev, --# "Kyiv" is now more common due to widespread reporting of the current conflict. --# Conversely, tzdb continues to use the names Europe/Uzhgorod and --# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is --# certainly wrong as a transliteration of the Czech "Praha". --# English-language spelling of Ukrainian names is in flux, and --# some day "Uzhhorod" or "Zaporizhzhia" may become substantially more --# common in English; in the meantime, do not change these --# English spellings as that means less disruption for our users. -- - # Zone NAME STDOFF RULES FORMAT [UNTIL] --# This represents most of Ukraine. See above for the spelling of "Kyiv". - Zone Europe/Kyiv 2:02:04 - LMT 1880 - 2:02:04 - KMT 1924 May 2 # Kyiv Mean Time - 2:00 - EET 1930 Jun 21 -@@ -3869,34 +3859,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880 - 2:00 1:00 EEST 1991 Sep 29 3:00 - 2:00 C-Eur EE%sT 1996 May 13 - 2:00 EU EE%sT --# Transcarpathia used CET 1990/1991. --# "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but --# "Uzhgorod" is more common in English. --Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct -- 1:00 - CET 1940 -- 1:00 C-Eur CE%sT 1944 Oct -- 1:00 1:00 CEST 1944 Oct 26 -- 1:00 - CET 1945 Jun 29 -- 3:00 Russia MSK/MSD 1990 -- 3:00 - MSK 1990 Jul 1 2:00 -- 1:00 - CET 1991 Mar 31 3:00 -- 2:00 - EET 1992 Mar 20 -- 2:00 C-Eur EE%sT 1996 May 13 -- 2:00 EU EE%sT --# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991. --# "Zaporizhzhia" is the transliteration of the Ukrainian name, but --# "Zaporozh'ye" is more common in English. Use the common English --# spelling, except omit the apostrophe as it is not allowed in --# portable Posix file names. --Zone Europe/Zaporozhye 2:20:40 - LMT 1880 -- 2:20 - +0220 1924 May 2 -- 2:00 - EET 1930 Jun 21 -- 3:00 - MSK 1941 Aug 25 -- 1:00 C-Eur CE%sT 1943 Oct 25 -- 3:00 Russia MSK/MSD 1991 Mar 31 2:00 -- 2:00 E-Eur EE%sT 1992 Mar 20 -- 2:00 C-Eur EE%sT 1996 May 13 -- 2:00 EU EE%sT - - # Vatican City - # See Europe/Rome. -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/southamerica b/jdk/test/sun/util/calendar/zi/tzdata/southamerica -index 13ec081..3c0e0e2 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/southamerica -+++ b/jdk/test/sun/util/calendar/zi/tzdata/southamerica -@@ -1332,8 +1332,14 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 - # for America/Santiago will start on midnight of September 11th; - # and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas) - # will keep UTC -3 "indefinitely"... This is because on September 4th --# we will have a voting whether to approve a new Constitution.... --# https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sabado-10-de-septiembre-los-relojes-se-deben-adelantar-una-hora/ -+# we will have a voting whether to approve a new Constitution. -+# -+# From Eduardo Romero Urra (2022-08-17): -+# https://www.diariooficial.interior.gob.cl/publicaciones/2022/08/13/43327/01/2172567.pdf -+# -+# From Paul Eggert (2022-08-17): -+# Although the presidential decree stops at fall 2026, assume that -+# similar DST rules will continue thereafter. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Chile 1927 1931 - Sep 1 0:00 1:00 - -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab -index 51b65fa..ee02519 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab -+++ b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab -@@ -424,8 +424,6 @@ TV -0831+17913 Pacific/Funafuti - TW +2503+12130 Asia/Taipei - TZ -0648+03917 Africa/Dar_es_Salaam - UA +5026+03031 Europe/Kyiv Ukraine (most areas) --UA +4837+02218 Europe/Uzhgorod Transcarpathia --UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk - UG +0019+03225 Africa/Kampala - UM +2813-17722 Pacific/Midway Midway Islands - UM +1917+16637 Pacific/Wake Wake Island --- -1.8.3.1 diff --git a/8294906-Memory-leak-in-PKCS11-NSS-TLS-server.patch b/8294906-Memory-leak-in-PKCS11-NSS-TLS-server.patch new file mode 100644 index 0000000000000000000000000000000000000000..5dbfc417f7f3fffb15c30c1e38f4e9ab1a2747d0 --- /dev/null +++ b/8294906-Memory-leak-in-PKCS11-NSS-TLS-server.patch @@ -0,0 +1,338 @@ +From 44a22ec75a0ef4200ba824e9e00b56b735b911a0 Mon Sep 17 00:00:00 2001 +Subject: 8294906: Memory leak in PKCS11 NSS TLS server +--- + .../pkcs11/P11TlsKeyMaterialGenerator.java | 14 ++-- + .../crypto/provider/TLS/TestKeyMaterial.java | 31 ++++++++- + .../sun/crypto/provider/TLS/keymatdata.txt | 34 ++++++++++ + .../security/pkcs11/tls/TestKeyMaterial.java | 65 +++++++++++++------ + .../sun/security/pkcs11/tls/keymatdata.txt | 34 ++++++++++ + 5 files changed, 151 insertions(+), 27 deletions(-) + +diff --git a/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java b/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java +index f6848278c..4242ff756 100644 +--- a/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java ++++ b/jdk/src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2022, 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 +@@ -193,15 +193,19 @@ public final class P11TlsKeyMaterialGenerator extends KeyGeneratorSpi { + SecretKey clientMacKey, serverMacKey; + + // The MAC size may be zero for GCM mode. +- // +- // PKCS11 does not support GCM mode as the author made the comment, +- // so the macBits is unlikely to be zero. It's only a place holder. + if (macBits != 0) { + clientMacKey = P11Key.secretKey + (session, out.hClientMacSecret, "MAC", macBits, attributes); + serverMacKey = P11Key.secretKey + (session, out.hServerMacSecret, "MAC", macBits, attributes); + } else { ++ // NSS allocates MAC keys even if macBits is zero ++ if (out.hClientMacSecret != CK_INVALID_HANDLE) { ++ token.p11.C_DestroyObject(session.id(), out.hClientMacSecret); ++ } ++ if (out.hServerMacSecret != CK_INVALID_HANDLE) { ++ token.p11.C_DestroyObject(session.id(), out.hServerMacSecret); ++ } + clientMacKey = null; + serverMacKey = null; + } +@@ -213,6 +217,8 @@ public final class P11TlsKeyMaterialGenerator extends KeyGeneratorSpi { + serverCipherKey = P11Key.secretKey(session, out.hServerKey, + cipherAlgorithm, expandedKeyBits, attributes); + } else { ++ assert out.hClientKey == 0; ++ assert out.hServerKey == 0; + clientCipherKey = null; + serverCipherKey = null; + } +diff --git a/jdk/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java b/jdk/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java +index 8874070f4..6569c0c4f 100644 +--- a/jdk/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java ++++ b/jdk/test/com/sun/crypto/provider/TLS/TestKeyMaterial.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2022, 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 +@@ -60,6 +60,7 @@ public class TestKeyMaterial extends Utils { + byte[] clientRandom = null; + byte[] serverRandom = null; + String cipherAlgorithm = null; ++ String hashAlgorithm = null; // TLS1.2+ only + int keyLength = 0; + int expandedKeyLength = 0; + int ivLength = 0; +@@ -93,6 +94,8 @@ public class TestKeyMaterial extends Utils { + serverRandom = parse(data); + } else if (line.startsWith("km-cipalg:")) { + cipherAlgorithm = data; ++ } else if (line.startsWith("km-hashalg:")) { ++ hashAlgorithm = data; + } else if (line.startsWith("km-keylen:")) { + keyLength = Integer.parseInt(data); + } else if (line.startsWith("km-explen:")) { +@@ -118,14 +121,36 @@ public class TestKeyMaterial extends Utils { + n++; + + KeyGenerator kg = +- KeyGenerator.getInstance("SunTlsKeyMaterial", provider); ++ KeyGenerator.getInstance(minor == 3 ? ++ "SunTls12KeyMaterial" : ++ "SunTlsKeyMaterial", provider); + SecretKey masterKey = + new SecretKeySpec(master, "TlsMasterSecret"); ++ int prfHashLength, prfBlockSize; ++ ++ if (hashAlgorithm != null) { ++ switch (hashAlgorithm) { ++ case "SHA-256": ++ prfHashLength = 32; ++ prfBlockSize = 64; ++ break; ++ case "SHA-384": ++ prfHashLength = 48; ++ prfBlockSize = 128; ++ break; ++ default: ++ throw new RuntimeException("Unexpected hashalg: " + ++ hashAlgorithm); ++ } ++ } else { ++ prfHashLength = -1; ++ prfBlockSize = -1; ++ } + TlsKeyMaterialParameterSpec spec = + new TlsKeyMaterialParameterSpec(masterKey, major, minor, + clientRandom, serverRandom, cipherAlgorithm, + keyLength, expandedKeyLength, ivLength, macLength, +- null, -1, -1); ++ hashAlgorithm, prfHashLength, prfBlockSize); + + kg.init(spec); + TlsKeyMaterialSpec result = +diff --git a/jdk/test/com/sun/crypto/provider/TLS/keymatdata.txt b/jdk/test/com/sun/crypto/provider/TLS/keymatdata.txt +index 391f30000..a3ff869b6 100644 +--- a/jdk/test/com/sun/crypto/provider/TLS/keymatdata.txt ++++ b/jdk/test/com/sun/crypto/provider/TLS/keymatdata.txt +@@ -3646,3 +3646,37 @@ km-civ: 17:bd:47:89:54:be:04:23 + km-siv: 34:8a:e8:24:84:38:c4:e1 + km-cmackey: e8:f0:b5:7b:a7:cc:2f:5e:43:ef:d3:dd:4e:8c:f9:6f:51:d7:84:df + km-smackey: fc:0c:77:20:c2:28:d3:11:ba:57:13:d8:0b:2d:f1:30:89:c6:35:69 ++km-master: f1:05:15:45:33:be:50:d6:88:0b:03:bb:88:9b:ef:d4:3b:98:aa:40:13:71:3c:1c:d9:df:34:c7:50:75:ad:5c:0a:d4:fe:ed:d5:58:6b:ff:2b:ce:c6:12:bc:6b:7e:dc ++km-major: 3 ++km-minor: 3 ++km-crandom: 42:f3:36:8e:9d:c9:69:3e:c1:8a:38:d3:e0:ec:2b:58:c2:e0:0c:de:4f:f3:af:51:d2:5c:bc:b2:c3:3b:1e:56 ++km-srandom: 42:f3:36:8e:fa:fd:23:3e:fd:f9:bc:88:3c:98:93:f3:c3:1d:9c:2a:4a:3b:02:a7:40:d4:64:04:59:e9:65:97 ++km-cipalg: AES ++km-hashalg: SHA-256 ++km-keylen: 16 ++km-explen: 0 ++km-ivlen: 4 ++km-maclen: 0 ++km-ccipkey: 60:7a:45:a9:6e:76:58:ea:d9:44:c5:25:f8:92:f1:26 ++km-scipkey: 42:c0:ed:75:a2:51:21:7c:50:74:9d:78:9a:f7:35:2b ++km-civ: a1:3c:3e:4a ++km-siv: 85:ab:ee:70 ++km-cmackey: (null) ++km-smackey: (null) ++km-master: f1:05:15:45:33:be:50:d6:88:0b:03:bb:88:9b:ef:d4:3b:98:aa:40:13:71:3c:1c:d9:df:34:c7:50:75:ad:5c:0a:d4:fe:ed:d5:58:6b:ff:2b:ce:c6:12:bc:6b:7e:dc ++km-major: 3 ++km-minor: 3 ++km-crandom: 42:f3:36:8e:9d:c9:69:3e:c1:8a:38:d3:e0:ec:2b:58:c2:e0:0c:de:4f:f3:af:51:d2:5c:bc:b2:c3:3b:1e:56 ++km-srandom: 42:f3:36:8e:fa:fd:23:3e:fd:f9:bc:88:3c:98:93:f3:c3:1d:9c:2a:4a:3b:02:a7:40:d4:64:04:59:e9:65:97 ++km-cipalg: AES ++km-hashalg: SHA-384 ++km-keylen: 32 ++km-explen: 0 ++km-ivlen: 4 ++km-maclen: 0 ++km-ccipkey: 3c:03:17:61:1e:88:4a:aa:01:4c:ac:6c:f8:bb:91:c3:0e:ec:57:c7:bf:07:ff:eb:49:22:f9:80:12:64:72:2a ++km-scipkey: f8:00:8e:b2:dc:25:98:f1:97:00:55:28:60:a3:65:da:42:89:18:bb:40:94:53:d2:75:2a:29:e5:aa:94:1d:7a ++km-civ: 24:02:76:6f ++km-siv: 3b:6d:33:5a ++km-cmackey: (null) ++km-smackey: (null) +\ No newline at end of file +diff --git a/jdk/test/sun/security/pkcs11/tls/TestKeyMaterial.java b/jdk/test/sun/security/pkcs11/tls/TestKeyMaterial.java +index 534398a1a..e138a5b1d 100644 +--- a/jdk/test/sun/security/pkcs11/tls/TestKeyMaterial.java ++++ b/jdk/test/sun/security/pkcs11/tls/TestKeyMaterial.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2022, 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 +@@ -21,9 +21,9 @@ + * questions. + */ + +-/** ++/* + * @test +- * @bug 6316539 ++ * @bug 6316539 8136355 8294906 + * @summary Known-answer-test for TlsKeyMaterial generator + * @author Andreas Sterbenz + * @library .. +@@ -34,12 +34,16 @@ + import java.io.BufferedReader; + import java.nio.file.Files; + import java.nio.file.Paths; ++import java.security.InvalidAlgorithmParameterException; + import java.security.Provider; ++import java.security.ProviderException; + import java.util.Arrays; ++ + import javax.crypto.KeyGenerator; + import javax.crypto.SecretKey; + import javax.crypto.spec.IvParameterSpec; + import javax.crypto.spec.SecretKeySpec; ++ + import sun.security.internal.spec.TlsKeyMaterialParameterSpec; + import sun.security.internal.spec.TlsKeyMaterialSpec; + +@@ -48,6 +52,7 @@ public class TestKeyMaterial extends PKCS11Test { + private static final int PREFIX_LENGTH = "km-master: ".length(); + + public static void main(String[] args) throws Exception { ++ System.out.println("NSS Version: " + getNSSVersion()); + main(new TestKeyMaterial(), args); + } + +@@ -70,6 +75,7 @@ public class TestKeyMaterial extends PKCS11Test { + byte[] clientRandom = null; + byte[] serverRandom = null; + String cipherAlgorithm = null; ++ String hashAlgorithm = null; // TLS1.2+ only + int keyLength = 0; + int expandedKeyLength = 0; + int ivLength = 0; +@@ -103,6 +109,8 @@ public class TestKeyMaterial extends PKCS11Test { + serverRandom = parse(data); + } else if (line.startsWith("km-cipalg:")) { + cipherAlgorithm = data; ++ } else if (line.startsWith("km-hashalg:")) { ++ hashAlgorithm = data; + } else if (line.startsWith("km-keylen:")) { + keyLength = Integer.parseInt(data); + } else if (line.startsWith("km-explen:")) { +@@ -128,30 +136,47 @@ public class TestKeyMaterial extends PKCS11Test { + n++; + + KeyGenerator kg = +- KeyGenerator.getInstance("SunTlsKeyMaterial", provider); ++ KeyGenerator.getInstance(minor == 3 ? ++ "SunTls12KeyMaterial" : ++ "SunTlsKeyMaterial", provider); + SecretKey masterKey = + new SecretKeySpec(master, "TlsMasterSecret"); ++ // prfHashLength and prfBlockSize are ignored by PKCS11 provider + TlsKeyMaterialParameterSpec spec = + new TlsKeyMaterialParameterSpec(masterKey, major, minor, + clientRandom, serverRandom, cipherAlgorithm, + keyLength, expandedKeyLength, ivLength, macLength, +- null, -1, -1); +- +- kg.init(spec); +- TlsKeyMaterialSpec result = +- (TlsKeyMaterialSpec)kg.generateKey(); +- match(lineNumber, clientCipherBytes, +- result.getClientCipherKey(), cipherAlgorithm); +- match(lineNumber, serverCipherBytes, +- result.getServerCipherKey(), cipherAlgorithm); +- match(lineNumber, clientIv, result.getClientIv(), ""); +- match(lineNumber, serverIv, result.getServerIv(), ""); +- match(lineNumber, clientMacBytes, result.getClientMacKey(), ""); +- match(lineNumber, serverMacBytes, result.getServerMacKey(), ""); +- +- } else { ++ hashAlgorithm, -1 /*ignored*/, -1 /*ignored*/); ++ ++ try { ++ kg.init(spec); ++ TlsKeyMaterialSpec result = ++ (TlsKeyMaterialSpec)kg.generateKey(); ++ match(lineNumber, clientCipherBytes, ++ result.getClientCipherKey(), cipherAlgorithm); ++ match(lineNumber, serverCipherBytes, ++ result.getServerCipherKey(), cipherAlgorithm); ++ match(lineNumber, clientIv, result.getClientIv(), ""); ++ match(lineNumber, serverIv, result.getServerIv(), ""); ++ match(lineNumber, clientMacBytes, result.getClientMacKey(), ""); ++ match(lineNumber, serverMacBytes, result.getServerMacKey(), ""); ++ } catch (ProviderException pe) { ++ if (provider.getName().indexOf("NSS") != -1) { ++ Throwable t = pe.getCause(); ++ if (expandedKeyLength != 0 ++ && t.getMessage().indexOf( ++ "CKR_MECHANISM_PARAM_INVALID") != -1) { ++ // NSS removed support for export-grade cipher suites in 3.28, ++ // see https://bugzilla.mozilla.org/show_bug.cgi?id=1252849 ++ System.out.println("Ignore known NSS failure on CKR_MECHANISM_PARAM_INVALID"); ++ continue; ++ } ++ } ++ throw pe; ++ } ++ } else { + throw new Exception("Unknown line: " + line); +- } ++ } + } + if (n == 0) { + throw new Exception("no tests"); +diff --git a/jdk/test/sun/security/pkcs11/tls/keymatdata.txt b/jdk/test/sun/security/pkcs11/tls/keymatdata.txt +index 391f30000..1d1ee6369 100644 +--- a/jdk/test/sun/security/pkcs11/tls/keymatdata.txt ++++ b/jdk/test/sun/security/pkcs11/tls/keymatdata.txt +@@ -3646,3 +3646,37 @@ km-civ: 17:bd:47:89:54:be:04:23 + km-siv: 34:8a:e8:24:84:38:c4:e1 + km-cmackey: e8:f0:b5:7b:a7:cc:2f:5e:43:ef:d3:dd:4e:8c:f9:6f:51:d7:84:df + km-smackey: fc:0c:77:20:c2:28:d3:11:ba:57:13:d8:0b:2d:f1:30:89:c6:35:69 ++km-master: f1:05:15:45:33:be:50:d6:88:0b:03:bb:88:9b:ef:d4:3b:98:aa:40:13:71:3c:1c:d9:df:34:c7:50:75:ad:5c:0a:d4:fe:ed:d5:58:6b:ff:2b:ce:c6:12:bc:6b:7e:dc ++km-major: 3 ++km-minor: 3 ++km-crandom: 42:f3:36:8e:9d:c9:69:3e:c1:8a:38:d3:e0:ec:2b:58:c2:e0:0c:de:4f:f3:af:51:d2:5c:bc:b2:c3:3b:1e:56 ++km-srandom: 42:f3:36:8e:fa:fd:23:3e:fd:f9:bc:88:3c:98:93:f3:c3:1d:9c:2a:4a:3b:02:a7:40:d4:64:04:59:e9:65:97 ++km-cipalg: AES ++km-hashalg: SHA-256 ++km-keylen: 16 ++km-explen: 0 ++km-ivlen: 4 ++km-maclen: 0 ++km-ccipkey: 60:7a:45:a9:6e:76:58:ea:d9:44:c5:25:f8:92:f1:26 ++km-scipkey: 42:c0:ed:75:a2:51:21:7c:50:74:9d:78:9a:f7:35:2b ++km-civ: a1:3c:3e:4a ++km-siv: 85:ab:ee:70 ++km-cmackey: (null) ++km-smackey: (null) ++km-master: f1:05:15:45:33:be:50:d6:88:0b:03:bb:88:9b:ef:d4:3b:98:aa:40:13:71:3c:1c:d9:df:34:c7:50:75:ad:5c:0a:d4:fe:ed:d5:58:6b:ff:2b:ce:c6:12:bc:6b:7e:dc ++km-major: 3 ++km-minor: 3 ++km-crandom: 42:f3:36:8e:9d:c9:69:3e:c1:8a:38:d3:e0:ec:2b:58:c2:e0:0c:de:4f:f3:af:51:d2:5c:bc:b2:c3:3b:1e:56 ++km-srandom: 42:f3:36:8e:fa:fd:23:3e:fd:f9:bc:88:3c:98:93:f3:c3:1d:9c:2a:4a:3b:02:a7:40:d4:64:04:59:e9:65:97 ++km-cipalg: AES ++km-hashalg: SHA-384 ++km-keylen: 32 ++km-explen: 0 ++km-ivlen: 4 ++km-maclen: 0 ++km-ccipkey: 3c:03:17:61:1e:88:4a:aa:01:4c:ac:6c:f8:bb:91:c3:0e:ec:57:c7:bf:07:ff:eb:49:22:f9:80:12:64:72:2a ++km-scipkey: f8:00:8e:b2:dc:25:98:f1:97:00:55:28:60:a3:65:da:42:89:18:bb:40:94:53:d2:75:2a:29:e5:aa:94:1d:7a ++km-civ: 24:02:76:6f ++km-siv: 3b:6d:33:5a ++km-cmackey: (null) ++km-smackey: (null) +-- +2.22.0 + diff --git a/8295068-SSLEngine-throws-NPE-parsing-CertificateRequ.patch b/8295068-SSLEngine-throws-NPE-parsing-CertificateRequ.patch new file mode 100644 index 0000000000000000000000000000000000000000..ff03757816aaead59e817849bae4c7327115d1ad --- /dev/null +++ b/8295068-SSLEngine-throws-NPE-parsing-CertificateRequ.patch @@ -0,0 +1,25 @@ +From 559bf67072bcf7fe854d03aebdfb49e02bd75899 Mon Sep 17 00:00:00 2001 +From: DXwangg +Date: Mon, 25 Sep 2023 09:50:38 +0800 +Subject: [PATCH] 8295068: SSLEngine throws NPE parsing CertificateRequests + +--- + jdk/src/share/classes/sun/security/ssl/CertificateRequest.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/jdk/src/share/classes/sun/security/ssl/CertificateRequest.java b/jdk/src/share/classes/sun/security/ssl/CertificateRequest.java +index 475ec42c..ad0325e4 100644 +--- a/jdk/src/share/classes/sun/security/ssl/CertificateRequest.java ++++ b/jdk/src/share/classes/sun/security/ssl/CertificateRequest.java +@@ -135,7 +135,7 @@ final class CertificateRequest { + ArrayList keyTypes = new ArrayList<>(3); + for (byte id : ids) { + ClientCertificateType cct = ClientCertificateType.valueOf(id); +- if (cct.isAvailable) { ++ if (cct != null && cct.isAvailable) { + keyTypes.add(cct.keyAlgorithm); + } + } +-- +2.39.0 + diff --git a/8296108-tz-Update-Timezone-Data-to-2022f.patch b/8296108-tz-Update-Timezone-Data-to-2022f.patch deleted file mode 100644 index 19b7fbb716c9dc191d7af691536a3d6428858572..0000000000000000000000000000000000000000 --- a/8296108-tz-Update-Timezone-Data-to-2022f.patch +++ /dev/null @@ -1,4516 +0,0 @@ -From b8733a1abad2eb73a9a1ae5e74be047cf7c5866a Mon Sep 17 00:00:00 2001 -From: eapen -Date: Wed, 30 Nov 2022 15:47:49 +0800 -Subject: [PATCH 09/33] I68TO2: 8296108: (tz) Update Timezone Data to 2022f ---- - jdk/make/data/tzdata/VERSION | 2 +- - jdk/make/data/tzdata/africa | 213 ++++--------- - jdk/make/data/tzdata/antarctica | 2 +- - jdk/make/data/tzdata/asia | 69 ++--- - jdk/make/data/tzdata/australasia | 58 ++-- - jdk/make/data/tzdata/backward | 291 ++++++++++++++---- - jdk/make/data/tzdata/etcetera | 17 +- - jdk/make/data/tzdata/europe | 202 +++++------- - jdk/make/data/tzdata/northamerica | 171 +++-------- - jdk/make/data/tzdata/southamerica | 15 - - jdk/make/data/tzdata/zone.tab | 3 - - .../classes/sun/util/resources/TimeZoneNames.java | 6 +- - .../sun/util/resources/de/TimeZoneNames_de.java | 6 +- - .../sun/util/resources/es/TimeZoneNames_es.java | 6 +- - .../sun/util/resources/fr/TimeZoneNames_fr.java | 6 +- - .../sun/util/resources/it/TimeZoneNames_it.java | 6 +- - .../sun/util/resources/ja/TimeZoneNames_ja.java | 6 +- - .../sun/util/resources/ko/TimeZoneNames_ko.java | 6 +- - .../sun/util/resources/pt/TimeZoneNames_pt_BR.java | 6 +- - .../sun/util/resources/sv/TimeZoneNames_sv.java | 6 +- - .../sun/util/resources/zh/TimeZoneNames_zh_CN.java | 6 +- - .../sun/util/resources/zh/TimeZoneNames_zh_TW.java | 6 +- - jdk/test/java/util/TimeZone/TimeZoneData/VERSION | 2 +- - .../java/util/TimeZone/TimeZoneData/aliases.txt | 341 +++++++++++---------- - .../util/TimeZone/TimeZoneData/displaynames.txt | 7 +- - jdk/test/sun/util/calendar/zi/tzdata/VERSION | 2 +- - jdk/test/sun/util/calendar/zi/tzdata/africa | 213 ++++--------- - jdk/test/sun/util/calendar/zi/tzdata/antarctica | 2 +- - jdk/test/sun/util/calendar/zi/tzdata/asia | 69 ++--- - jdk/test/sun/util/calendar/zi/tzdata/australasia | 58 ++-- - jdk/test/sun/util/calendar/zi/tzdata/backward | 291 ++++++++++++++---- - jdk/test/sun/util/calendar/zi/tzdata/etcetera | 17 +- - jdk/test/sun/util/calendar/zi/tzdata/europe | 202 +++++------- - jdk/test/sun/util/calendar/zi/tzdata/northamerica | 171 +++-------- - jdk/test/sun/util/calendar/zi/tzdata/southamerica | 15 - - jdk/test/sun/util/calendar/zi/tzdata/zone.tab | 3 - - 36 files changed, 1103 insertions(+), 1399 deletions(-) - -diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION -index b8cb36e..b8d9ae7 100644 ---- a/jdk/make/data/tzdata/VERSION -+++ b/jdk/make/data/tzdata/VERSION -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2022e -+tzdata2022f -diff --git a/jdk/make/data/tzdata/africa b/jdk/make/data/tzdata/africa -index e13899b..b4559cd 100644 ---- a/jdk/make/data/tzdata/africa -+++ b/jdk/make/data/tzdata/africa -@@ -120,22 +120,6 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16 - 0:00 Algeria WE%sT 1981 May - 1:00 - CET - --# Angola --# Benin --# See Africa/Lagos. -- --# Botswana --# See Africa/Maputo. -- --# Burkina Faso --# See Africa/Abidjan. -- --# Burundi --# See Africa/Maputo. -- --# Cameroon --# See Africa/Lagos. -- - # Cape Verde / Cabo Verde - # - # From Paul Eggert (2018-02-16): -@@ -150,9 +134,6 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia - -2:00 - -02 1975 Nov 25 2:00 - -1:00 - -01 - --# Central African Republic --# See Africa/Lagos. -- - # Chad - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena -@@ -160,33 +141,29 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena - 1:00 1:00 WAST 1980 Mar 8 - 1:00 - WAT - --# Comoros --# See Africa/Nairobi. -- --# Democratic Republic of the Congo --# See Africa/Lagos for the western part and Africa/Maputo for the eastern. -+# Burkina Faso -+# Côte d'Ivoire (Ivory Coast) -+# The Gambia -+# Ghana -+# Guinea -+# Iceland -+# Mali -+# Mauritania -+# St Helena -+# Senegal -+# Sierra Leone -+# Togo - --# Republic of the Congo --# See Africa/Lagos. -+# The other parts of the St Helena territory are similar: -+# Tristan da Cunha: on GMT, say Whitman and the CIA -+# Ascension: on GMT, say the USNO (1995-12-21) and the CIA -+# Gough (scientific station since 1955; sealers wintered previously): -+# on GMT, says the CIA -+# Inaccessible, Nightingale: uninhabited - --# Côte d'Ivoire / Ivory Coast - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Abidjan -0:16:08 - LMT 1912 - 0:00 - GMT --Link Africa/Abidjan Africa/Accra # Ghana --Link Africa/Abidjan Africa/Bamako # Mali --Link Africa/Abidjan Africa/Banjul # The Gambia --Link Africa/Abidjan Africa/Conakry # Guinea --Link Africa/Abidjan Africa/Dakar # Senegal --Link Africa/Abidjan Africa/Freetown # Sierra Leone --Link Africa/Abidjan Africa/Lome # Togo --Link Africa/Abidjan Africa/Nouakchott # Mauritania --Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso --Link Africa/Abidjan Atlantic/Reykjavik # Iceland --Link Africa/Abidjan Atlantic/St_Helena # St Helena -- --# Djibouti --# See Africa/Nairobi. - - ############################################################################### - -@@ -382,33 +359,6 @@ Rule Egypt 2014 only - Sep lastThu 24:00 0 - - Zone Africa/Cairo 2:05:09 - LMT 1900 Oct - 2:00 Egypt EE%sT - --# Equatorial Guinea --# See Africa/Lagos. -- --# Eritrea --# See Africa/Nairobi. -- --# Eswatini (formerly Swaziland) --# See Africa/Johannesburg. -- --# Ethiopia --# See Africa/Nairobi. --# --# Unfortunately tzdb records only Western clock time in use in Ethiopia, --# as the tzdb format is not up to properly recording a common Ethiopian --# timekeeping practice that is based on solar time. See: --# Mortada D. If you have a meeting in Ethiopia, you'd better double --# check the time. PRI's The World. 2015-01-30 15:15 -05. --# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time -- --# Gabon --# See Africa/Lagos. -- --# The Gambia --# Ghana --# Guinea --# See Africa/Abidjan. -- - # Guinea-Bissau - # - # From Paul Eggert (2018-02-16): -@@ -421,7 +371,16 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u - -1:00 - -01 1975 - 0:00 - GMT - -+# Comoros -+# Djibouti -+# Eritrea -+# Ethiopia - # Kenya -+# Madagascar -+# Mayotte -+# Somalia -+# Tanzania -+# Uganda - - # From P Chan (2020-10-24): - # -@@ -464,6 +423,14 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u - # The 1908-05-01 announcement does not give an effective date, - # so just say "1908 May". - -+# From Paul Eggert (2018-09-11): -+# Unfortunately tzdb records only Western clock time in use in Ethiopia, -+# as the tzdb format is not up to properly recording a common Ethiopian -+# timekeeping practice that is based on solar time. See: -+# Mortada D. If you have a meeting in Ethiopia, you'd better double -+# check the time. PRI's The World. 2015-01-30 15:15 -05. -+# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time -+ - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Nairobi 2:27:16 - LMT 1908 May - 2:30 - +0230 1928 Jun 30 24:00 -@@ -471,18 +438,6 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May - 2:30 - +0230 1936 Dec 31 24:00 - 2:45 - +0245 1942 Jul 31 24:00 - 3:00 - EAT --Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia --Link Africa/Nairobi Africa/Asmara # Eritrea --Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania --Link Africa/Nairobi Africa/Djibouti --Link Africa/Nairobi Africa/Kampala # Uganda --Link Africa/Nairobi Africa/Mogadishu # Somalia --Link Africa/Nairobi Indian/Antananarivo # Madagascar --Link Africa/Nairobi Indian/Comoro --Link Africa/Nairobi Indian/Mayotte -- --# Lesotho --# See Africa/Johannesburg. - - # Liberia - # -@@ -563,16 +518,6 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 - 1:00 Libya CE%sT 2013 Oct 25 2:00 - 2:00 - EET - --# Madagascar --# See Africa/Nairobi. -- --# Malawi --# See Africa/Maputo. -- --# Mali --# Mauritania --# See Africa/Abidjan. -- - # Mauritius - - # From Steffen Thorsen (2008-06-25): -@@ -666,12 +611,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis - # Agalega Is, Rodriguez - # no information; probably like Indian/Mauritius - --# Mayotte --# See Africa/Nairobi. -- --# Morocco --# See Africa/Ceuta for Spanish Morocco. -- - # From Alex Krivenyshev (2008-05-09): - # Here is an article that Morocco plan to introduce Daylight Saving Time between - # 1 June, 2008 and 27 September, 2008. -@@ -1160,7 +1099,14 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún - 0:00 Morocco +00/+01 2018 Oct 28 3:00 - 0:00 Morocco +00/+01 - -+# Botswana -+# Burundi -+# Democratic Republic of the Congo (eastern) -+# Malawi - # Mozambique -+# Rwanda -+# Zambia -+# Zimbabwe - # - # Shanks gives 1903-03-01 for the transition to CAT. - # Perhaps the 1911-05-26 Portuguese decree -@@ -1170,14 +1116,6 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Maputo 2:10:20 - LMT 1903 Mar - 2:00 - CAT --Link Africa/Maputo Africa/Blantyre # Malawi --Link Africa/Maputo Africa/Bujumbura # Burundi --Link Africa/Maputo Africa/Gaborone # Botswana --Link Africa/Maputo Africa/Harare # Zimbabwe --Link Africa/Maputo Africa/Kigali # Rwanda --Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo --Link Africa/Maputo Africa/Lusaka # Zambia -- - - # Namibia - -@@ -1256,9 +1194,16 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 - 2:00 - CAT - # End of rearguard section. - --# Niger --# See Africa/Lagos. - -+# Angola -+# Benin -+# Cameroon -+# Central African Republic -+# Democratic Republic of the Congo (western) -+# Republic of the Congo -+# Equatorial Guinea -+# Gabon -+# Niger - # Nigeria - - # From P Chan (2020-12-03): -@@ -1324,32 +1269,6 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1 - 0:13:35 - LMT 1914 Jan 1 - 0:30 - +0030 1919 Sep 1 - 1:00 - WAT --Link Africa/Lagos Africa/Bangui # Central African Republic --Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo --Link Africa/Lagos Africa/Douala # Cameroon --Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west) --Link Africa/Lagos Africa/Libreville # Gabon --Link Africa/Lagos Africa/Luanda # Angola --Link Africa/Lagos Africa/Malabo # Equatorial Guinea --Link Africa/Lagos Africa/Niamey # Niger --Link Africa/Lagos Africa/Porto-Novo # Benin -- --# Réunion --# See Asia/Dubai. --# --# The Crozet Islands also observe Réunion time; see the 'antarctica' file. -- --# Rwanda --# See Africa/Maputo. -- --# St Helena --# See Africa/Abidjan. --# The other parts of the St Helena territory are similar: --# Tristan da Cunha: on GMT, say Whitman and the CIA --# Ascension: on GMT, say the USNO (1995-12-21) and the CIA --# Gough (scientific station since 1955; sealers wintered previously): --# on GMT, says the CIA --# Inaccessible, Nightingale: uninhabited - - # São Tomé and Príncipe - -@@ -1378,19 +1297,10 @@ Zone Africa/Sao_Tome 0:26:56 - LMT 1884 - 1:00 - WAT 2019 Jan 1 02:00 - 0:00 - GMT - --# Senegal --# See Africa/Abidjan. -- --# Seychelles --# See Asia/Dubai. -- --# Sierra Leone --# See Africa/Abidjan. -- --# Somalia --# See Africa/Nairobi. -- -+# Eswatini (Swaziland) -+# Lesotho - # South Africa -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - -@@ -1398,8 +1308,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - - Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 - 1:30 - SAST 1903 Mar - 2:00 SA SAST --Link Africa/Johannesburg Africa/Maseru # Lesotho --Link Africa/Johannesburg Africa/Mbabane # Eswatini - # - # Marion and Prince Edward Is - # scientific station since 1947 -@@ -1448,12 +1356,6 @@ Zone Africa/Juba 2:06:28 - LMT 1931 - 3:00 - EAT 2021 Feb 1 00:00 - 2:00 - CAT - --# Tanzania --# See Africa/Nairobi. -- --# Togo --# See Africa/Abidjan. -- - # Tunisia - - # From Gwillim Law (2005-04-30): -@@ -1551,10 +1453,3 @@ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 - - Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 - 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - 1:00 Tunisia CE%sT -- --# Uganda --# See Africa/Nairobi. -- --# Zambia --# Zimbabwe --# See Africa/Maputo. -diff --git a/jdk/make/data/tzdata/antarctica b/jdk/make/data/tzdata/antarctica -index 34c302e..792542b 100644 ---- a/jdk/make/data/tzdata/antarctica -+++ b/jdk/make/data/tzdata/antarctica -@@ -329,4 +329,4 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1 - # we have to go around and set them back 5 minutes or so. - # Maybe if we let them run fast all of the time, we'd get to leave here sooner!! - # --# See 'australasia' for Antarctica/McMurdo. -+# See Pacific/Auckland. -diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia -index f1771e4..8f1fcac 100644 ---- a/jdk/make/data/tzdata/asia -+++ b/jdk/make/data/tzdata/asia -@@ -172,9 +172,6 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2 - 4:00 EUAsia +04/+05 1997 - 4:00 Azer +04/+05 - --# Bahrain --# See Asia/Qatar. -- - # Bangladesh - # From Alexander Krivenyshev (2009-05-13): - # According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce -@@ -277,10 +274,8 @@ Zone Indian/Chagos 4:49:40 - LMT 1907 - 5:00 - +05 1996 - 6:00 - +06 - --# Brunei --# See Asia/Kuching. -- --# Burma / Myanmar -+# Cocos (Keeling) Islands -+# Myanmar (Burma) - - # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. - -@@ -296,11 +291,6 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon - 6:30 - +0630 1942 May - 9:00 - +09 1945 May 3 - 6:30 - +0630 --Link Asia/Yangon Indian/Cocos -- --# Cambodia --# See Asia/Bangkok. -- - - # China - -@@ -688,10 +678,9 @@ Zone Asia/Shanghai 8:05:43 - LMT 1901 - 8:00 PRC C%sT - # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi - # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) -+# Vostok base in Antarctica matches this since 1970. - Zone Asia/Urumqi 5:50:20 - LMT 1928 - 6:00 - +06 --Link Asia/Urumqi Antarctica/Vostok -- - - # Hong Kong - -@@ -1195,10 +1184,6 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 - 3:00 - +03 2017 Oct 29 1:00u - 2:00 EUAsia EE%sT - --# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72. --# However, for various reasons many users expect to find it under Europe. --Link Asia/Nicosia Europe/Nicosia -- - # Georgia - # From Paul Eggert (1994-11-19): - # Today's _Economist_ (p 60) reports that Georgia moved its clocks forward -@@ -2727,14 +2712,6 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 - 8:30 - KST 2018 May 4 23:30 - 9:00 - KST - --############################################################################### -- --# Kuwait --# See Asia/Riyadh. -- --# Laos --# See Asia/Bangkok. -- - - # Lebanon - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -@@ -2766,7 +2743,9 @@ Rule Lebanon 1999 max - Oct lastSun 0:00 0 - - Zone Asia/Beirut 2:22:00 - LMT 1880 - 2:00 Lebanon EE%sT - --# Malaysia -+# Brunei -+# Malaysia (eastern) -+# - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - -@@ -2783,14 +2762,12 @@ Zone Asia/Kuching 7:21:20 - LMT 1926 Mar - 8:00 NBorneo +08/+0820 1942 Feb 16 - 9:00 - +09 1945 Sep 12 - 8:00 - +08 --Link Asia/Kuching Asia/Brunei - - # Maldives - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé - 4:54:00 - MMT 1960 # Malé Mean Time - 5:00 - +05 --Link Indian/Maldives Indian/Kerguelen - - # Mongolia - -@@ -2953,9 +2930,6 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920 - 5:30 - +0530 1986 - 5:45 - +0545 - --# Oman --# See Asia/Dubai. -- - # Pakistan - - # From Rives McDow (2002-03-13): -@@ -3566,14 +3540,18 @@ Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 - 9:00 - JST 1944 Nov - 8:00 Phil P%sT - -+# Bahrain - # Qatar - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha - 4:00 - +04 1972 Jun - 3:00 - +03 --Link Asia/Qatar Asia/Bahrain - -+# Kuwait - # Saudi Arabia -+# Yemen -+# -+# Japan's year-round bases in Antarctica match this since 1970. - # - # From Paul Eggert (2018-08-29): - # Time in Saudi Arabia and other countries in the Arabian peninsula was not -@@ -3618,9 +3596,6 @@ Link Asia/Qatar Asia/Bahrain - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 - 3:00 - +03 --Link Asia/Riyadh Antarctica/Syowa --Link Asia/Riyadh Asia/Aden # Yemen --Link Asia/Riyadh Asia/Kuwait - - # Singapore - # taken from Mok Ly Yng (2003-10-30) -@@ -3635,7 +3610,6 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 - 9:00 - +09 1945 Sep 12 - 7:30 - +0730 1982 Jan 1 - 8:00 - +08 --Link Asia/Singapore Asia/Kuala_Lumpur - - # Spratly Is - # no information -@@ -3881,14 +3855,15 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 - 5:00 1:00 +06 1991 Sep 9 2:00s - 5:00 - +05 - -+# Cambodia -+# Christmas I -+# Laos - # Thailand -+# Vietnam (northern) - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Bangkok 6:42:04 - LMT 1880 - 6:42:04 - BMT 1920 Apr # Bangkok Mean Time - 7:00 - +07 --Link Asia/Bangkok Asia/Phnom_Penh # Cambodia --Link Asia/Bangkok Asia/Vientiane # Laos --Link Asia/Bangkok Indian/Christmas - - # Turkmenistan - # From Shanks & Pottenger. -@@ -3899,13 +3874,15 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 - 5:00 - +05 - -+# Oman -+# Réunion -+# Seychelles - # United Arab Emirates -+# -+# The Crozet Is also observe Réunion time; see the 'antarctica' file. - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Dubai 3:41:12 - LMT 1920 - 4:00 - +04 --Link Asia/Dubai Asia/Muscat # Oman --Link Asia/Dubai Indian/Mahe --Link Asia/Dubai Indian/Reunion - - # Uzbekistan - # Byalokoz 1919 says Uzbekistan was 4:27:53. -@@ -3925,7 +3902,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 - 5:00 RussiaAsia +05/+06 1992 - 5:00 - +05 - --# Vietnam -+# Vietnam (southern) - - # From Paul Eggert (2014-10-04): - # Milne gives 7:16:56 for the meridian of Saigon in 1899, as being -@@ -3999,7 +3976,3 @@ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 - # For timestamps in north Vietnam back to 1970 (the tzdb cutoff), - # use Asia/Bangkok; see the VN entries in the file zone1970.tab. - # For timestamps before 1970, see Asia/Hanoi in the file 'backzone'. -- -- --# Yemen --# See Asia/Riyadh. -diff --git a/jdk/make/data/tzdata/australasia b/jdk/make/data/tzdata/australasia -index 019cd77..fbe3b8a 100644 ---- a/jdk/make/data/tzdata/australasia -+++ b/jdk/make/data/tzdata/australasia -@@ -274,13 +274,6 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov - 10:00 1:00 AEDT 2011 - 10:00 AT AE%sT - --# Christmas --# See Asia/Bangkok. -- --# Cocos (Keeling) Is --# See Asia/Yangon. -- -- - # Fiji - - # Milne gives 11:55:44 for Suva. -@@ -416,8 +409,14 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov - # concerned shifting arrival and departure times, which may look like a simple - # thing but requires some significant logistical adjustments domestically and - # internationally." --# Assume for now that DST will resume with the recent pre-2020 rules for the --# 2022/2023 season. -+ -+# From Shalvin Narayan (2022-10-27): -+# Please note that there will not be any daylight savings time change -+# in Fiji for 2022-2023.... -+# https://www.facebook.com/FijianGovernment/posts/pfbid0mmWVTYmTibn66ybpFda75pDcf34SSpoSaskJW5gXwaKo5Sgc7273Q4fXWc6kQV6Hl -+# -+# From Paul Eggert (2022-10-27): -+# For now, assume DST is suspended indefinitely. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - -@@ -432,8 +431,6 @@ Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 - - Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 - - Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 - - Rule Fiji 2020 only - Dec 20 2:00 1:00 - --Rule Fiji 2022 max - Nov Sun>=8 2:00 1:00 - --Rule Fiji 2023 max - Jan Sun>=12 3:00 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva - 12:00 Fiji +12/+13 -@@ -449,7 +446,9 @@ Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete - # Clipperton (near North America) is administered from French Polynesia; - # it is uninhabited. - -+ - # Guam -+# N Mariana Is - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf -@@ -489,17 +488,20 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 - 9:00 - +09 1944 Jul 31 - 10:00 Guam G%sT 2000 Dec 23 - 10:00 - ChST # Chamorro Standard Time --Link Pacific/Guam Pacific/Saipan # N Mariana Is - --# Kiribati -+ -+# Kiribati (Gilbert Is) -+# Marshall Is -+# Tuvalu -+# Wake -+# Wallis & Futuna - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki - 12:00 - +12 --Link Pacific/Tarawa Pacific/Funafuti --Link Pacific/Tarawa Pacific/Majuro --Link Pacific/Tarawa Pacific/Wake --Link Pacific/Tarawa Pacific/Wallis - -+# Kiribati (except Gilbert Is) -+# See Pacific/Tarawa for the Gilbert Is. -+# Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Kanton 0 - -00 1937 Aug 31 - -12:00 - -12 1979 Oct - -11:00 - -11 1994 Dec 31 -@@ -509,9 +511,6 @@ Zone Pacific/Kiritimati -10:29:20 - LMT 1901 - -10:00 - -10 1994 Dec 31 - 14:00 - +14 - --# N Mariana Is --# See Pacific/Guam. -- - # Marshall Is - # See Pacific/Tarawa for most locations. - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -561,6 +560,7 @@ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa - ############################################################################### - - # New Zealand -+# McMurdo Station and Scott Base in Antarctica use Auckland time. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NZ 1927 only - Nov 6 2:00 1:00 S -@@ -596,7 +596,6 @@ Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 - - Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2 - 11:30 NZ NZ%sT 1946 Jan 1 - 12:00 NZ NZ%sT --Link Pacific/Auckland Antarctica/McMurdo - - Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 - 12:15 - +1215 1946 Jan 1 -@@ -695,8 +694,6 @@ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror - Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 - 9:48:32 - PMMT 1895 # Port Moresby Mean Time - 10:00 - +10 --Link Pacific/Port_Moresby Antarctica/DumontDUrville --Link Pacific/Port_Moresby Pacific/Chuuk - # - # From Paul Eggert (2014-10-13): - # Base the Bougainville entry on the Arawa-Kieta region, which appears to have -@@ -729,10 +726,10 @@ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown - -8:00 - -08 - - # American Samoa -+# Midway - Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 - -11:22:48 - LMT 1911 - -11:00 - SST # S=Samoa --Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands - - # Samoa (formerly and also known as Western Samoa) - -@@ -824,7 +821,6 @@ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara - 11:00 - +11 --Link Pacific/Guadalcanal Pacific/Pohnpei - - # Tokelau - # -@@ -864,9 +860,6 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 - 13:00 - +13 1999 - 13:00 Tonga +13/+14 - --# Tuvalu --# See Pacific/Tarawa. -- - - # US minor outlying islands - -@@ -917,15 +910,9 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 - # Kingman - # uninhabited - --# Midway --# See Pacific/Pago_Pago. -- - # Palmyra - # uninhabited since World War II; was probably like Pacific/Kiritimati - --# Wake --# See Pacific/Tarawa. -- - - # Vanuatu - -@@ -962,9 +949,6 @@ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 - - Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila - 11:00 Vanuatu +11/+12 - --# Wallis and Futuna --# See Pacific/Tarawa. -- - ############################################################################### - - # NOTES -diff --git a/jdk/make/data/tzdata/backward b/jdk/make/data/tzdata/backward -index 7765d99..1fb087a 100644 ---- a/jdk/make/data/tzdata/backward -+++ b/jdk/make/data/tzdata/backward -@@ -27,7 +27,7 @@ - # 2009-05-17 by Arthur David Olson. - - # This file provides links from old or merged timezone names to current ones. --# Many names changed in late 1993, and many merged names moved here -+# Many names changed in 1993 and in 1995, and many merged names moved here - # in the period from 2013 through 2022. Several of these names are - # also present in the file 'backzone', which has data important only - # for pre-1970 timestamps and so is out of scope for tzdb proper. -@@ -36,50 +36,24 @@ - # building with 'make BACKWARD=', in practice downstream users - # typically use this file for backward compatibility. - --# Link TARGET LINK-NAME --Link Africa/Nairobi Africa/Asmera --Link Africa/Abidjan Africa/Timbuktu --Link America/Argentina/Catamarca America/Argentina/ComodRivadavia --Link America/Adak America/Atka --Link America/Argentina/Buenos_Aires America/Buenos_Aires --Link America/Argentina/Catamarca America/Catamarca --Link America/Panama America/Coral_Harbour --Link America/Argentina/Cordoba America/Cordoba --Link America/Tijuana America/Ensenada --Link America/Indiana/Indianapolis America/Fort_Wayne --Link America/Nuuk America/Godthab --Link America/Indiana/Indianapolis America/Indianapolis --Link America/Argentina/Jujuy America/Jujuy --Link America/Indiana/Knox America/Knox_IN --Link America/Kentucky/Louisville America/Louisville --Link America/Argentina/Mendoza America/Mendoza --Link America/Toronto America/Montreal --Link America/Rio_Branco America/Porto_Acre --Link America/Argentina/Cordoba America/Rosario --Link America/Tijuana America/Santa_Isabel --Link America/Denver America/Shiprock --Link America/Puerto_Rico America/Virgin --Link Pacific/Auckland Antarctica/South_Pole --Link Asia/Ashgabat Asia/Ashkhabad --Link Asia/Kolkata Asia/Calcutta --Link Asia/Shanghai Asia/Chongqing --Link Asia/Shanghai Asia/Chungking --Link Asia/Dhaka Asia/Dacca --Link Asia/Shanghai Asia/Harbin --Link Asia/Urumqi Asia/Kashgar --Link Asia/Kathmandu Asia/Katmandu --Link Asia/Macau Asia/Macao --Link Asia/Yangon Asia/Rangoon --Link Asia/Ho_Chi_Minh Asia/Saigon --Link Asia/Jerusalem Asia/Tel_Aviv --Link Asia/Thimphu Asia/Thimbu --Link Asia/Makassar Asia/Ujung_Pandang --Link Asia/Ulaanbaatar Asia/Ulan_Bator --Link Atlantic/Faroe Atlantic/Faeroe --Link Europe/Berlin Atlantic/Jan_Mayen --Link Australia/Sydney Australia/ACT --Link Australia/Sydney Australia/Canberra --Link Australia/Hobart Australia/Currie -+# This file is divided into sections, one for each major reason for a -+# backward compatibility link. Each section is sorted by link name. -+ -+# A "#= TARGET1" comment labels each link inserted only because some -+# .zi parsers (including tzcode through 2022e) mishandle links to links. -+# The comment says what the target would be if these parsers were fixed -+# so that data could contain links to links. For example, the line -+# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be -+# "Link Australia/Canberra Australia/ACT" were it not that data lines -+# refrain from linking to links like Australia/Canberra, which means -+# the Australia/ACT line links instead to Australia/Sydney, -+# Australia/Canberra's target. -+ -+ -+# Pre-1993 naming conventions -+ -+# Link TARGET LINK-NAME #= TARGET1 -+Link Australia/Sydney Australia/ACT #= Australia/Canberra - Link Australia/Lord_Howe Australia/LHI - Link Australia/Sydney Australia/NSW - Link Australia/Darwin Australia/North -@@ -89,7 +63,7 @@ Link Australia/Hobart Australia/Tasmania - Link Australia/Melbourne Australia/Victoria - Link Australia/Perth Australia/West - Link Australia/Broken_Hill Australia/Yancowinna --Link America/Rio_Branco Brazil/Acre -+Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre - Link America/Noronha Brazil/DeNoronha - Link America/Sao_Paulo Brazil/East - Link America/Manaus Brazil/West -@@ -109,20 +83,36 @@ Link Pacific/Easter Chile/EasterIsland - Link America/Havana Cuba - Link Africa/Cairo Egypt - Link Europe/Dublin Eire -+# Vanguard section, for most .zi parsers. -+#Link GMT Etc/GMT -+#Link GMT Etc/GMT+0 -+#Link GMT Etc/GMT-0 -+#Link GMT Etc/GMT0 -+#Link GMT Etc/Greenwich -+# Rearguard section, for TZUpdater 2.3.2 and earlier. -+Link Etc/GMT Etc/GMT+0 -+Link Etc/GMT Etc/GMT-0 -+Link Etc/GMT Etc/GMT0 -+Link Etc/GMT Etc/Greenwich -+# End of rearguard section. - Link Etc/UTC Etc/UCT --Link Europe/London Europe/Belfast --Link Europe/Kyiv Europe/Kiev --Link Europe/Chisinau Europe/Tiraspol --Link Europe/Kyiv Europe/Uzhgorod --Link Europe/Kyiv Europe/Zaporozhye -+Link Etc/UTC Etc/Universal -+Link Etc/UTC Etc/Zulu - Link Europe/London GB - Link Europe/London GB-Eire -+# Vanguard section, for most .zi parsers. -+#Link GMT GMT+0 -+#Link GMT GMT-0 -+#Link GMT GMT0 -+#Link GMT Greenwich -+# Rearguard section, for TZUpdater 2.3.2 and earlier. - Link Etc/GMT GMT+0 - Link Etc/GMT GMT-0 - Link Etc/GMT GMT0 - Link Etc/GMT Greenwich -+# End of rearguard section. - Link Asia/Hong_Kong Hongkong --Link Africa/Abidjan Iceland -+Link Africa/Abidjan Iceland #= Atlantic/Reykjavik - Link Asia/Tehran Iran - Link Asia/Jerusalem Israel - Link America/Jamaica Jamaica -@@ -134,14 +124,8 @@ Link America/Mazatlan Mexico/BajaSur - Link America/Mexico_City Mexico/General - Link Pacific/Auckland NZ - Link Pacific/Chatham NZ-CHAT --Link America/Denver Navajo -+Link America/Denver Navajo #= America/Shiprock - Link Asia/Shanghai PRC --Link Pacific/Kanton Pacific/Enderbury --Link Pacific/Honolulu Pacific/Johnston --Link Pacific/Guadalcanal Pacific/Ponape --Link Pacific/Pago_Pago Pacific/Samoa --Link Pacific/Port_Moresby Pacific/Truk --Link Pacific/Port_Moresby Pacific/Yap - Link Europe/Warsaw Poland - Link Europe/Lisbon Portugal - Link Asia/Taipei ROC -@@ -165,3 +149,192 @@ Link Etc/UTC UTC - Link Etc/UTC Universal - Link Europe/Moscow W-SU - Link Etc/UTC Zulu -+ -+ -+# Two-part names that were renamed mostly to three-part names in 1995 -+ -+# Link TARGET LINK-NAME #= TARGET1 -+Link America/Argentina/Buenos_Aires America/Buenos_Aires -+Link America/Argentina/Catamarca America/Catamarca -+Link America/Argentina/Cordoba America/Cordoba -+Link America/Indiana/Indianapolis America/Indianapolis -+Link America/Argentina/Jujuy America/Jujuy -+Link America/Indiana/Knox America/Knox_IN -+Link America/Kentucky/Louisville America/Louisville -+Link America/Argentina/Mendoza America/Mendoza -+Link America/Puerto_Rico America/Virgin #= America/St_Thomas -+Link Pacific/Pago_Pago Pacific/Samoa -+ -+ -+# Pre-2013 practice, which typically had a Zone per zone.tab line -+ -+# Link TARGET LINK-NAME -+Link Africa/Abidjan Africa/Accra -+Link Africa/Nairobi Africa/Addis_Ababa -+Link Africa/Nairobi Africa/Asmara -+Link Africa/Abidjan Africa/Bamako -+Link Africa/Lagos Africa/Bangui -+Link Africa/Abidjan Africa/Banjul -+Link Africa/Maputo Africa/Blantyre -+Link Africa/Lagos Africa/Brazzaville -+Link Africa/Maputo Africa/Bujumbura -+Link Africa/Abidjan Africa/Conakry -+Link Africa/Abidjan Africa/Dakar -+Link Africa/Nairobi Africa/Dar_es_Salaam -+Link Africa/Nairobi Africa/Djibouti -+Link Africa/Lagos Africa/Douala -+Link Africa/Abidjan Africa/Freetown -+Link Africa/Maputo Africa/Gaborone -+Link Africa/Maputo Africa/Harare -+Link Africa/Nairobi Africa/Kampala -+Link Africa/Maputo Africa/Kigali -+Link Africa/Lagos Africa/Kinshasa -+Link Africa/Lagos Africa/Libreville -+Link Africa/Abidjan Africa/Lome -+Link Africa/Lagos Africa/Luanda -+Link Africa/Maputo Africa/Lubumbashi -+Link Africa/Maputo Africa/Lusaka -+Link Africa/Lagos Africa/Malabo -+Link Africa/Johannesburg Africa/Maseru -+Link Africa/Johannesburg Africa/Mbabane -+Link Africa/Nairobi Africa/Mogadishu -+Link Africa/Lagos Africa/Niamey -+Link Africa/Abidjan Africa/Nouakchott -+Link Africa/Abidjan Africa/Ouagadougou -+Link Africa/Lagos Africa/Porto-Novo -+Link America/Puerto_Rico America/Anguilla -+Link America/Puerto_Rico America/Antigua -+Link America/Puerto_Rico America/Aruba -+Link America/Panama America/Atikokan -+Link America/Puerto_Rico America/Blanc-Sablon -+Link America/Panama America/Cayman -+Link America/Phoenix America/Creston -+Link America/Puerto_Rico America/Curacao -+Link America/Puerto_Rico America/Dominica -+Link America/Puerto_Rico America/Grenada -+Link America/Puerto_Rico America/Guadeloupe -+Link America/Puerto_Rico America/Kralendijk -+Link America/Puerto_Rico America/Lower_Princes -+Link America/Puerto_Rico America/Marigot -+Link America/Puerto_Rico America/Montserrat -+Link America/Toronto America/Nassau -+Link America/Puerto_Rico America/Port_of_Spain -+Link America/Puerto_Rico America/St_Barthelemy -+Link America/Puerto_Rico America/St_Kitts -+Link America/Puerto_Rico America/St_Lucia -+Link America/Puerto_Rico America/St_Thomas -+Link America/Puerto_Rico America/St_Vincent -+Link America/Puerto_Rico America/Tortola -+Link Pacific/Port_Moresby Antarctica/DumontDUrville -+Link Pacific/Auckland Antarctica/McMurdo -+Link Asia/Riyadh Antarctica/Syowa -+Link Asia/Urumqi Antarctica/Vostok -+Link Europe/Berlin Arctic/Longyearbyen -+Link Asia/Riyadh Asia/Aden -+Link Asia/Qatar Asia/Bahrain -+Link Asia/Kuching Asia/Brunei -+Link Asia/Singapore Asia/Kuala_Lumpur -+Link Asia/Riyadh Asia/Kuwait -+Link Asia/Dubai Asia/Muscat -+Link Asia/Bangkok Asia/Phnom_Penh -+Link Asia/Bangkok Asia/Vientiane -+Link Africa/Abidjan Atlantic/Reykjavik -+Link Africa/Abidjan Atlantic/St_Helena -+Link Europe/Brussels Europe/Amsterdam -+Link Europe/Prague Europe/Bratislava -+Link Europe/Zurich Europe/Busingen -+Link Europe/Berlin Europe/Copenhagen -+Link Europe/London Europe/Guernsey -+Link Europe/London Europe/Isle_of_Man -+Link Europe/London Europe/Jersey -+Link Europe/Belgrade Europe/Ljubljana -+Link Europe/Brussels Europe/Luxembourg -+Link Europe/Helsinki Europe/Mariehamn -+Link Europe/Paris Europe/Monaco -+Link Europe/Berlin Europe/Oslo -+Link Europe/Belgrade Europe/Podgorica -+Link Europe/Rome Europe/San_Marino -+Link Europe/Belgrade Europe/Sarajevo -+Link Europe/Belgrade Europe/Skopje -+Link Europe/Berlin Europe/Stockholm -+Link Europe/Zurich Europe/Vaduz -+Link Europe/Rome Europe/Vatican -+Link Europe/Belgrade Europe/Zagreb -+Link Africa/Nairobi Indian/Antananarivo -+Link Asia/Bangkok Indian/Christmas -+Link Asia/Yangon Indian/Cocos -+Link Africa/Nairobi Indian/Comoro -+Link Indian/Maldives Indian/Kerguelen -+Link Asia/Dubai Indian/Mahe -+Link Africa/Nairobi Indian/Mayotte -+Link Asia/Dubai Indian/Reunion -+Link Pacific/Port_Moresby Pacific/Chuuk -+Link Pacific/Tarawa Pacific/Funafuti -+Link Pacific/Tarawa Pacific/Majuro -+Link Pacific/Pago_Pago Pacific/Midway -+Link Pacific/Guadalcanal Pacific/Pohnpei -+Link Pacific/Guam Pacific/Saipan -+Link Pacific/Tarawa Pacific/Wake -+Link Pacific/Tarawa Pacific/Wallis -+ -+ -+# Non-zone.tab locations with timestamps since 1970 that duplicate -+# those of an existing location -+ -+# Link TARGET LINK-NAME -+Link Africa/Abidjan Africa/Timbuktu -+Link America/Argentina/Catamarca America/Argentina/ComodRivadavia -+Link America/Adak America/Atka -+Link America/Panama America/Coral_Harbour -+Link America/Tijuana America/Ensenada -+Link America/Indiana/Indianapolis America/Fort_Wayne -+Link America/Toronto America/Montreal -+Link America/Toronto America/Nipigon -+Link America/Rio_Branco America/Porto_Acre -+Link America/Winnipeg America/Rainy_River -+Link America/Argentina/Cordoba America/Rosario -+Link America/Tijuana America/Santa_Isabel -+Link America/Denver America/Shiprock -+Link America/Toronto America/Thunder_Bay -+Link Pacific/Auckland Antarctica/South_Pole -+Link Asia/Shanghai Asia/Chongqing -+Link Asia/Shanghai Asia/Harbin -+Link Asia/Urumqi Asia/Kashgar -+Link Asia/Jerusalem Asia/Tel_Aviv -+Link Europe/Berlin Atlantic/Jan_Mayen -+Link Australia/Sydney Australia/Canberra -+Link Australia/Hobart Australia/Currie -+Link Europe/London Europe/Belfast -+Link Europe/Chisinau Europe/Tiraspol -+Link Europe/Kyiv Europe/Uzhgorod -+Link Europe/Kyiv Europe/Zaporozhye -+Link Pacific/Kanton Pacific/Enderbury -+Link Pacific/Honolulu Pacific/Johnston -+Link Pacific/Port_Moresby Pacific/Yap -+ -+ -+# Alternate names for the same location -+ -+# Link TARGET LINK-NAME #= TARGET1 -+Link Africa/Nairobi Africa/Asmera #= Africa/Asmara -+Link America/Nuuk America/Godthab -+Link Asia/Ashgabat Asia/Ashkhabad -+Link Asia/Kolkata Asia/Calcutta -+Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing -+Link Asia/Dhaka Asia/Dacca -+# Istanbul is in both continents. -+Link Europe/Istanbul Asia/Istanbul -+Link Asia/Kathmandu Asia/Katmandu -+Link Asia/Macau Asia/Macao -+Link Asia/Yangon Asia/Rangoon -+Link Asia/Ho_Chi_Minh Asia/Saigon -+Link Asia/Thimphu Asia/Thimbu -+Link Asia/Makassar Asia/Ujung_Pandang -+Link Asia/Ulaanbaatar Asia/Ulan_Bator -+Link Atlantic/Faroe Atlantic/Faeroe -+Link Europe/Kyiv Europe/Kiev -+# Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72. -+# However, for various reasons many users expect to find it under Europe. -+Link Asia/Nicosia Europe/Nicosia -+Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei -+Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk -diff --git a/jdk/make/data/tzdata/etcetera b/jdk/make/data/tzdata/etcetera -index 82ff6b4..8ae294f 100644 ---- a/jdk/make/data/tzdata/etcetera -+++ b/jdk/make/data/tzdata/etcetera -@@ -39,26 +39,23 @@ - # Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours - # behind GMT but uses the completely misleading abbreviation "GMT". - --Zone Etc/GMT 0 - GMT -- - # The following zone is used by tzcode functions like gmtime, - # which load the "UTC" file to handle seconds properly. - Zone Etc/UTC 0 - UTC - -+# Functions like gmtime load the "GMT" file to handle leap seconds properly. -+# Vanguard section, which works with most .zi parsers. -+#Zone GMT 0 - GMT -+# Rearguard section, for TZUpdater 2.3.2 and earlier. -+Zone Etc/GMT 0 - GMT -+ - # The following link uses older naming conventions, - # but it belongs here, not in the file 'backward', - # as it is needed for tzcode releases through 2022a, - # where functions like gmtime load "GMT" instead of the "Etc/UTC". - # We want this to work even on installations that omit 'backward'. - Link Etc/GMT GMT -- --Link Etc/UTC Etc/Universal --Link Etc/UTC Etc/Zulu -- --Link Etc/GMT Etc/Greenwich --Link Etc/GMT Etc/GMT-0 --Link Etc/GMT Etc/GMT+0 --Link Etc/GMT Etc/GMT0 -+# End of rearguard section. - - # Be consistent with POSIX TZ settings in the Zone names, - # even though this is the opposite of what many people expect. -diff --git a/jdk/make/data/tzdata/europe b/jdk/make/data/tzdata/europe -index 930cede..7b6aa13 100644 ---- a/jdk/make/data/tzdata/europe -+++ b/jdk/make/data/tzdata/europe -@@ -527,9 +527,6 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1 - 1:00 - BST 1971 Oct 31 2:00u - 0:00 GB-Eire %s 1996 - 0:00 EU GMT/BST --Link Europe/London Europe/Jersey --Link Europe/London Europe/Guernsey --Link Europe/London Europe/Isle_of_Man - - # From Paul Eggert (2018-02-15): - # In January 2018 we discovered that the negative SAVE values in the -@@ -902,6 +899,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 - 3:00 - +03 - - # Belgium -+# Luxembourg -+# Netherlands - # - # From Michael Deckers (2019-08-25): - # The exposition in the web page -@@ -984,11 +983,6 @@ Zone Europe/Brussels 0:17:30 - LMT 1880 - 1:00 C-Eur CE%sT 1944 Sep 3 - 1:00 Belgium CE%sT 1977 - 1:00 EU CE%sT --Link Europe/Brussels Europe/Amsterdam --Link Europe/Brussels Europe/Luxembourg -- --# Bosnia and Herzegovina --# See Europe/Belgrade. - - # Bulgaria - # -@@ -1015,13 +1009,11 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 - 2:00 E-Eur EE%sT 1997 - 2:00 EU EE%sT - --# Croatia --# See Europe/Belgrade. -- - # Cyprus - # Please see the 'asia' file for Asia/Nicosia. - --# Czech Republic / Czechia -+# Czech Republic (Czechia) -+# Slovakia - # - # From Paul Eggert (2018-04-15): - # The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15. -@@ -1048,15 +1040,14 @@ Zone Europe/Prague 0:57:44 - LMT 1850 - # End of rearguard section. - 1:00 Czech CE%sT 1979 - 1:00 EU CE%sT --Link Europe/Prague Europe/Bratislava -- -- --# Denmark, Faroe Islands, and Greenland --# For Denmark see Europe/Berlin. - -+# Faroe Is -+# Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn - 0:00 - WET 1981 - 0:00 EU WE%sT -+ -+# Greenland - # - # From Paul Eggert (2004-10-31): - # During World War II, Germany maintained secret manned weather stations in -@@ -1282,11 +1273,8 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 - 2:00 Finland EE%sT 1983 - 2:00 EU EE%sT - --# Åland Is --Link Europe/Helsinki Europe/Mariehamn -- -- - # France -+# Monaco - - # From Ciro Discepolo (2000-12-20): - # -@@ -1423,9 +1411,11 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16 - 0:00 France WE%sT 1945 Sep 16 3:00 - 1:00 France CE%sT 1977 - 1:00 EU CE%sT --Link Europe/Paris Europe/Monaco - -+# Denmark - # Germany -+# Norway -+# Sweden - - # From Markus Kuhn (1998-09-29): - # The German time zone web site by the Physikalisch-Technische -@@ -1443,6 +1433,53 @@ Link Europe/Paris Europe/Monaco - # However, Moscow did not observe daylight saving in 1945, so - # this was equivalent to UT +03, not +04. - -+# Svalbard & Jan Mayen -+ -+# From Steffen Thorsen (2001-05-01): -+# Although I could not find it explicitly, it seems that Jan Mayen and -+# Svalbard have been using the same time as Norway at least since the -+# time they were declared as parts of Norway. Svalbard was declared -+# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan -+# Mayen by law of 1930-02-27 no 2, section 2. (From -+# and -+# ). The law/regulation -+# for normal/standard time in Norway is from 1894-06-29 no 1 (came -+# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a -+# part of this law since 1925/1930. (From -+# ) I have not been -+# able to find if Jan Mayen used a different time zone (e.g. -0100) -+# before 1930. Jan Mayen has only been "inhabited" since 1921 by -+# Norwegian meteorologists and maybe used the same time as Norway ever -+# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since -+# before 1895, and therefore probably changed the local time somewhere -+# between 1895 and 1925 (inclusive). -+ -+# From Paul Eggert (2013-09-04): -+# -+# Actually, Jan Mayen was never occupied by Germany during World War II, -+# so it must have diverged from Oslo time during the war, as Oslo was -+# keeping Berlin time. -+# -+# says that the meteorologists -+# burned down their station in 1940 and left the island, but returned in -+# 1941 with a small Norwegian garrison and continued operations despite -+# frequent air attacks from Germans. In 1943 the Americans established a -+# radiolocating station on the island, called "Atlantic City". Possibly -+# the UT offset changed during the war, but I think it unlikely that -+# Jan Mayen used German daylight-saving rules. -+# -+# Svalbard is more complicated, as it was raided in August 1941 by an -+# Allied party that evacuated the civilian population to England (says -+# ). The Svalbard FAQ -+# says that the Germans were -+# expelled on 1942-05-14. However, small parties of Germans did return, -+# and according to Wilhelm Dege's book "War North of 80" (1954) -+# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html -+# the German armed forces at the Svalbard weather station code-named -+# Haudegen did not surrender to the Allies until September 1945. -+# -+# All these events predate our cutoff date of 1970, so use Europe/Berlin -+# for these regions. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Germany 1946 only - Apr 14 2:00s 1:00 S -@@ -1467,11 +1504,6 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr - 1:00 SovietZone CE%sT 1946 - 1:00 Germany CE%sT 1980 - 1:00 EU CE%sT --Link Europe/Berlin Arctic/Longyearbyen --Link Europe/Berlin Europe/Copenhagen --Link Europe/Berlin Europe/Oslo --Link Europe/Berlin Europe/Stockholm -- - - # Georgia - # Please see the "asia" file for Asia/Tbilisi. -@@ -1590,10 +1622,9 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1 - 1:00 Hungary CE%sT 1984 - 1:00 EU CE%sT - --# Iceland --# See Africa/Abidjan. -- - # Italy -+# San Marino -+# Vatican City - # - # From Paul Eggert (2001-03-06): - # Sicily and Sardinia each had their own time zones from 1866 to 1893, -@@ -1712,13 +1743,6 @@ Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12 - 1:00 C-Eur CE%sT 1944 Jun 4 - 1:00 Italy CE%sT 1980 - 1:00 EU CE%sT --Link Europe/Rome Europe/Vatican --Link Europe/Rome Europe/San_Marino -- -- --# Kosovo --# See Europe/Belgrade. -- - - # Latvia - -@@ -1802,10 +1826,6 @@ Zone Europe/Riga 1:36:34 - LMT 1880 - 2:00 - EET 2001 Jan 2 - 2:00 EU EE%sT - --# Liechtenstein --# See Europe/Zurich. -- -- - # Lithuania - - # From Paul Eggert (2016-03-18): -@@ -1858,12 +1878,6 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880 - 2:00 - EET 2003 Jan 1 - 2:00 EU EE%sT - --# Luxembourg --# See Europe/Brussels. -- --# North Macedonia --# See Europe/Belgrade. -- - # Malta - # - # From Paul Eggert (2016-10-21): -@@ -1959,67 +1973,6 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 - # See Romania commentary for the guessed 1997 transition to EU rules. - 2:00 Moldova EE%sT - --# Monaco --# See Europe/Paris. -- --# Montenegro --# See Europe/Belgrade. -- --# Netherlands --# See Europe/Brussels. -- --# Norway --# See Europe/Berlin. -- --# Svalbard & Jan Mayen -- --# From Steffen Thorsen (2001-05-01): --# Although I could not find it explicitly, it seems that Jan Mayen and --# Svalbard have been using the same time as Norway at least since the --# time they were declared as parts of Norway. Svalbard was declared --# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan --# Mayen by law of 1930-02-27 no 2, section 2. (From --# and --# ). The law/regulation --# for normal/standard time in Norway is from 1894-06-29 no 1 (came --# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a --# part of this law since 1925/1930. (From --# ) I have not been --# able to find if Jan Mayen used a different time zone (e.g. -0100) --# before 1930. Jan Mayen has only been "inhabited" since 1921 by --# Norwegian meteorologists and maybe used the same time as Norway ever --# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since --# before 1895, and therefore probably changed the local time somewhere --# between 1895 and 1925 (inclusive). -- --# From Paul Eggert (2013-09-04): --# --# Actually, Jan Mayen was never occupied by Germany during World War II, --# so it must have diverged from Oslo time during the war, as Oslo was --# keeping Berlin time. --# --# says that the meteorologists --# burned down their station in 1940 and left the island, but returned in --# 1941 with a small Norwegian garrison and continued operations despite --# frequent air attacks from Germans. In 1943 the Americans established a --# radiolocating station on the island, called "Atlantic City". Possibly --# the UT offset changed during the war, but I think it unlikely that --# Jan Mayen used German daylight-saving rules. --# --# Svalbard is more complicated, as it was raided in August 1941 by an --# Allied party that evacuated the civilian population to England (says --# ). The Svalbard FAQ --# says that the Germans were --# expelled on 1942-05-14. However, small parties of Germans did return, --# and according to Wilhelm Dege's book "War North of 80" (1954) --# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html --# the German armed forces at the Svalbard weather station code-named --# Haudegen did not surrender to the Allies until September 1945. --# --# All these events predate our cutoff date of 1970, so use Europe/Berlin --# for these regions. -- -- - # Poland - - # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20), -@@ -3301,11 +3254,13 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 - 11:00 Russia +11/+12 2011 Mar 27 2:00s - 12:00 - +12 - -- --# San Marino --# See Europe/Rome. -- -+# Bosnia & Herzegovina -+# Croatia -+# Kosovo -+# Montenegro -+# North Macedonia - # Serbia -+# Slovenia - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Europe/Belgrade 1:22:00 - LMT 1884 - 1:00 - CET 1941 Apr 18 23:00 -@@ -3317,17 +3272,6 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884 - # Shanks & Pottenger don't give as much detail, so go with Koželj. - 1:00 - CET 1982 Nov 27 - 1:00 EU CE%sT --Link Europe/Belgrade Europe/Ljubljana # Slovenia --Link Europe/Belgrade Europe/Podgorica # Montenegro --Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina --Link Europe/Belgrade Europe/Skopje # North Macedonia --Link Europe/Belgrade Europe/Zagreb # Croatia -- --# Slovakia --# See Europe/Prague. -- --# Slovenia --# See Europe/Belgrade. - - # Spain - # -@@ -3434,10 +3378,11 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. - # IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u. - # Ignore this for now, as the Canaries are part of the EU. - --# Sweden --# See Europe/Berlin. - -+# Germany (Busingen enclave) -+# Liechtenstein - # Switzerland -+# - # From Howse: - # By the end of the 18th century clocks and watches became commonplace - # and their performance improved enormously. Communities began to keep -@@ -3550,9 +3495,6 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. - 0:29:46 - BMT 1894 Jun # Bern Mean Time - 1:00 Swiss CE%sT 1981 - 1:00 EU CE%sT --Link Europe/Zurich Europe/Busingen --Link Europe/Zurich Europe/Vaduz -- - - # Turkey - -@@ -3757,7 +3699,6 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 - 2:00 1:00 EEST 2015 Nov 8 1:00u - 2:00 EU EE%sT 2016 Sep 7 - 3:00 - +03 --Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - - # Ukraine - # -@@ -3860,9 +3801,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880 - 2:00 C-Eur EE%sT 1996 May 13 - 2:00 EU EE%sT - --# Vatican City --# See Europe/Rome. -- - ############################################################################### - - # One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from -diff --git a/jdk/make/data/tzdata/northamerica b/jdk/make/data/tzdata/northamerica -index ce4ee74..465e8c2 100644 ---- a/jdk/make/data/tzdata/northamerica -+++ b/jdk/make/data/tzdata/northamerica -@@ -852,7 +852,6 @@ Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u - -7:00 - MST 1967 - -7:00 US M%sT 1968 Mar 21 - -7:00 - MST --Link America/Phoenix America/Creston - - # From Arthur David Olson (1988-02-13): - # A writer from the Inter Tribal Council of Arizona, Inc., -@@ -1626,23 +1625,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 - - # Ontario - --# From Paul Eggert (2006-07-09): --# Shanks & Pottenger write that since 1970 most of Ontario has been like --# Toronto. --# Thunder Bay skipped DST in 1973. --# Many smaller locales did not observe peacetime DST until 1974; --# Nipigon (EST) and Rainy River (CST) are the largest that we know of. --# Far west Ontario is like Winnipeg; far east Quebec is like Halifax. -- --# From Jeffery Nichols (2020-02-06): --# According to the [Shanks] atlas, those western Ontario zones are huge, --# covering most of Ontario northwest of Sault Ste Marie and Timmins. --# The zones seem to include towns bigger than the ones they're named after, --# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in --# America/Nipigon. I assume it's too much trouble to change the name of the --# zone (like when you found out that America/Glace_Bay includes Sydney, Nova --# Scotia).... -- - # From Mark Brader (2003-07-26): - # [According to the Toronto Star] Orillia, Ontario, adopted DST - # effective Saturday, 1912-06-22, 22:00; the article mentions that -@@ -1663,17 +1645,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 - - # From Mark Brader (2010-03-06): - # --# Currently the database has: --# --# # Ontario --# --# # From Paul Eggert (2006-07-09): --# # Shanks & Pottenger write that since 1970 most of Ontario has been like --# # Toronto. --# # Thunder Bay skipped DST in 1973. --# # Many smaller locales did not observe peacetime DST until 1974; --# # Nipigon (EST) and Rainy River (CST) are the largest that we know of. --# - # In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom - # right corner of page 1, it says that Toronto will return to standard - # time at 2 am Sunday morning (which agrees with the database), and that: -@@ -1681,10 +1652,8 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 - # The one-hour setback will go into effect throughout most of Ontario, - # except in areas like Windsor which remains on standard time all year. - # --# Windsor is, of course, a lot larger than Nipigon. --# --# I only came across this incidentally. I don't know if Windsor began --# observing DST when Detroit did, or in 1974, or on some other date. -+# ... I don't know if Windsor began observing DST when Detroit did, -+# or in 1974, or on some other date. - # - # By the way, the article continues by noting that: - # -@@ -1766,23 +1735,7 @@ Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S - # Toronto Star, which said that DST was ending 1971-10-31 as usual. - Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S - --# From Paul Eggert (2003-07-27): --# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and --# Port Arthur, Ontario, the principle of the Bill has been in --# operation for the past three years, and in the City of Moose Jaw, --# Saskatchewan, for one year." -- --# From David Bryan via Tory Tronrud, Director/Curator, --# Thunder Bay Museum (2003-11-12): --# There is some suggestion, however, that, by-law or not, daylight --# savings time was being practiced in Fort William and Port Arthur --# before 1909.... [I]n 1910, the line between the Eastern and Central --# Time Zones was permanently moved about two hundred miles west to --# include the Thunder Bay area.... When Canada adopted daylight --# savings time in 1916, Fort William and Port Arthur, having done so --# already, did not change their clocks.... During the Second World --# War,... [t]he cities agreed to implement DST during the summer --# months for the remainder of the war years. -+# The Bahamas match Toronto since 1970. - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/Toronto -5:17:32 - LMT 1895 -@@ -1791,22 +1744,6 @@ Zone America/Toronto -5:17:32 - LMT 1895 - -5:00 Canada E%sT 1946 - -5:00 Toronto E%sT 1974 - -5:00 Canada E%sT --Link America/Toronto America/Nassau --Zone America/Thunder_Bay -5:57:00 - LMT 1895 -- -6:00 - CST 1910 -- -5:00 - EST 1942 -- -5:00 Canada E%sT 1970 -- -5:00 Toronto E%sT 1973 -- -5:00 - EST 1974 -- -5:00 Canada E%sT --Zone America/Nipigon -5:53:04 - LMT 1895 -- -5:00 Canada E%sT 1940 Sep 29 -- -5:00 1:00 EDT 1942 Feb 9 2:00s -- -5:00 Canada E%sT --Zone America/Rainy_River -6:18:16 - LMT 1895 -- -6:00 Canada C%sT 1940 Sep 29 -- -6:00 1:00 CDT 1942 Feb 9 2:00s -- -6:00 Canada C%sT - # For Atikokan see America/Panama. - - -@@ -2639,6 +2576,12 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 - # 5- The islands, reefs and keys shall take their timezone from the - # longitude they are located at. - -+# From Paul Eggert (2022-10-28): -+# The new Mexican law was published today: -+# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022 -+# This abolishes DST except where US DST rules are observed, -+# and in addition changes all of Chihuahua to -06 with no DST. -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Mexico 1931 only - May 1 23:00 1:00 D - Rule Mexico 1931 only - Oct 1 0:00 0 S -@@ -2654,8 +2597,8 @@ Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D - Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S - Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D - Rule Mexico 2001 only - Sep lastSun 2:00 0 S --Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D --Rule Mexico 2002 max - Oct lastSun 2:00 0 S -+Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D -+Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] - # Quintana Roo; represented by Cancún - Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u -@@ -2708,7 +2651,8 @@ Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT 2010 -- -7:00 US M%sT -+ -7:00 US M%sT 2022 Oct 30 2:00 -+ -6:00 - CST - # Chihuahua (away from US border) - Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 -@@ -2717,7 +2661,8 @@ Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u - -6:00 - CST 1996 - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 -- -7:00 Mexico M%sT -+ -7:00 Mexico M%sT 2022 Oct 30 2:00 -+ -6:00 - CST - # Sonora - Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 -@@ -2815,20 +2760,16 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u - # http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010 - # It has been moved to the 'backward' file. - # -+# From Paul Eggert (2022-10-28): -+# Today's new law states that the entire state of Baja California -+# follows US DST rules, which agrees with simplifications noted above. -+# - # - # Revillagigedo Is - # no information - - ############################################################################### - --# Anguilla --# Antigua and Barbuda --# See America/Puerto_Rico. -- --# The Bahamas --# See America/Toronto. -- -- - # Barbados - - # For 1899 Milne gives -3:58:29.2. -@@ -3041,12 +2982,6 @@ Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton - -4:00 Canada A%sT 1976 - -4:00 US A%sT - --# Caribbean Netherlands --# See America/Puerto_Rico. -- --# Cayman Is --# See America/Panama. -- - # Costa Rica - - # Milne gives -5:36:13.3 as San José mean time. -@@ -3272,9 +3207,6 @@ Zone America/Havana -5:29:28 - LMT 1890 - -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT - -5:00 Cuba C%sT - --# Dominica --# See America/Puerto_Rico. -- - # Dominican Republic - - # From Steffen Thorsen (2000-10-30): -@@ -3321,12 +3253,6 @@ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S - Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador - -6:00 Salv C%sT - --# Grenada --# Guadeloupe --# St Barthélemy --# St Martin (French part) --# See America/Puerto_Rico. -- - # Guatemala - # - # From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen: -@@ -3512,9 +3438,6 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France - -4:00 1:00 ADT 1980 Sep 28 - -4:00 - AST - --# Montserrat --# See America/Puerto_Rico. -- - # Nicaragua - # - # This uses Shanks & Pottenger for times before 2005. -@@ -3580,44 +3503,39 @@ Zone America/Managua -5:45:08 - LMT 1890 - -5:00 - EST 1997 - -6:00 Nic C%sT - -+# Cayman Is - # Panama -+# -+# Atikokan and Coral Harbour, Canada, match Panama since 1970. - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/Panama -5:18:08 - LMT 1890 - -5:19:36 - CMT 1908 Apr 22 # Colón Mean Time - -5:00 - EST --Link America/Panama America/Atikokan --Link America/Panama America/Cayman - -+# Anguilla -+# Antigua & Barbuda -+# Aruba -+# Caribbean Netherlands -+# Curaçao -+# Dominica -+# Grenada -+# Guadeloupe -+# Montserrat - # Puerto Rico -+# St Barthélemy -+# St Kitts-Nevis -+# Sint Maarten / St Martin -+# St Lucia -+# St Vincent & the Grenadines -+# Trinidad & Tobago -+# Virgin Is (UK & US) -+# - # There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'. - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan - -4:00 - AST 1942 May 3 - -4:00 US A%sT 1946 - -4:00 - AST --Link America/Puerto_Rico America/Anguilla --Link America/Puerto_Rico America/Antigua --Link America/Puerto_Rico America/Aruba --Link America/Puerto_Rico America/Curacao --Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore) --Link America/Puerto_Rico America/Dominica --Link America/Puerto_Rico America/Grenada --Link America/Puerto_Rico America/Guadeloupe --Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands --Link America/Puerto_Rico America/Lower_Princes # Sint Maarten --Link America/Puerto_Rico America/Marigot # St Martin (French part) --Link America/Puerto_Rico America/Montserrat --Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago --Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy --Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis --Link America/Puerto_Rico America/St_Lucia --Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US) --Link America/Puerto_Rico America/St_Vincent --Link America/Puerto_Rico America/Tortola # Virgin Islands (UK) -- --# St Kitts-Nevis --# St Lucia --# See America/Puerto_Rico. - - # St Pierre and Miquelon - # There are too many St Pierres elsewhere, so we'll use 'Miquelon'. -@@ -3627,12 +3545,6 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre - -3:00 - -03 1987 - -3:00 Canada -03/-02 - --# St Vincent and the Grenadines --# See America/Puerto_Rico. -- --# Sint Maarten --# See America/Puerto_Rico. -- - # Turks and Caicos - # - # From Chris Dunn in -@@ -3702,11 +3614,6 @@ Zone America/Grand_Turk -4:44:32 - LMT 1890 - -4:00 - AST 2018 Mar 11 3:00 - -5:00 US E%sT - --# British Virgin Is --# US Virgin Is --# See America/Puerto_Rico. -- -- - # Local Variables: - # coding: utf-8 - # End: -diff --git a/jdk/make/data/tzdata/southamerica b/jdk/make/data/tzdata/southamerica -index 3c0e0e2..982ad09 100644 ---- a/jdk/make/data/tzdata/southamerica -+++ b/jdk/make/data/tzdata/southamerica -@@ -608,9 +608,6 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 - --# Aruba --# See America/Puerto_Rico. -- - # Bolivia - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/La_Paz -4:32:36 - LMT 1890 -@@ -1455,15 +1452,6 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 - # Malpelo, Providencia, San Andres - # no information; probably like America/Bogota - --# Curaçao --# See America/Puerto_Rico. --# --# From Arthur David Olson (2011-06-15): --# use links for places with new iso3166 codes. --# The name "Lower Prince's Quarter" is both longer than fourteen characters --# and contains an apostrophe; use "Lower_Princes".... --# From Paul Eggert (2021-09-29): --# These backward-compatibility links now are in the 'northamerica' file. - - # Ecuador - # -@@ -1779,9 +1767,6 @@ Zone America/Paramaribo -3:40:40 - LMT 1911 - -3:30 - -0330 1984 Oct - -3:00 - -03 - --# Trinidad and Tobago --# See America/Puerto_Rico. -- - # Uruguay - # From Paul Eggert (1993-11-18): - # Uruguay wins the prize for the strangest peacetime manipulation of the rules. -diff --git a/jdk/make/data/tzdata/zone.tab b/jdk/make/data/tzdata/zone.tab -index ee02519..535d1c9 100644 ---- a/jdk/make/data/tzdata/zone.tab -+++ b/jdk/make/data/tzdata/zone.tab -@@ -137,13 +137,10 @@ CA +4606-06447 America/Moncton Atlantic - New Brunswick - CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) - CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore) - CA +4339-07923 America/Toronto Eastern - ON, QC (most areas) --CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73) --CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay) - CA +6344-06828 America/Iqaluit Eastern - NU (most east areas) - CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung) - CA +484531-0913718 America/Atikokan EST - ON (Atikokan); NU (Coral H) - CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba --CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances) - CA +744144-0944945 America/Resolute Central - NU (Resolute) - CA +624900-0920459 America/Rankin_Inlet Central - NU (central) - CA +5024-10439 America/Regina CST - SK (most areas) -diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java -index 215ad9f..d327baf 100644 ---- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java -+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2022, 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 -@@ -429,7 +429,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle { - "French Guiana Summer Time", "GFST", - "French Guiana Time", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -518,7 +518,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"Suriname Time", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java b/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java -index 00e490e..75d4213 100644 ---- a/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java -+++ b/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle { - "Franz\u00f6sisch-Guiana Sommerzeit", "GFST", - "Franz\u00F6sisch-Guiana Zeit", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"Suriname Zeit", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java b/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java -index aaaf4ec..97576bf 100644 ---- a/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java -+++ b/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle { - "Hora de verano de la Guayana Francesa", "GFST", - "Hora de la Guayana Francesa", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"Hora de Surinam", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java b/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java -index 6415066..bcf05e9 100644 ---- a/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java -+++ b/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle { - "Heure d'\u00e9t\u00e9 de Guyane fran\u00e7aise", "GFST", - "Heure de Guyane fran\u00E7aise", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"Heure du Surinam", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java b/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java -index dead599..951779d 100644 ---- a/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java -+++ b/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle { - "Ora estiva della Guyana Francese", "GFST", - "Ora della Guyana Francese", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"Ora di Suriname", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java b/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java -index 0c104b5..c1dce59 100644 ---- a/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java -+++ b/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle { - "\u4ecf\u9818\u30ae\u30a2\u30ca\u590f\u6642\u9593", "GFST", - "\u30D5\u30E9\u30F3\u30B9\u9818\u30AE\u30A2\u30CA\u6642\u9593", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"\u30b9\u30ea\u30ca\u30e0\u6642\u9593", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java b/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java -index 65efcf5..77cf2c4 100644 ---- a/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java -+++ b/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle { - "\ud504\ub791\uc2a4\ub839 \uae30\uc544\ub098 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "GFST", - "\uD504\uB791\uC2A4\uB839 \uAE30\uC544\uB098 \uD45C\uC900\uC2DC", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"\uc218\ub9ac\ub0a8 \uc2dc\uac04", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java b/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java -index b5f3acb..9b35f2b 100644 ---- a/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java -+++ b/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle { - "Fuso hor\u00e1rio de ver\u00e3o da Guiana Francesa", "GFST", - "Hor\u00E1rio da Guiana Francesa", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"Fuso hor\u00e1rio do Suriname", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java b/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java -index d51762c..0e5be03 100644 ---- a/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java -+++ b/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle { - "Franska Guyana, sommartid", "GFST", - "Franska Guyana-tid", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"Surinam, normaltid", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java -index 1c4eef0..c7946f3 100644 ---- a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java -+++ b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle { - "\u6cd5\u5c5e\u572d\u4e9a\u90a3\u590f\u4ee4\u65f6", "GFST", - "\u6CD5\u5C5E\u572D\u4E9A\u90A3\u65F6\u95F4", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"\u82cf\u5229\u5357\u65f6\u95f4", "SRT", -diff --git a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java -index f83e2b8..cbc9e75 100644 ---- a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java -+++ b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2022, 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 -@@ -427,7 +427,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle { - "\u6cd5\u5c6c\u572d\u4e9e\u90a3\u590f\u4ee4\u6642\u9593", "GFST", - "\u6CD5\u5C6C\u572D\u4E9E\u90A3\u6642\u9593", "GFT"}}, - {"America/Cayman", EST}, -- {"America/Chihuahua", MST}, -+ {"America/Chihuahua", CST}, - {"America/Creston", MST}, - {"America/Coral_Harbour", EST}, - {"America/Cordoba", AGT}, -@@ -516,7 +516,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle { - {"America/North_Dakota/Center", CST}, - {"America/North_Dakota/New_Salem", CST}, - {"America/Nuuk", WGT}, -- {"America/Ojinaga", MST}, -+ {"America/Ojinaga", CST}, - {"America/Panama", EST}, - {"America/Pangnirtung", EST}, - {"America/Paramaribo", new String[] {"\u8607\u5229\u5357\u6642\u9593", "SRT", -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -index 0cad939..f29d2d9 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -@@ -1 +1 @@ --tzdata2022e -+tzdata2022f -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt -index e3ce742..24cec5a 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/aliases.txt -@@ -1,158 +1,7 @@ --Link Africa/Abidjan Africa/Accra # Ghana --Link Africa/Abidjan Africa/Bamako # Mali --Link Africa/Abidjan Africa/Banjul # The Gambia --Link Africa/Abidjan Africa/Conakry # Guinea --Link Africa/Abidjan Africa/Dakar # Senegal --Link Africa/Abidjan Africa/Freetown # Sierra Leone --Link Africa/Abidjan Africa/Lome # Togo --Link Africa/Abidjan Africa/Nouakchott # Mauritania --Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso --Link Africa/Abidjan Atlantic/Reykjavik # Iceland --Link Africa/Abidjan Atlantic/St_Helena # St Helena --Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia --Link Africa/Nairobi Africa/Asmara # Eritrea --Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania --Link Africa/Nairobi Africa/Djibouti --Link Africa/Nairobi Africa/Kampala # Uganda --Link Africa/Nairobi Africa/Mogadishu # Somalia --Link Africa/Nairobi Indian/Antananarivo # Madagascar --Link Africa/Nairobi Indian/Comoro --Link Africa/Nairobi Indian/Mayotte --Link Africa/Maputo Africa/Blantyre # Malawi --Link Africa/Maputo Africa/Bujumbura # Burundi --Link Africa/Maputo Africa/Gaborone # Botswana --Link Africa/Maputo Africa/Harare # Zimbabwe --Link Africa/Maputo Africa/Kigali # Rwanda --Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo --Link Africa/Maputo Africa/Lusaka # Zambia --Link Africa/Lagos Africa/Bangui # Central African Republic --Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo --Link Africa/Lagos Africa/Douala # Cameroon --Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west) --Link Africa/Lagos Africa/Libreville # Gabon --Link Africa/Lagos Africa/Luanda # Angola --Link Africa/Lagos Africa/Malabo # Equatorial Guinea --Link Africa/Lagos Africa/Niamey # Niger --Link Africa/Lagos Africa/Porto-Novo # Benin --Link Africa/Johannesburg Africa/Maseru # Lesotho --Link Africa/Johannesburg Africa/Mbabane # Eswatini --Link Asia/Yangon Indian/Cocos --Link Asia/Urumqi Antarctica/Vostok --Link Asia/Nicosia Europe/Nicosia --Link Asia/Kuching Asia/Brunei --Link Indian/Maldives Indian/Kerguelen --Link Asia/Qatar Asia/Bahrain --Link Asia/Riyadh Antarctica/Syowa --Link Asia/Riyadh Asia/Aden # Yemen --Link Asia/Riyadh Asia/Kuwait --Link Asia/Singapore Asia/Kuala_Lumpur --Link Asia/Bangkok Asia/Phnom_Penh # Cambodia --Link Asia/Bangkok Asia/Vientiane # Laos --Link Asia/Bangkok Indian/Christmas --Link Asia/Dubai Asia/Muscat # Oman --Link Asia/Dubai Indian/Mahe --Link Asia/Dubai Indian/Reunion --Link Pacific/Guam Pacific/Saipan # N Mariana Is --Link Pacific/Tarawa Pacific/Funafuti --Link Pacific/Tarawa Pacific/Majuro --Link Pacific/Tarawa Pacific/Wake --Link Pacific/Tarawa Pacific/Wallis --Link Pacific/Auckland Antarctica/McMurdo --Link Pacific/Port_Moresby Antarctica/DumontDUrville --Link Pacific/Port_Moresby Pacific/Chuuk --Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands --Link Pacific/Guadalcanal Pacific/Pohnpei --Link Europe/London Europe/Jersey --Link Europe/London Europe/Guernsey --Link Europe/London Europe/Isle_of_Man --Link Europe/Brussels Europe/Amsterdam --Link Europe/Brussels Europe/Luxembourg --Link Europe/Prague Europe/Bratislava --Link Europe/Helsinki Europe/Mariehamn --Link Europe/Paris Europe/Monaco --Link Europe/Berlin Arctic/Longyearbyen --Link Europe/Berlin Europe/Copenhagen --Link Europe/Berlin Europe/Oslo --Link Europe/Berlin Europe/Stockholm --Link Europe/Rome Europe/Vatican --Link Europe/Rome Europe/San_Marino --Link Europe/Belgrade Europe/Ljubljana # Slovenia --Link Europe/Belgrade Europe/Podgorica # Montenegro --Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina --Link Europe/Belgrade Europe/Skopje # North Macedonia --Link Europe/Belgrade Europe/Zagreb # Croatia --Link Europe/Zurich Europe/Busingen --Link Europe/Zurich Europe/Vaduz --Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. --Link America/Phoenix America/Creston --Link America/Toronto America/Nassau --Link America/Panama America/Atikokan --Link America/Panama America/Cayman --Link America/Puerto_Rico America/Anguilla --Link America/Puerto_Rico America/Antigua --Link America/Puerto_Rico America/Aruba --Link America/Puerto_Rico America/Curacao --Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore) --Link America/Puerto_Rico America/Dominica --Link America/Puerto_Rico America/Grenada --Link America/Puerto_Rico America/Guadeloupe --Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands --Link America/Puerto_Rico America/Lower_Princes # Sint Maarten --Link America/Puerto_Rico America/Marigot # St Martin (French part) --Link America/Puerto_Rico America/Montserrat --Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago --Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy --Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis --Link America/Puerto_Rico America/St_Lucia --Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US) --Link America/Puerto_Rico America/St_Vincent --Link America/Puerto_Rico America/Tortola # Virgin Islands (UK) - Link Asia/Riyadh87 Mideast/Riyadh87 - Link Asia/Riyadh88 Mideast/Riyadh88 - Link Asia/Riyadh89 Mideast/Riyadh89 --Link Africa/Nairobi Africa/Asmera --Link Africa/Abidjan Africa/Timbuktu --Link America/Argentina/Catamarca America/Argentina/ComodRivadavia --Link America/Adak America/Atka --Link America/Argentina/Buenos_Aires America/Buenos_Aires --Link America/Argentina/Catamarca America/Catamarca --Link America/Panama America/Coral_Harbour --Link America/Argentina/Cordoba America/Cordoba --Link America/Tijuana America/Ensenada --Link America/Indiana/Indianapolis America/Fort_Wayne --Link America/Nuuk America/Godthab --Link America/Indiana/Indianapolis America/Indianapolis --Link America/Argentina/Jujuy America/Jujuy --Link America/Indiana/Knox America/Knox_IN --Link America/Kentucky/Louisville America/Louisville --Link America/Argentina/Mendoza America/Mendoza --Link America/Toronto America/Montreal --Link America/Rio_Branco America/Porto_Acre --Link America/Argentina/Cordoba America/Rosario --Link America/Tijuana America/Santa_Isabel --Link America/Denver America/Shiprock --Link America/Puerto_Rico America/Virgin --Link Pacific/Auckland Antarctica/South_Pole --Link Asia/Ashgabat Asia/Ashkhabad --Link Asia/Kolkata Asia/Calcutta --Link Asia/Shanghai Asia/Chongqing --Link Asia/Shanghai Asia/Chungking --Link Asia/Dhaka Asia/Dacca --Link Asia/Shanghai Asia/Harbin --Link Asia/Urumqi Asia/Kashgar --Link Asia/Kathmandu Asia/Katmandu --Link Asia/Macau Asia/Macao --Link Asia/Yangon Asia/Rangoon --Link Asia/Ho_Chi_Minh Asia/Saigon --Link Asia/Jerusalem Asia/Tel_Aviv --Link Asia/Thimphu Asia/Thimbu --Link Asia/Makassar Asia/Ujung_Pandang --Link Asia/Ulaanbaatar Asia/Ulan_Bator --Link Atlantic/Faroe Atlantic/Faeroe --Link Europe/Berlin Atlantic/Jan_Mayen --Link Australia/Sydney Australia/ACT --Link Australia/Sydney Australia/Canberra --Link Australia/Hobart Australia/Currie -+Link Australia/Sydney Australia/ACT #= Australia/Canberra - Link Australia/Lord_Howe Australia/LHI - Link Australia/Sydney Australia/NSW - Link Australia/Darwin Australia/North -@@ -162,7 +11,7 @@ Link Australia/Hobart Australia/Tasmania - Link Australia/Melbourne Australia/Victoria - Link Australia/Perth Australia/West - Link Australia/Broken_Hill Australia/Yancowinna --Link America/Rio_Branco Brazil/Acre -+Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre - Link America/Noronha Brazil/DeNoronha - Link America/Sao_Paulo Brazil/East - Link America/Manaus Brazil/West -@@ -179,12 +28,13 @@ Link Pacific/Easter Chile/EasterIsland - Link America/Havana Cuba - Link Africa/Cairo Egypt - Link Europe/Dublin Eire -+Link Etc/GMT Etc/GMT+0 -+Link Etc/GMT Etc/GMT-0 -+Link Etc/GMT Etc/GMT0 -+Link Etc/GMT Etc/Greenwich - Link Etc/UTC Etc/UCT --Link Europe/London Europe/Belfast --Link Europe/Kyiv Europe/Kiev --Link Europe/Chisinau Europe/Tiraspol --Link Europe/Kyiv Europe/Uzhgorod --Link Europe/Kyiv Europe/Zaporozhye -+Link Etc/UTC Etc/Universal -+Link Etc/UTC Etc/Zulu - Link Europe/London GB - Link Europe/London GB-Eire - Link Etc/GMT GMT+0 -@@ -192,7 +42,7 @@ Link Etc/GMT GMT-0 - Link Etc/GMT GMT0 - Link Etc/GMT Greenwich - Link Asia/Hong_Kong Hongkong --Link Africa/Abidjan Iceland -+Link Africa/Abidjan Iceland #= Atlantic/Reykjavik - Link Asia/Tehran Iran - Link Asia/Jerusalem Israel - Link America/Jamaica Jamaica -@@ -204,14 +54,8 @@ Link America/Mazatlan Mexico/BajaSur - Link America/Mexico_City Mexico/General - Link Pacific/Auckland NZ - Link Pacific/Chatham NZ-CHAT --Link America/Denver Navajo -+Link America/Denver Navajo #= America/Shiprock - Link Asia/Shanghai PRC --Link Pacific/Kanton Pacific/Enderbury --Link Pacific/Honolulu Pacific/Johnston --Link Pacific/Guadalcanal Pacific/Ponape --Link Pacific/Pago_Pago Pacific/Samoa --Link Pacific/Port_Moresby Pacific/Truk --Link Pacific/Port_Moresby Pacific/Yap - Link Europe/Warsaw Poland - Link Europe/Lisbon Portugal - Link Asia/Taipei ROC -@@ -235,3 +79,168 @@ Link Etc/UTC UTC - Link Etc/UTC Universal - Link Europe/Moscow W-SU - Link Etc/UTC Zulu -+Link America/Argentina/Buenos_Aires America/Buenos_Aires -+Link America/Argentina/Catamarca America/Catamarca -+Link America/Argentina/Cordoba America/Cordoba -+Link America/Indiana/Indianapolis America/Indianapolis -+Link America/Argentina/Jujuy America/Jujuy -+Link America/Indiana/Knox America/Knox_IN -+Link America/Kentucky/Louisville America/Louisville -+Link America/Argentina/Mendoza America/Mendoza -+Link America/Puerto_Rico America/Virgin #= America/St_Thomas -+Link Pacific/Pago_Pago Pacific/Samoa -+Link Africa/Abidjan Africa/Accra -+Link Africa/Nairobi Africa/Addis_Ababa -+Link Africa/Nairobi Africa/Asmara -+Link Africa/Abidjan Africa/Bamako -+Link Africa/Lagos Africa/Bangui -+Link Africa/Abidjan Africa/Banjul -+Link Africa/Maputo Africa/Blantyre -+Link Africa/Lagos Africa/Brazzaville -+Link Africa/Maputo Africa/Bujumbura -+Link Africa/Abidjan Africa/Conakry -+Link Africa/Abidjan Africa/Dakar -+Link Africa/Nairobi Africa/Dar_es_Salaam -+Link Africa/Nairobi Africa/Djibouti -+Link Africa/Lagos Africa/Douala -+Link Africa/Abidjan Africa/Freetown -+Link Africa/Maputo Africa/Gaborone -+Link Africa/Maputo Africa/Harare -+Link Africa/Nairobi Africa/Kampala -+Link Africa/Maputo Africa/Kigali -+Link Africa/Lagos Africa/Kinshasa -+Link Africa/Lagos Africa/Libreville -+Link Africa/Abidjan Africa/Lome -+Link Africa/Lagos Africa/Luanda -+Link Africa/Maputo Africa/Lubumbashi -+Link Africa/Maputo Africa/Lusaka -+Link Africa/Lagos Africa/Malabo -+Link Africa/Johannesburg Africa/Maseru -+Link Africa/Johannesburg Africa/Mbabane -+Link Africa/Nairobi Africa/Mogadishu -+Link Africa/Lagos Africa/Niamey -+Link Africa/Abidjan Africa/Nouakchott -+Link Africa/Abidjan Africa/Ouagadougou -+Link Africa/Lagos Africa/Porto-Novo -+Link America/Puerto_Rico America/Anguilla -+Link America/Puerto_Rico America/Antigua -+Link America/Puerto_Rico America/Aruba -+Link America/Panama America/Atikokan -+Link America/Puerto_Rico America/Blanc-Sablon -+Link America/Panama America/Cayman -+Link America/Phoenix America/Creston -+Link America/Puerto_Rico America/Curacao -+Link America/Puerto_Rico America/Dominica -+Link America/Puerto_Rico America/Grenada -+Link America/Puerto_Rico America/Guadeloupe -+Link America/Puerto_Rico America/Kralendijk -+Link America/Puerto_Rico America/Lower_Princes -+Link America/Puerto_Rico America/Marigot -+Link America/Puerto_Rico America/Montserrat -+Link America/Toronto America/Nassau -+Link America/Puerto_Rico America/Port_of_Spain -+Link America/Puerto_Rico America/St_Barthelemy -+Link America/Puerto_Rico America/St_Kitts -+Link America/Puerto_Rico America/St_Lucia -+Link America/Puerto_Rico America/St_Thomas -+Link America/Puerto_Rico America/St_Vincent -+Link America/Puerto_Rico America/Tortola -+Link Pacific/Port_Moresby Antarctica/DumontDUrville -+Link Pacific/Auckland Antarctica/McMurdo -+Link Asia/Riyadh Antarctica/Syowa -+Link Asia/Urumqi Antarctica/Vostok -+Link Europe/Berlin Arctic/Longyearbyen -+Link Asia/Riyadh Asia/Aden -+Link Asia/Qatar Asia/Bahrain -+Link Asia/Kuching Asia/Brunei -+Link Asia/Singapore Asia/Kuala_Lumpur -+Link Asia/Riyadh Asia/Kuwait -+Link Asia/Dubai Asia/Muscat -+Link Asia/Bangkok Asia/Phnom_Penh -+Link Asia/Bangkok Asia/Vientiane -+Link Africa/Abidjan Atlantic/Reykjavik -+Link Africa/Abidjan Atlantic/St_Helena -+Link Europe/Brussels Europe/Amsterdam -+Link Europe/Prague Europe/Bratislava -+Link Europe/Zurich Europe/Busingen -+Link Europe/Berlin Europe/Copenhagen -+Link Europe/London Europe/Guernsey -+Link Europe/London Europe/Isle_of_Man -+Link Europe/London Europe/Jersey -+Link Europe/Belgrade Europe/Ljubljana -+Link Europe/Brussels Europe/Luxembourg -+Link Europe/Helsinki Europe/Mariehamn -+Link Europe/Paris Europe/Monaco -+Link Europe/Berlin Europe/Oslo -+Link Europe/Belgrade Europe/Podgorica -+Link Europe/Rome Europe/San_Marino -+Link Europe/Belgrade Europe/Sarajevo -+Link Europe/Belgrade Europe/Skopje -+Link Europe/Berlin Europe/Stockholm -+Link Europe/Zurich Europe/Vaduz -+Link Europe/Rome Europe/Vatican -+Link Europe/Belgrade Europe/Zagreb -+Link Africa/Nairobi Indian/Antananarivo -+Link Asia/Bangkok Indian/Christmas -+Link Asia/Yangon Indian/Cocos -+Link Africa/Nairobi Indian/Comoro -+Link Indian/Maldives Indian/Kerguelen -+Link Asia/Dubai Indian/Mahe -+Link Africa/Nairobi Indian/Mayotte -+Link Asia/Dubai Indian/Reunion -+Link Pacific/Port_Moresby Pacific/Chuuk -+Link Pacific/Tarawa Pacific/Funafuti -+Link Pacific/Tarawa Pacific/Majuro -+Link Pacific/Pago_Pago Pacific/Midway -+Link Pacific/Guadalcanal Pacific/Pohnpei -+Link Pacific/Guam Pacific/Saipan -+Link Pacific/Tarawa Pacific/Wake -+Link Pacific/Tarawa Pacific/Wallis -+Link Africa/Abidjan Africa/Timbuktu -+Link America/Argentina/Catamarca America/Argentina/ComodRivadavia -+Link America/Adak America/Atka -+Link America/Panama America/Coral_Harbour -+Link America/Tijuana America/Ensenada -+Link America/Indiana/Indianapolis America/Fort_Wayne -+Link America/Toronto America/Montreal -+Link America/Toronto America/Nipigon -+Link America/Rio_Branco America/Porto_Acre -+Link America/Winnipeg America/Rainy_River -+Link America/Argentina/Cordoba America/Rosario -+Link America/Tijuana America/Santa_Isabel -+Link America/Denver America/Shiprock -+Link America/Toronto America/Thunder_Bay -+Link Pacific/Auckland Antarctica/South_Pole -+Link Asia/Shanghai Asia/Chongqing -+Link Asia/Shanghai Asia/Harbin -+Link Asia/Urumqi Asia/Kashgar -+Link Asia/Jerusalem Asia/Tel_Aviv -+Link Europe/Berlin Atlantic/Jan_Mayen -+Link Australia/Sydney Australia/Canberra -+Link Australia/Hobart Australia/Currie -+Link Europe/London Europe/Belfast -+Link Europe/Chisinau Europe/Tiraspol -+Link Europe/Kyiv Europe/Uzhgorod -+Link Europe/Kyiv Europe/Zaporozhye -+Link Pacific/Kanton Pacific/Enderbury -+Link Pacific/Honolulu Pacific/Johnston -+Link Pacific/Port_Moresby Pacific/Yap -+Link Africa/Nairobi Africa/Asmera #= Africa/Asmara -+Link America/Nuuk America/Godthab -+Link Asia/Ashgabat Asia/Ashkhabad -+Link Asia/Kolkata Asia/Calcutta -+Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing -+Link Asia/Dhaka Asia/Dacca -+Link Europe/Istanbul Asia/Istanbul -+Link Asia/Kathmandu Asia/Katmandu -+Link Asia/Macau Asia/Macao -+Link Asia/Yangon Asia/Rangoon -+Link Asia/Ho_Chi_Minh Asia/Saigon -+Link Asia/Thimphu Asia/Thimbu -+Link Asia/Makassar Asia/Ujung_Pandang -+Link Asia/Ulaanbaatar Asia/Ulan_Bator -+Link Atlantic/Faroe Atlantic/Faeroe -+Link Europe/Kyiv Europe/Kiev -+Link Asia/Nicosia Europe/Nicosia -+Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei -+Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -index 2f2786f..a1cd41d 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -@@ -24,7 +24,7 @@ America/Boise MST MDT - America/Cambridge_Bay MST MDT - America/Cancun EST - America/Chicago CST CDT --America/Chihuahua MST MDT -+America/Chihuahua CST - America/Costa_Rica CST CDT - America/Danmarkshavn GMT - America/Dawson MST -@@ -67,18 +67,16 @@ America/Mexico_City CST CDT - America/Moncton AST ADT - America/Monterrey CST CDT - America/New_York EST EDT --America/Nipigon EST EDT - America/Nome AKST AKDT - America/North_Dakota/Beulah CST CDT - America/North_Dakota/Center CST CDT - America/North_Dakota/New_Salem CST CDT --America/Ojinaga MST MDT -+America/Ojinaga CST - America/Panama EST - America/Pangnirtung EST EDT - America/Phoenix MST - America/Port-au-Prince EST EDT - America/Puerto_Rico AST --America/Rainy_River CST CDT - America/Rankin_Inlet CST CDT - America/Regina CST - America/Resolute CST CDT -@@ -88,7 +86,6 @@ America/St_Johns NST NDT - America/Swift_Current CST - America/Tegucigalpa CST CDT - America/Thule AST ADT --America/Thunder_Bay EST EDT - America/Tijuana PST PDT - America/Toronto EST EDT - America/Vancouver PST PDT -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/VERSION b/jdk/test/sun/util/calendar/zi/tzdata/VERSION -index b8cb36e..b8d9ae7 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION -+++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2022e -+tzdata2022f -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/africa b/jdk/test/sun/util/calendar/zi/tzdata/africa -index e13899b..b4559cd 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/africa -+++ b/jdk/test/sun/util/calendar/zi/tzdata/africa -@@ -120,22 +120,6 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16 - 0:00 Algeria WE%sT 1981 May - 1:00 - CET - --# Angola --# Benin --# See Africa/Lagos. -- --# Botswana --# See Africa/Maputo. -- --# Burkina Faso --# See Africa/Abidjan. -- --# Burundi --# See Africa/Maputo. -- --# Cameroon --# See Africa/Lagos. -- - # Cape Verde / Cabo Verde - # - # From Paul Eggert (2018-02-16): -@@ -150,9 +134,6 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia - -2:00 - -02 1975 Nov 25 2:00 - -1:00 - -01 - --# Central African Republic --# See Africa/Lagos. -- - # Chad - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena -@@ -160,33 +141,29 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena - 1:00 1:00 WAST 1980 Mar 8 - 1:00 - WAT - --# Comoros --# See Africa/Nairobi. -- --# Democratic Republic of the Congo --# See Africa/Lagos for the western part and Africa/Maputo for the eastern. -+# Burkina Faso -+# Côte d'Ivoire (Ivory Coast) -+# The Gambia -+# Ghana -+# Guinea -+# Iceland -+# Mali -+# Mauritania -+# St Helena -+# Senegal -+# Sierra Leone -+# Togo - --# Republic of the Congo --# See Africa/Lagos. -+# The other parts of the St Helena territory are similar: -+# Tristan da Cunha: on GMT, say Whitman and the CIA -+# Ascension: on GMT, say the USNO (1995-12-21) and the CIA -+# Gough (scientific station since 1955; sealers wintered previously): -+# on GMT, says the CIA -+# Inaccessible, Nightingale: uninhabited - --# Côte d'Ivoire / Ivory Coast - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Abidjan -0:16:08 - LMT 1912 - 0:00 - GMT --Link Africa/Abidjan Africa/Accra # Ghana --Link Africa/Abidjan Africa/Bamako # Mali --Link Africa/Abidjan Africa/Banjul # The Gambia --Link Africa/Abidjan Africa/Conakry # Guinea --Link Africa/Abidjan Africa/Dakar # Senegal --Link Africa/Abidjan Africa/Freetown # Sierra Leone --Link Africa/Abidjan Africa/Lome # Togo --Link Africa/Abidjan Africa/Nouakchott # Mauritania --Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso --Link Africa/Abidjan Atlantic/Reykjavik # Iceland --Link Africa/Abidjan Atlantic/St_Helena # St Helena -- --# Djibouti --# See Africa/Nairobi. - - ############################################################################### - -@@ -382,33 +359,6 @@ Rule Egypt 2014 only - Sep lastThu 24:00 0 - - Zone Africa/Cairo 2:05:09 - LMT 1900 Oct - 2:00 Egypt EE%sT - --# Equatorial Guinea --# See Africa/Lagos. -- --# Eritrea --# See Africa/Nairobi. -- --# Eswatini (formerly Swaziland) --# See Africa/Johannesburg. -- --# Ethiopia --# See Africa/Nairobi. --# --# Unfortunately tzdb records only Western clock time in use in Ethiopia, --# as the tzdb format is not up to properly recording a common Ethiopian --# timekeeping practice that is based on solar time. See: --# Mortada D. If you have a meeting in Ethiopia, you'd better double --# check the time. PRI's The World. 2015-01-30 15:15 -05. --# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time -- --# Gabon --# See Africa/Lagos. -- --# The Gambia --# Ghana --# Guinea --# See Africa/Abidjan. -- - # Guinea-Bissau - # - # From Paul Eggert (2018-02-16): -@@ -421,7 +371,16 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u - -1:00 - -01 1975 - 0:00 - GMT - -+# Comoros -+# Djibouti -+# Eritrea -+# Ethiopia - # Kenya -+# Madagascar -+# Mayotte -+# Somalia -+# Tanzania -+# Uganda - - # From P Chan (2020-10-24): - # -@@ -464,6 +423,14 @@ Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u - # The 1908-05-01 announcement does not give an effective date, - # so just say "1908 May". - -+# From Paul Eggert (2018-09-11): -+# Unfortunately tzdb records only Western clock time in use in Ethiopia, -+# as the tzdb format is not up to properly recording a common Ethiopian -+# timekeeping practice that is based on solar time. See: -+# Mortada D. If you have a meeting in Ethiopia, you'd better double -+# check the time. PRI's The World. 2015-01-30 15:15 -05. -+# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time -+ - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Nairobi 2:27:16 - LMT 1908 May - 2:30 - +0230 1928 Jun 30 24:00 -@@ -471,18 +438,6 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May - 2:30 - +0230 1936 Dec 31 24:00 - 2:45 - +0245 1942 Jul 31 24:00 - 3:00 - EAT --Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia --Link Africa/Nairobi Africa/Asmara # Eritrea --Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania --Link Africa/Nairobi Africa/Djibouti --Link Africa/Nairobi Africa/Kampala # Uganda --Link Africa/Nairobi Africa/Mogadishu # Somalia --Link Africa/Nairobi Indian/Antananarivo # Madagascar --Link Africa/Nairobi Indian/Comoro --Link Africa/Nairobi Indian/Mayotte -- --# Lesotho --# See Africa/Johannesburg. - - # Liberia - # -@@ -563,16 +518,6 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 - 1:00 Libya CE%sT 2013 Oct 25 2:00 - 2:00 - EET - --# Madagascar --# See Africa/Nairobi. -- --# Malawi --# See Africa/Maputo. -- --# Mali --# Mauritania --# See Africa/Abidjan. -- - # Mauritius - - # From Steffen Thorsen (2008-06-25): -@@ -666,12 +611,6 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis - # Agalega Is, Rodriguez - # no information; probably like Indian/Mauritius - --# Mayotte --# See Africa/Nairobi. -- --# Morocco --# See Africa/Ceuta for Spanish Morocco. -- - # From Alex Krivenyshev (2008-05-09): - # Here is an article that Morocco plan to introduce Daylight Saving Time between - # 1 June, 2008 and 27 September, 2008. -@@ -1160,7 +1099,14 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún - 0:00 Morocco +00/+01 2018 Oct 28 3:00 - 0:00 Morocco +00/+01 - -+# Botswana -+# Burundi -+# Democratic Republic of the Congo (eastern) -+# Malawi - # Mozambique -+# Rwanda -+# Zambia -+# Zimbabwe - # - # Shanks gives 1903-03-01 for the transition to CAT. - # Perhaps the 1911-05-26 Portuguese decree -@@ -1170,14 +1116,6 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Africa/Maputo 2:10:20 - LMT 1903 Mar - 2:00 - CAT --Link Africa/Maputo Africa/Blantyre # Malawi --Link Africa/Maputo Africa/Bujumbura # Burundi --Link Africa/Maputo Africa/Gaborone # Botswana --Link Africa/Maputo Africa/Harare # Zimbabwe --Link Africa/Maputo Africa/Kigali # Rwanda --Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo --Link Africa/Maputo Africa/Lusaka # Zambia -- - - # Namibia - -@@ -1256,9 +1194,16 @@ Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 - 2:00 - CAT - # End of rearguard section. - --# Niger --# See Africa/Lagos. - -+# Angola -+# Benin -+# Cameroon -+# Central African Republic -+# Democratic Republic of the Congo (western) -+# Republic of the Congo -+# Equatorial Guinea -+# Gabon -+# Niger - # Nigeria - - # From P Chan (2020-12-03): -@@ -1324,32 +1269,6 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1 - 0:13:35 - LMT 1914 Jan 1 - 0:30 - +0030 1919 Sep 1 - 1:00 - WAT --Link Africa/Lagos Africa/Bangui # Central African Republic --Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo --Link Africa/Lagos Africa/Douala # Cameroon --Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west) --Link Africa/Lagos Africa/Libreville # Gabon --Link Africa/Lagos Africa/Luanda # Angola --Link Africa/Lagos Africa/Malabo # Equatorial Guinea --Link Africa/Lagos Africa/Niamey # Niger --Link Africa/Lagos Africa/Porto-Novo # Benin -- --# Réunion --# See Asia/Dubai. --# --# The Crozet Islands also observe Réunion time; see the 'antarctica' file. -- --# Rwanda --# See Africa/Maputo. -- --# St Helena --# See Africa/Abidjan. --# The other parts of the St Helena territory are similar: --# Tristan da Cunha: on GMT, say Whitman and the CIA --# Ascension: on GMT, say the USNO (1995-12-21) and the CIA --# Gough (scientific station since 1955; sealers wintered previously): --# on GMT, says the CIA --# Inaccessible, Nightingale: uninhabited - - # São Tomé and Príncipe - -@@ -1378,19 +1297,10 @@ Zone Africa/Sao_Tome 0:26:56 - LMT 1884 - 1:00 - WAT 2019 Jan 1 02:00 - 0:00 - GMT - --# Senegal --# See Africa/Abidjan. -- --# Seychelles --# See Asia/Dubai. -- --# Sierra Leone --# See Africa/Abidjan. -- --# Somalia --# See Africa/Nairobi. -- -+# Eswatini (Swaziland) -+# Lesotho - # South Africa -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - -@@ -1398,8 +1308,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - - Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 - 1:30 - SAST 1903 Mar - 2:00 SA SAST --Link Africa/Johannesburg Africa/Maseru # Lesotho --Link Africa/Johannesburg Africa/Mbabane # Eswatini - # - # Marion and Prince Edward Is - # scientific station since 1947 -@@ -1448,12 +1356,6 @@ Zone Africa/Juba 2:06:28 - LMT 1931 - 3:00 - EAT 2021 Feb 1 00:00 - 2:00 - CAT - --# Tanzania --# See Africa/Nairobi. -- --# Togo --# See Africa/Abidjan. -- - # Tunisia - - # From Gwillim Law (2005-04-30): -@@ -1551,10 +1453,3 @@ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 - - Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 - 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - 1:00 Tunisia CE%sT -- --# Uganda --# See Africa/Nairobi. -- --# Zambia --# Zimbabwe --# See Africa/Maputo. -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/antarctica b/jdk/test/sun/util/calendar/zi/tzdata/antarctica -index 34c302e..792542b 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/antarctica -+++ b/jdk/test/sun/util/calendar/zi/tzdata/antarctica -@@ -329,4 +329,4 @@ Zone Antarctica/Rothera 0 - -00 1976 Dec 1 - # we have to go around and set them back 5 minutes or so. - # Maybe if we let them run fast all of the time, we'd get to leave here sooner!! - # --# See 'australasia' for Antarctica/McMurdo. -+# See Pacific/Auckland. -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/asia b/jdk/test/sun/util/calendar/zi/tzdata/asia -index f1771e4..8f1fcac 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/asia -+++ b/jdk/test/sun/util/calendar/zi/tzdata/asia -@@ -172,9 +172,6 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2 - 4:00 EUAsia +04/+05 1997 - 4:00 Azer +04/+05 - --# Bahrain --# See Asia/Qatar. -- - # Bangladesh - # From Alexander Krivenyshev (2009-05-13): - # According to newspaper Asian Tribune (May 6, 2009) Bangladesh may introduce -@@ -277,10 +274,8 @@ Zone Indian/Chagos 4:49:40 - LMT 1907 - 5:00 - +05 1996 - 6:00 - +06 - --# Brunei --# See Asia/Kuching. -- --# Burma / Myanmar -+# Cocos (Keeling) Islands -+# Myanmar (Burma) - - # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. - -@@ -296,11 +291,6 @@ Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon - 6:30 - +0630 1942 May - 9:00 - +09 1945 May 3 - 6:30 - +0630 --Link Asia/Yangon Indian/Cocos -- --# Cambodia --# See Asia/Bangkok. -- - - # China - -@@ -688,10 +678,9 @@ Zone Asia/Shanghai 8:05:43 - LMT 1901 - 8:00 PRC C%sT - # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi - # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) -+# Vostok base in Antarctica matches this since 1970. - Zone Asia/Urumqi 5:50:20 - LMT 1928 - 6:00 - +06 --Link Asia/Urumqi Antarctica/Vostok -- - - # Hong Kong - -@@ -1195,10 +1184,6 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 - 3:00 - +03 2017 Oct 29 1:00u - 2:00 EUAsia EE%sT - --# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72. --# However, for various reasons many users expect to find it under Europe. --Link Asia/Nicosia Europe/Nicosia -- - # Georgia - # From Paul Eggert (1994-11-19): - # Today's _Economist_ (p 60) reports that Georgia moved its clocks forward -@@ -2727,14 +2712,6 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 - 8:30 - KST 2018 May 4 23:30 - 9:00 - KST - --############################################################################### -- --# Kuwait --# See Asia/Riyadh. -- --# Laos --# See Asia/Bangkok. -- - - # Lebanon - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -@@ -2766,7 +2743,9 @@ Rule Lebanon 1999 max - Oct lastSun 0:00 0 - - Zone Asia/Beirut 2:22:00 - LMT 1880 - 2:00 Lebanon EE%sT - --# Malaysia -+# Brunei -+# Malaysia (eastern) -+# - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - -@@ -2783,14 +2762,12 @@ Zone Asia/Kuching 7:21:20 - LMT 1926 Mar - 8:00 NBorneo +08/+0820 1942 Feb 16 - 9:00 - +09 1945 Sep 12 - 8:00 - +08 --Link Asia/Kuching Asia/Brunei - - # Maldives - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé - 4:54:00 - MMT 1960 # Malé Mean Time - 5:00 - +05 --Link Indian/Maldives Indian/Kerguelen - - # Mongolia - -@@ -2953,9 +2930,6 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920 - 5:30 - +0530 1986 - 5:45 - +0545 - --# Oman --# See Asia/Dubai. -- - # Pakistan - - # From Rives McDow (2002-03-13): -@@ -3566,14 +3540,18 @@ Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 - 9:00 - JST 1944 Nov - 8:00 Phil P%sT - -+# Bahrain - # Qatar - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha - 4:00 - +04 1972 Jun - 3:00 - +03 --Link Asia/Qatar Asia/Bahrain - -+# Kuwait - # Saudi Arabia -+# Yemen -+# -+# Japan's year-round bases in Antarctica match this since 1970. - # - # From Paul Eggert (2018-08-29): - # Time in Saudi Arabia and other countries in the Arabian peninsula was not -@@ -3618,9 +3596,6 @@ Link Asia/Qatar Asia/Bahrain - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 - 3:00 - +03 --Link Asia/Riyadh Antarctica/Syowa --Link Asia/Riyadh Asia/Aden # Yemen --Link Asia/Riyadh Asia/Kuwait - - # Singapore - # taken from Mok Ly Yng (2003-10-30) -@@ -3635,7 +3610,6 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 - 9:00 - +09 1945 Sep 12 - 7:30 - +0730 1982 Jan 1 - 8:00 - +08 --Link Asia/Singapore Asia/Kuala_Lumpur - - # Spratly Is - # no information -@@ -3881,14 +3855,15 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 - 5:00 1:00 +06 1991 Sep 9 2:00s - 5:00 - +05 - -+# Cambodia -+# Christmas I -+# Laos - # Thailand -+# Vietnam (northern) - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Bangkok 6:42:04 - LMT 1880 - 6:42:04 - BMT 1920 Apr # Bangkok Mean Time - 7:00 - +07 --Link Asia/Bangkok Asia/Phnom_Penh # Cambodia --Link Asia/Bangkok Asia/Vientiane # Laos --Link Asia/Bangkok Indian/Christmas - - # Turkmenistan - # From Shanks & Pottenger. -@@ -3899,13 +3874,15 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 - 5:00 - +05 - -+# Oman -+# Réunion -+# Seychelles - # United Arab Emirates -+# -+# The Crozet Is also observe Réunion time; see the 'antarctica' file. - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Dubai 3:41:12 - LMT 1920 - 4:00 - +04 --Link Asia/Dubai Asia/Muscat # Oman --Link Asia/Dubai Indian/Mahe --Link Asia/Dubai Indian/Reunion - - # Uzbekistan - # Byalokoz 1919 says Uzbekistan was 4:27:53. -@@ -3925,7 +3902,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 - 5:00 RussiaAsia +05/+06 1992 - 5:00 - +05 - --# Vietnam -+# Vietnam (southern) - - # From Paul Eggert (2014-10-04): - # Milne gives 7:16:56 for the meridian of Saigon in 1899, as being -@@ -3999,7 +3976,3 @@ Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 - # For timestamps in north Vietnam back to 1970 (the tzdb cutoff), - # use Asia/Bangkok; see the VN entries in the file zone1970.tab. - # For timestamps before 1970, see Asia/Hanoi in the file 'backzone'. -- -- --# Yemen --# See Asia/Riyadh. -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/australasia b/jdk/test/sun/util/calendar/zi/tzdata/australasia -index 019cd77..fbe3b8a 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/australasia -+++ b/jdk/test/sun/util/calendar/zi/tzdata/australasia -@@ -274,13 +274,6 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov - 10:00 1:00 AEDT 2011 - 10:00 AT AE%sT - --# Christmas --# See Asia/Bangkok. -- --# Cocos (Keeling) Is --# See Asia/Yangon. -- -- - # Fiji - - # Milne gives 11:55:44 for Suva. -@@ -416,8 +409,14 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov - # concerned shifting arrival and departure times, which may look like a simple - # thing but requires some significant logistical adjustments domestically and - # internationally." --# Assume for now that DST will resume with the recent pre-2020 rules for the --# 2022/2023 season. -+ -+# From Shalvin Narayan (2022-10-27): -+# Please note that there will not be any daylight savings time change -+# in Fiji for 2022-2023.... -+# https://www.facebook.com/FijianGovernment/posts/pfbid0mmWVTYmTibn66ybpFda75pDcf34SSpoSaskJW5gXwaKo5Sgc7273Q4fXWc6kQV6Hl -+# -+# From Paul Eggert (2022-10-27): -+# For now, assume DST is suspended indefinitely. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - -@@ -432,8 +431,6 @@ Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 - - Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 - - Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 - - Rule Fiji 2020 only - Dec 20 2:00 1:00 - --Rule Fiji 2022 max - Nov Sun>=8 2:00 1:00 - --Rule Fiji 2023 max - Jan Sun>=12 3:00 0 - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva - 12:00 Fiji +12/+13 -@@ -449,7 +446,9 @@ Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete - # Clipperton (near North America) is administered from French Polynesia; - # it is uninhabited. - -+ - # Guam -+# N Mariana Is - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - # http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf -@@ -489,17 +488,20 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 - 9:00 - +09 1944 Jul 31 - 10:00 Guam G%sT 2000 Dec 23 - 10:00 - ChST # Chamorro Standard Time --Link Pacific/Guam Pacific/Saipan # N Mariana Is - --# Kiribati -+ -+# Kiribati (Gilbert Is) -+# Marshall Is -+# Tuvalu -+# Wake -+# Wallis & Futuna - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki - 12:00 - +12 --Link Pacific/Tarawa Pacific/Funafuti --Link Pacific/Tarawa Pacific/Majuro --Link Pacific/Tarawa Pacific/Wake --Link Pacific/Tarawa Pacific/Wallis - -+# Kiribati (except Gilbert Is) -+# See Pacific/Tarawa for the Gilbert Is. -+# Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Kanton 0 - -00 1937 Aug 31 - -12:00 - -12 1979 Oct - -11:00 - -11 1994 Dec 31 -@@ -509,9 +511,6 @@ Zone Pacific/Kiritimati -10:29:20 - LMT 1901 - -10:00 - -10 1994 Dec 31 - 14:00 - +14 - --# N Mariana Is --# See Pacific/Guam. -- - # Marshall Is - # See Pacific/Tarawa for most locations. - # Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -561,6 +560,7 @@ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa - ############################################################################### - - # New Zealand -+# McMurdo Station and Scott Base in Antarctica use Auckland time. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule NZ 1927 only - Nov 6 2:00 1:00 S -@@ -596,7 +596,6 @@ Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 - - Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2 - 11:30 NZ NZ%sT 1946 Jan 1 - 12:00 NZ NZ%sT --Link Pacific/Auckland Antarctica/McMurdo - - Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 - 12:15 - +1215 1946 Jan 1 -@@ -695,8 +694,6 @@ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror - Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 - 9:48:32 - PMMT 1895 # Port Moresby Mean Time - 10:00 - +10 --Link Pacific/Port_Moresby Antarctica/DumontDUrville --Link Pacific/Port_Moresby Pacific/Chuuk - # - # From Paul Eggert (2014-10-13): - # Base the Bougainville entry on the Arawa-Kieta region, which appears to have -@@ -729,10 +726,10 @@ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown - -8:00 - -08 - - # American Samoa -+# Midway - Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 - -11:22:48 - LMT 1911 - -11:00 - SST # S=Samoa --Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands - - # Samoa (formerly and also known as Western Samoa) - -@@ -824,7 +821,6 @@ Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara - 11:00 - +11 --Link Pacific/Guadalcanal Pacific/Pohnpei - - # Tokelau - # -@@ -864,9 +860,6 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 - 13:00 - +13 1999 - 13:00 Tonga +13/+14 - --# Tuvalu --# See Pacific/Tarawa. -- - - # US minor outlying islands - -@@ -917,15 +910,9 @@ Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 - # Kingman - # uninhabited - --# Midway --# See Pacific/Pago_Pago. -- - # Palmyra - # uninhabited since World War II; was probably like Pacific/Kiritimati - --# Wake --# See Pacific/Tarawa. -- - - # Vanuatu - -@@ -962,9 +949,6 @@ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 - - Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila - 11:00 Vanuatu +11/+12 - --# Wallis and Futuna --# See Pacific/Tarawa. -- - ############################################################################### - - # NOTES -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/backward b/jdk/test/sun/util/calendar/zi/tzdata/backward -index 7765d99..1fb087a 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/backward -+++ b/jdk/test/sun/util/calendar/zi/tzdata/backward -@@ -27,7 +27,7 @@ - # 2009-05-17 by Arthur David Olson. - - # This file provides links from old or merged timezone names to current ones. --# Many names changed in late 1993, and many merged names moved here -+# Many names changed in 1993 and in 1995, and many merged names moved here - # in the period from 2013 through 2022. Several of these names are - # also present in the file 'backzone', which has data important only - # for pre-1970 timestamps and so is out of scope for tzdb proper. -@@ -36,50 +36,24 @@ - # building with 'make BACKWARD=', in practice downstream users - # typically use this file for backward compatibility. - --# Link TARGET LINK-NAME --Link Africa/Nairobi Africa/Asmera --Link Africa/Abidjan Africa/Timbuktu --Link America/Argentina/Catamarca America/Argentina/ComodRivadavia --Link America/Adak America/Atka --Link America/Argentina/Buenos_Aires America/Buenos_Aires --Link America/Argentina/Catamarca America/Catamarca --Link America/Panama America/Coral_Harbour --Link America/Argentina/Cordoba America/Cordoba --Link America/Tijuana America/Ensenada --Link America/Indiana/Indianapolis America/Fort_Wayne --Link America/Nuuk America/Godthab --Link America/Indiana/Indianapolis America/Indianapolis --Link America/Argentina/Jujuy America/Jujuy --Link America/Indiana/Knox America/Knox_IN --Link America/Kentucky/Louisville America/Louisville --Link America/Argentina/Mendoza America/Mendoza --Link America/Toronto America/Montreal --Link America/Rio_Branco America/Porto_Acre --Link America/Argentina/Cordoba America/Rosario --Link America/Tijuana America/Santa_Isabel --Link America/Denver America/Shiprock --Link America/Puerto_Rico America/Virgin --Link Pacific/Auckland Antarctica/South_Pole --Link Asia/Ashgabat Asia/Ashkhabad --Link Asia/Kolkata Asia/Calcutta --Link Asia/Shanghai Asia/Chongqing --Link Asia/Shanghai Asia/Chungking --Link Asia/Dhaka Asia/Dacca --Link Asia/Shanghai Asia/Harbin --Link Asia/Urumqi Asia/Kashgar --Link Asia/Kathmandu Asia/Katmandu --Link Asia/Macau Asia/Macao --Link Asia/Yangon Asia/Rangoon --Link Asia/Ho_Chi_Minh Asia/Saigon --Link Asia/Jerusalem Asia/Tel_Aviv --Link Asia/Thimphu Asia/Thimbu --Link Asia/Makassar Asia/Ujung_Pandang --Link Asia/Ulaanbaatar Asia/Ulan_Bator --Link Atlantic/Faroe Atlantic/Faeroe --Link Europe/Berlin Atlantic/Jan_Mayen --Link Australia/Sydney Australia/ACT --Link Australia/Sydney Australia/Canberra --Link Australia/Hobart Australia/Currie -+# This file is divided into sections, one for each major reason for a -+# backward compatibility link. Each section is sorted by link name. -+ -+# A "#= TARGET1" comment labels each link inserted only because some -+# .zi parsers (including tzcode through 2022e) mishandle links to links. -+# The comment says what the target would be if these parsers were fixed -+# so that data could contain links to links. For example, the line -+# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be -+# "Link Australia/Canberra Australia/ACT" were it not that data lines -+# refrain from linking to links like Australia/Canberra, which means -+# the Australia/ACT line links instead to Australia/Sydney, -+# Australia/Canberra's target. -+ -+ -+# Pre-1993 naming conventions -+ -+# Link TARGET LINK-NAME #= TARGET1 -+Link Australia/Sydney Australia/ACT #= Australia/Canberra - Link Australia/Lord_Howe Australia/LHI - Link Australia/Sydney Australia/NSW - Link Australia/Darwin Australia/North -@@ -89,7 +63,7 @@ Link Australia/Hobart Australia/Tasmania - Link Australia/Melbourne Australia/Victoria - Link Australia/Perth Australia/West - Link Australia/Broken_Hill Australia/Yancowinna --Link America/Rio_Branco Brazil/Acre -+Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre - Link America/Noronha Brazil/DeNoronha - Link America/Sao_Paulo Brazil/East - Link America/Manaus Brazil/West -@@ -109,20 +83,36 @@ Link Pacific/Easter Chile/EasterIsland - Link America/Havana Cuba - Link Africa/Cairo Egypt - Link Europe/Dublin Eire -+# Vanguard section, for most .zi parsers. -+#Link GMT Etc/GMT -+#Link GMT Etc/GMT+0 -+#Link GMT Etc/GMT-0 -+#Link GMT Etc/GMT0 -+#Link GMT Etc/Greenwich -+# Rearguard section, for TZUpdater 2.3.2 and earlier. -+Link Etc/GMT Etc/GMT+0 -+Link Etc/GMT Etc/GMT-0 -+Link Etc/GMT Etc/GMT0 -+Link Etc/GMT Etc/Greenwich -+# End of rearguard section. - Link Etc/UTC Etc/UCT --Link Europe/London Europe/Belfast --Link Europe/Kyiv Europe/Kiev --Link Europe/Chisinau Europe/Tiraspol --Link Europe/Kyiv Europe/Uzhgorod --Link Europe/Kyiv Europe/Zaporozhye -+Link Etc/UTC Etc/Universal -+Link Etc/UTC Etc/Zulu - Link Europe/London GB - Link Europe/London GB-Eire -+# Vanguard section, for most .zi parsers. -+#Link GMT GMT+0 -+#Link GMT GMT-0 -+#Link GMT GMT0 -+#Link GMT Greenwich -+# Rearguard section, for TZUpdater 2.3.2 and earlier. - Link Etc/GMT GMT+0 - Link Etc/GMT GMT-0 - Link Etc/GMT GMT0 - Link Etc/GMT Greenwich -+# End of rearguard section. - Link Asia/Hong_Kong Hongkong --Link Africa/Abidjan Iceland -+Link Africa/Abidjan Iceland #= Atlantic/Reykjavik - Link Asia/Tehran Iran - Link Asia/Jerusalem Israel - Link America/Jamaica Jamaica -@@ -134,14 +124,8 @@ Link America/Mazatlan Mexico/BajaSur - Link America/Mexico_City Mexico/General - Link Pacific/Auckland NZ - Link Pacific/Chatham NZ-CHAT --Link America/Denver Navajo -+Link America/Denver Navajo #= America/Shiprock - Link Asia/Shanghai PRC --Link Pacific/Kanton Pacific/Enderbury --Link Pacific/Honolulu Pacific/Johnston --Link Pacific/Guadalcanal Pacific/Ponape --Link Pacific/Pago_Pago Pacific/Samoa --Link Pacific/Port_Moresby Pacific/Truk --Link Pacific/Port_Moresby Pacific/Yap - Link Europe/Warsaw Poland - Link Europe/Lisbon Portugal - Link Asia/Taipei ROC -@@ -165,3 +149,192 @@ Link Etc/UTC UTC - Link Etc/UTC Universal - Link Europe/Moscow W-SU - Link Etc/UTC Zulu -+ -+ -+# Two-part names that were renamed mostly to three-part names in 1995 -+ -+# Link TARGET LINK-NAME #= TARGET1 -+Link America/Argentina/Buenos_Aires America/Buenos_Aires -+Link America/Argentina/Catamarca America/Catamarca -+Link America/Argentina/Cordoba America/Cordoba -+Link America/Indiana/Indianapolis America/Indianapolis -+Link America/Argentina/Jujuy America/Jujuy -+Link America/Indiana/Knox America/Knox_IN -+Link America/Kentucky/Louisville America/Louisville -+Link America/Argentina/Mendoza America/Mendoza -+Link America/Puerto_Rico America/Virgin #= America/St_Thomas -+Link Pacific/Pago_Pago Pacific/Samoa -+ -+ -+# Pre-2013 practice, which typically had a Zone per zone.tab line -+ -+# Link TARGET LINK-NAME -+Link Africa/Abidjan Africa/Accra -+Link Africa/Nairobi Africa/Addis_Ababa -+Link Africa/Nairobi Africa/Asmara -+Link Africa/Abidjan Africa/Bamako -+Link Africa/Lagos Africa/Bangui -+Link Africa/Abidjan Africa/Banjul -+Link Africa/Maputo Africa/Blantyre -+Link Africa/Lagos Africa/Brazzaville -+Link Africa/Maputo Africa/Bujumbura -+Link Africa/Abidjan Africa/Conakry -+Link Africa/Abidjan Africa/Dakar -+Link Africa/Nairobi Africa/Dar_es_Salaam -+Link Africa/Nairobi Africa/Djibouti -+Link Africa/Lagos Africa/Douala -+Link Africa/Abidjan Africa/Freetown -+Link Africa/Maputo Africa/Gaborone -+Link Africa/Maputo Africa/Harare -+Link Africa/Nairobi Africa/Kampala -+Link Africa/Maputo Africa/Kigali -+Link Africa/Lagos Africa/Kinshasa -+Link Africa/Lagos Africa/Libreville -+Link Africa/Abidjan Africa/Lome -+Link Africa/Lagos Africa/Luanda -+Link Africa/Maputo Africa/Lubumbashi -+Link Africa/Maputo Africa/Lusaka -+Link Africa/Lagos Africa/Malabo -+Link Africa/Johannesburg Africa/Maseru -+Link Africa/Johannesburg Africa/Mbabane -+Link Africa/Nairobi Africa/Mogadishu -+Link Africa/Lagos Africa/Niamey -+Link Africa/Abidjan Africa/Nouakchott -+Link Africa/Abidjan Africa/Ouagadougou -+Link Africa/Lagos Africa/Porto-Novo -+Link America/Puerto_Rico America/Anguilla -+Link America/Puerto_Rico America/Antigua -+Link America/Puerto_Rico America/Aruba -+Link America/Panama America/Atikokan -+Link America/Puerto_Rico America/Blanc-Sablon -+Link America/Panama America/Cayman -+Link America/Phoenix America/Creston -+Link America/Puerto_Rico America/Curacao -+Link America/Puerto_Rico America/Dominica -+Link America/Puerto_Rico America/Grenada -+Link America/Puerto_Rico America/Guadeloupe -+Link America/Puerto_Rico America/Kralendijk -+Link America/Puerto_Rico America/Lower_Princes -+Link America/Puerto_Rico America/Marigot -+Link America/Puerto_Rico America/Montserrat -+Link America/Toronto America/Nassau -+Link America/Puerto_Rico America/Port_of_Spain -+Link America/Puerto_Rico America/St_Barthelemy -+Link America/Puerto_Rico America/St_Kitts -+Link America/Puerto_Rico America/St_Lucia -+Link America/Puerto_Rico America/St_Thomas -+Link America/Puerto_Rico America/St_Vincent -+Link America/Puerto_Rico America/Tortola -+Link Pacific/Port_Moresby Antarctica/DumontDUrville -+Link Pacific/Auckland Antarctica/McMurdo -+Link Asia/Riyadh Antarctica/Syowa -+Link Asia/Urumqi Antarctica/Vostok -+Link Europe/Berlin Arctic/Longyearbyen -+Link Asia/Riyadh Asia/Aden -+Link Asia/Qatar Asia/Bahrain -+Link Asia/Kuching Asia/Brunei -+Link Asia/Singapore Asia/Kuala_Lumpur -+Link Asia/Riyadh Asia/Kuwait -+Link Asia/Dubai Asia/Muscat -+Link Asia/Bangkok Asia/Phnom_Penh -+Link Asia/Bangkok Asia/Vientiane -+Link Africa/Abidjan Atlantic/Reykjavik -+Link Africa/Abidjan Atlantic/St_Helena -+Link Europe/Brussels Europe/Amsterdam -+Link Europe/Prague Europe/Bratislava -+Link Europe/Zurich Europe/Busingen -+Link Europe/Berlin Europe/Copenhagen -+Link Europe/London Europe/Guernsey -+Link Europe/London Europe/Isle_of_Man -+Link Europe/London Europe/Jersey -+Link Europe/Belgrade Europe/Ljubljana -+Link Europe/Brussels Europe/Luxembourg -+Link Europe/Helsinki Europe/Mariehamn -+Link Europe/Paris Europe/Monaco -+Link Europe/Berlin Europe/Oslo -+Link Europe/Belgrade Europe/Podgorica -+Link Europe/Rome Europe/San_Marino -+Link Europe/Belgrade Europe/Sarajevo -+Link Europe/Belgrade Europe/Skopje -+Link Europe/Berlin Europe/Stockholm -+Link Europe/Zurich Europe/Vaduz -+Link Europe/Rome Europe/Vatican -+Link Europe/Belgrade Europe/Zagreb -+Link Africa/Nairobi Indian/Antananarivo -+Link Asia/Bangkok Indian/Christmas -+Link Asia/Yangon Indian/Cocos -+Link Africa/Nairobi Indian/Comoro -+Link Indian/Maldives Indian/Kerguelen -+Link Asia/Dubai Indian/Mahe -+Link Africa/Nairobi Indian/Mayotte -+Link Asia/Dubai Indian/Reunion -+Link Pacific/Port_Moresby Pacific/Chuuk -+Link Pacific/Tarawa Pacific/Funafuti -+Link Pacific/Tarawa Pacific/Majuro -+Link Pacific/Pago_Pago Pacific/Midway -+Link Pacific/Guadalcanal Pacific/Pohnpei -+Link Pacific/Guam Pacific/Saipan -+Link Pacific/Tarawa Pacific/Wake -+Link Pacific/Tarawa Pacific/Wallis -+ -+ -+# Non-zone.tab locations with timestamps since 1970 that duplicate -+# those of an existing location -+ -+# Link TARGET LINK-NAME -+Link Africa/Abidjan Africa/Timbuktu -+Link America/Argentina/Catamarca America/Argentina/ComodRivadavia -+Link America/Adak America/Atka -+Link America/Panama America/Coral_Harbour -+Link America/Tijuana America/Ensenada -+Link America/Indiana/Indianapolis America/Fort_Wayne -+Link America/Toronto America/Montreal -+Link America/Toronto America/Nipigon -+Link America/Rio_Branco America/Porto_Acre -+Link America/Winnipeg America/Rainy_River -+Link America/Argentina/Cordoba America/Rosario -+Link America/Tijuana America/Santa_Isabel -+Link America/Denver America/Shiprock -+Link America/Toronto America/Thunder_Bay -+Link Pacific/Auckland Antarctica/South_Pole -+Link Asia/Shanghai Asia/Chongqing -+Link Asia/Shanghai Asia/Harbin -+Link Asia/Urumqi Asia/Kashgar -+Link Asia/Jerusalem Asia/Tel_Aviv -+Link Europe/Berlin Atlantic/Jan_Mayen -+Link Australia/Sydney Australia/Canberra -+Link Australia/Hobart Australia/Currie -+Link Europe/London Europe/Belfast -+Link Europe/Chisinau Europe/Tiraspol -+Link Europe/Kyiv Europe/Uzhgorod -+Link Europe/Kyiv Europe/Zaporozhye -+Link Pacific/Kanton Pacific/Enderbury -+Link Pacific/Honolulu Pacific/Johnston -+Link Pacific/Port_Moresby Pacific/Yap -+ -+ -+# Alternate names for the same location -+ -+# Link TARGET LINK-NAME #= TARGET1 -+Link Africa/Nairobi Africa/Asmera #= Africa/Asmara -+Link America/Nuuk America/Godthab -+Link Asia/Ashgabat Asia/Ashkhabad -+Link Asia/Kolkata Asia/Calcutta -+Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing -+Link Asia/Dhaka Asia/Dacca -+# Istanbul is in both continents. -+Link Europe/Istanbul Asia/Istanbul -+Link Asia/Kathmandu Asia/Katmandu -+Link Asia/Macau Asia/Macao -+Link Asia/Yangon Asia/Rangoon -+Link Asia/Ho_Chi_Minh Asia/Saigon -+Link Asia/Thimphu Asia/Thimbu -+Link Asia/Makassar Asia/Ujung_Pandang -+Link Asia/Ulaanbaatar Asia/Ulan_Bator -+Link Atlantic/Faroe Atlantic/Faeroe -+Link Europe/Kyiv Europe/Kiev -+# Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72. -+# However, for various reasons many users expect to find it under Europe. -+Link Asia/Nicosia Europe/Nicosia -+Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei -+Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/etcetera b/jdk/test/sun/util/calendar/zi/tzdata/etcetera -index 82ff6b4..8ae294f 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/etcetera -+++ b/jdk/test/sun/util/calendar/zi/tzdata/etcetera -@@ -39,26 +39,23 @@ - # Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours - # behind GMT but uses the completely misleading abbreviation "GMT". - --Zone Etc/GMT 0 - GMT -- - # The following zone is used by tzcode functions like gmtime, - # which load the "UTC" file to handle seconds properly. - Zone Etc/UTC 0 - UTC - -+# Functions like gmtime load the "GMT" file to handle leap seconds properly. -+# Vanguard section, which works with most .zi parsers. -+#Zone GMT 0 - GMT -+# Rearguard section, for TZUpdater 2.3.2 and earlier. -+Zone Etc/GMT 0 - GMT -+ - # The following link uses older naming conventions, - # but it belongs here, not in the file 'backward', - # as it is needed for tzcode releases through 2022a, - # where functions like gmtime load "GMT" instead of the "Etc/UTC". - # We want this to work even on installations that omit 'backward'. - Link Etc/GMT GMT -- --Link Etc/UTC Etc/Universal --Link Etc/UTC Etc/Zulu -- --Link Etc/GMT Etc/Greenwich --Link Etc/GMT Etc/GMT-0 --Link Etc/GMT Etc/GMT+0 --Link Etc/GMT Etc/GMT0 -+# End of rearguard section. - - # Be consistent with POSIX TZ settings in the Zone names, - # even though this is the opposite of what many people expect. -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/europe b/jdk/test/sun/util/calendar/zi/tzdata/europe -index 930cede..7b6aa13 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/europe -+++ b/jdk/test/sun/util/calendar/zi/tzdata/europe -@@ -527,9 +527,6 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1 - 1:00 - BST 1971 Oct 31 2:00u - 0:00 GB-Eire %s 1996 - 0:00 EU GMT/BST --Link Europe/London Europe/Jersey --Link Europe/London Europe/Guernsey --Link Europe/London Europe/Isle_of_Man - - # From Paul Eggert (2018-02-15): - # In January 2018 we discovered that the negative SAVE values in the -@@ -902,6 +899,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 - 3:00 - +03 - - # Belgium -+# Luxembourg -+# Netherlands - # - # From Michael Deckers (2019-08-25): - # The exposition in the web page -@@ -984,11 +983,6 @@ Zone Europe/Brussels 0:17:30 - LMT 1880 - 1:00 C-Eur CE%sT 1944 Sep 3 - 1:00 Belgium CE%sT 1977 - 1:00 EU CE%sT --Link Europe/Brussels Europe/Amsterdam --Link Europe/Brussels Europe/Luxembourg -- --# Bosnia and Herzegovina --# See Europe/Belgrade. - - # Bulgaria - # -@@ -1015,13 +1009,11 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 - 2:00 E-Eur EE%sT 1997 - 2:00 EU EE%sT - --# Croatia --# See Europe/Belgrade. -- - # Cyprus - # Please see the 'asia' file for Asia/Nicosia. - --# Czech Republic / Czechia -+# Czech Republic (Czechia) -+# Slovakia - # - # From Paul Eggert (2018-04-15): - # The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15. -@@ -1048,15 +1040,14 @@ Zone Europe/Prague 0:57:44 - LMT 1850 - # End of rearguard section. - 1:00 Czech CE%sT 1979 - 1:00 EU CE%sT --Link Europe/Prague Europe/Bratislava -- -- --# Denmark, Faroe Islands, and Greenland --# For Denmark see Europe/Berlin. - -+# Faroe Is -+# Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn - 0:00 - WET 1981 - 0:00 EU WE%sT -+ -+# Greenland - # - # From Paul Eggert (2004-10-31): - # During World War II, Germany maintained secret manned weather stations in -@@ -1282,11 +1273,8 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 - 2:00 Finland EE%sT 1983 - 2:00 EU EE%sT - --# Åland Is --Link Europe/Helsinki Europe/Mariehamn -- -- - # France -+# Monaco - - # From Ciro Discepolo (2000-12-20): - # -@@ -1423,9 +1411,11 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 16 - 0:00 France WE%sT 1945 Sep 16 3:00 - 1:00 France CE%sT 1977 - 1:00 EU CE%sT --Link Europe/Paris Europe/Monaco - -+# Denmark - # Germany -+# Norway -+# Sweden - - # From Markus Kuhn (1998-09-29): - # The German time zone web site by the Physikalisch-Technische -@@ -1443,6 +1433,53 @@ Link Europe/Paris Europe/Monaco - # However, Moscow did not observe daylight saving in 1945, so - # this was equivalent to UT +03, not +04. - -+# Svalbard & Jan Mayen -+ -+# From Steffen Thorsen (2001-05-01): -+# Although I could not find it explicitly, it seems that Jan Mayen and -+# Svalbard have been using the same time as Norway at least since the -+# time they were declared as parts of Norway. Svalbard was declared -+# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan -+# Mayen by law of 1930-02-27 no 2, section 2. (From -+# and -+# ). The law/regulation -+# for normal/standard time in Norway is from 1894-06-29 no 1 (came -+# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a -+# part of this law since 1925/1930. (From -+# ) I have not been -+# able to find if Jan Mayen used a different time zone (e.g. -0100) -+# before 1930. Jan Mayen has only been "inhabited" since 1921 by -+# Norwegian meteorologists and maybe used the same time as Norway ever -+# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since -+# before 1895, and therefore probably changed the local time somewhere -+# between 1895 and 1925 (inclusive). -+ -+# From Paul Eggert (2013-09-04): -+# -+# Actually, Jan Mayen was never occupied by Germany during World War II, -+# so it must have diverged from Oslo time during the war, as Oslo was -+# keeping Berlin time. -+# -+# says that the meteorologists -+# burned down their station in 1940 and left the island, but returned in -+# 1941 with a small Norwegian garrison and continued operations despite -+# frequent air attacks from Germans. In 1943 the Americans established a -+# radiolocating station on the island, called "Atlantic City". Possibly -+# the UT offset changed during the war, but I think it unlikely that -+# Jan Mayen used German daylight-saving rules. -+# -+# Svalbard is more complicated, as it was raided in August 1941 by an -+# Allied party that evacuated the civilian population to England (says -+# ). The Svalbard FAQ -+# says that the Germans were -+# expelled on 1942-05-14. However, small parties of Germans did return, -+# and according to Wilhelm Dege's book "War North of 80" (1954) -+# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html -+# the German armed forces at the Svalbard weather station code-named -+# Haudegen did not surrender to the Allies until September 1945. -+# -+# All these events predate our cutoff date of 1970, so use Europe/Berlin -+# for these regions. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Germany 1946 only - Apr 14 2:00s 1:00 S -@@ -1467,11 +1504,6 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr - 1:00 SovietZone CE%sT 1946 - 1:00 Germany CE%sT 1980 - 1:00 EU CE%sT --Link Europe/Berlin Arctic/Longyearbyen --Link Europe/Berlin Europe/Copenhagen --Link Europe/Berlin Europe/Oslo --Link Europe/Berlin Europe/Stockholm -- - - # Georgia - # Please see the "asia" file for Asia/Tbilisi. -@@ -1590,10 +1622,9 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Nov 1 - 1:00 Hungary CE%sT 1984 - 1:00 EU CE%sT - --# Iceland --# See Africa/Abidjan. -- - # Italy -+# San Marino -+# Vatican City - # - # From Paul Eggert (2001-03-06): - # Sicily and Sardinia each had their own time zones from 1866 to 1893, -@@ -1712,13 +1743,6 @@ Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12 - 1:00 C-Eur CE%sT 1944 Jun 4 - 1:00 Italy CE%sT 1980 - 1:00 EU CE%sT --Link Europe/Rome Europe/Vatican --Link Europe/Rome Europe/San_Marino -- -- --# Kosovo --# See Europe/Belgrade. -- - - # Latvia - -@@ -1802,10 +1826,6 @@ Zone Europe/Riga 1:36:34 - LMT 1880 - 2:00 - EET 2001 Jan 2 - 2:00 EU EE%sT - --# Liechtenstein --# See Europe/Zurich. -- -- - # Lithuania - - # From Paul Eggert (2016-03-18): -@@ -1858,12 +1878,6 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880 - 2:00 - EET 2003 Jan 1 - 2:00 EU EE%sT - --# Luxembourg --# See Europe/Brussels. -- --# North Macedonia --# See Europe/Belgrade. -- - # Malta - # - # From Paul Eggert (2016-10-21): -@@ -1959,67 +1973,6 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 - # See Romania commentary for the guessed 1997 transition to EU rules. - 2:00 Moldova EE%sT - --# Monaco --# See Europe/Paris. -- --# Montenegro --# See Europe/Belgrade. -- --# Netherlands --# See Europe/Brussels. -- --# Norway --# See Europe/Berlin. -- --# Svalbard & Jan Mayen -- --# From Steffen Thorsen (2001-05-01): --# Although I could not find it explicitly, it seems that Jan Mayen and --# Svalbard have been using the same time as Norway at least since the --# time they were declared as parts of Norway. Svalbard was declared --# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan --# Mayen by law of 1930-02-27 no 2, section 2. (From --# and --# ). The law/regulation --# for normal/standard time in Norway is from 1894-06-29 no 1 (came --# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a --# part of this law since 1925/1930. (From --# ) I have not been --# able to find if Jan Mayen used a different time zone (e.g. -0100) --# before 1930. Jan Mayen has only been "inhabited" since 1921 by --# Norwegian meteorologists and maybe used the same time as Norway ever --# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since --# before 1895, and therefore probably changed the local time somewhere --# between 1895 and 1925 (inclusive). -- --# From Paul Eggert (2013-09-04): --# --# Actually, Jan Mayen was never occupied by Germany during World War II, --# so it must have diverged from Oslo time during the war, as Oslo was --# keeping Berlin time. --# --# says that the meteorologists --# burned down their station in 1940 and left the island, but returned in --# 1941 with a small Norwegian garrison and continued operations despite --# frequent air attacks from Germans. In 1943 the Americans established a --# radiolocating station on the island, called "Atlantic City". Possibly --# the UT offset changed during the war, but I think it unlikely that --# Jan Mayen used German daylight-saving rules. --# --# Svalbard is more complicated, as it was raided in August 1941 by an --# Allied party that evacuated the civilian population to England (says --# ). The Svalbard FAQ --# says that the Germans were --# expelled on 1942-05-14. However, small parties of Germans did return, --# and according to Wilhelm Dege's book "War North of 80" (1954) --# http://www.ucalgary.ca/UofC/departments/UP/1-55238/1-55238-110-2.html --# the German armed forces at the Svalbard weather station code-named --# Haudegen did not surrender to the Allies until September 1945. --# --# All these events predate our cutoff date of 1970, so use Europe/Berlin --# for these regions. -- -- - # Poland - - # The 1919 dates and times can be found in Tygodnik Urzędowy nr 1 (1919-03-20), -@@ -3301,11 +3254,13 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 - 11:00 Russia +11/+12 2011 Mar 27 2:00s - 12:00 - +12 - -- --# San Marino --# See Europe/Rome. -- -+# Bosnia & Herzegovina -+# Croatia -+# Kosovo -+# Montenegro -+# North Macedonia - # Serbia -+# Slovenia - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Europe/Belgrade 1:22:00 - LMT 1884 - 1:00 - CET 1941 Apr 18 23:00 -@@ -3317,17 +3272,6 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884 - # Shanks & Pottenger don't give as much detail, so go with Koželj. - 1:00 - CET 1982 Nov 27 - 1:00 EU CE%sT --Link Europe/Belgrade Europe/Ljubljana # Slovenia --Link Europe/Belgrade Europe/Podgorica # Montenegro --Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina --Link Europe/Belgrade Europe/Skopje # North Macedonia --Link Europe/Belgrade Europe/Zagreb # Croatia -- --# Slovakia --# See Europe/Prague. -- --# Slovenia --# See Europe/Belgrade. - - # Spain - # -@@ -3434,10 +3378,11 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. - # IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u. - # Ignore this for now, as the Canaries are part of the EU. - --# Sweden --# See Europe/Berlin. - -+# Germany (Busingen enclave) -+# Liechtenstein - # Switzerland -+# - # From Howse: - # By the end of the 18th century clocks and watches became commonplace - # and their performance improved enormously. Communities began to keep -@@ -3550,9 +3495,6 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. - 0:29:46 - BMT 1894 Jun # Bern Mean Time - 1:00 Swiss CE%sT 1981 - 1:00 EU CE%sT --Link Europe/Zurich Europe/Busingen --Link Europe/Zurich Europe/Vaduz -- - - # Turkey - -@@ -3757,7 +3699,6 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 - 2:00 1:00 EEST 2015 Nov 8 1:00u - 2:00 EU EE%sT 2016 Sep 7 - 3:00 - +03 --Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - - # Ukraine - # -@@ -3860,9 +3801,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880 - 2:00 C-Eur EE%sT 1996 May 13 - 2:00 EU EE%sT - --# Vatican City --# See Europe/Rome. -- - ############################################################################### - - # One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/northamerica b/jdk/test/sun/util/calendar/zi/tzdata/northamerica -index ce4ee74..465e8c2 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/northamerica -+++ b/jdk/test/sun/util/calendar/zi/tzdata/northamerica -@@ -852,7 +852,6 @@ Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u - -7:00 - MST 1967 - -7:00 US M%sT 1968 Mar 21 - -7:00 - MST --Link America/Phoenix America/Creston - - # From Arthur David Olson (1988-02-13): - # A writer from the Inter Tribal Council of Arizona, Inc., -@@ -1626,23 +1625,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 - - # Ontario - --# From Paul Eggert (2006-07-09): --# Shanks & Pottenger write that since 1970 most of Ontario has been like --# Toronto. --# Thunder Bay skipped DST in 1973. --# Many smaller locales did not observe peacetime DST until 1974; --# Nipigon (EST) and Rainy River (CST) are the largest that we know of. --# Far west Ontario is like Winnipeg; far east Quebec is like Halifax. -- --# From Jeffery Nichols (2020-02-06): --# According to the [Shanks] atlas, those western Ontario zones are huge, --# covering most of Ontario northwest of Sault Ste Marie and Timmins. --# The zones seem to include towns bigger than the ones they're named after, --# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in --# America/Nipigon. I assume it's too much trouble to change the name of the --# zone (like when you found out that America/Glace_Bay includes Sydney, Nova --# Scotia).... -- - # From Mark Brader (2003-07-26): - # [According to the Toronto Star] Orillia, Ontario, adopted DST - # effective Saturday, 1912-06-22, 22:00; the article mentions that -@@ -1663,17 +1645,6 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 - - # From Mark Brader (2010-03-06): - # --# Currently the database has: --# --# # Ontario --# --# # From Paul Eggert (2006-07-09): --# # Shanks & Pottenger write that since 1970 most of Ontario has been like --# # Toronto. --# # Thunder Bay skipped DST in 1973. --# # Many smaller locales did not observe peacetime DST until 1974; --# # Nipigon (EST) and Rainy River (CST) are the largest that we know of. --# - # In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom - # right corner of page 1, it says that Toronto will return to standard - # time at 2 am Sunday morning (which agrees with the database), and that: -@@ -1681,10 +1652,8 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 - # The one-hour setback will go into effect throughout most of Ontario, - # except in areas like Windsor which remains on standard time all year. - # --# Windsor is, of course, a lot larger than Nipigon. --# --# I only came across this incidentally. I don't know if Windsor began --# observing DST when Detroit did, or in 1974, or on some other date. -+# ... I don't know if Windsor began observing DST when Detroit did, -+# or in 1974, or on some other date. - # - # By the way, the article continues by noting that: - # -@@ -1766,23 +1735,7 @@ Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S - # Toronto Star, which said that DST was ending 1971-10-31 as usual. - Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S - --# From Paul Eggert (2003-07-27): --# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and --# Port Arthur, Ontario, the principle of the Bill has been in --# operation for the past three years, and in the City of Moose Jaw, --# Saskatchewan, for one year." -- --# From David Bryan via Tory Tronrud, Director/Curator, --# Thunder Bay Museum (2003-11-12): --# There is some suggestion, however, that, by-law or not, daylight --# savings time was being practiced in Fort William and Port Arthur --# before 1909.... [I]n 1910, the line between the Eastern and Central --# Time Zones was permanently moved about two hundred miles west to --# include the Thunder Bay area.... When Canada adopted daylight --# savings time in 1916, Fort William and Port Arthur, having done so --# already, did not change their clocks.... During the Second World --# War,... [t]he cities agreed to implement DST during the summer --# months for the remainder of the war years. -+# The Bahamas match Toronto since 1970. - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/Toronto -5:17:32 - LMT 1895 -@@ -1791,22 +1744,6 @@ Zone America/Toronto -5:17:32 - LMT 1895 - -5:00 Canada E%sT 1946 - -5:00 Toronto E%sT 1974 - -5:00 Canada E%sT --Link America/Toronto America/Nassau --Zone America/Thunder_Bay -5:57:00 - LMT 1895 -- -6:00 - CST 1910 -- -5:00 - EST 1942 -- -5:00 Canada E%sT 1970 -- -5:00 Toronto E%sT 1973 -- -5:00 - EST 1974 -- -5:00 Canada E%sT --Zone America/Nipigon -5:53:04 - LMT 1895 -- -5:00 Canada E%sT 1940 Sep 29 -- -5:00 1:00 EDT 1942 Feb 9 2:00s -- -5:00 Canada E%sT --Zone America/Rainy_River -6:18:16 - LMT 1895 -- -6:00 Canada C%sT 1940 Sep 29 -- -6:00 1:00 CDT 1942 Feb 9 2:00s -- -6:00 Canada C%sT - # For Atikokan see America/Panama. - - -@@ -2639,6 +2576,12 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 - # 5- The islands, reefs and keys shall take their timezone from the - # longitude they are located at. - -+# From Paul Eggert (2022-10-28): -+# The new Mexican law was published today: -+# https://www.dof.gob.mx/nota_detalle.php?codigo=5670045&fecha=28/10/2022 -+# This abolishes DST except where US DST rules are observed, -+# and in addition changes all of Chihuahua to -06 with no DST. -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Mexico 1931 only - May 1 23:00 1:00 D - Rule Mexico 1931 only - Oct 1 0:00 0 S -@@ -2654,8 +2597,8 @@ Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D - Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S - Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D - Rule Mexico 2001 only - Sep lastSun 2:00 0 S --Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D --Rule Mexico 2002 max - Oct lastSun 2:00 0 S -+Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D -+Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] - # Quintana Roo; represented by Cancún - Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u -@@ -2708,7 +2651,8 @@ Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT 2010 -- -7:00 US M%sT -+ -7:00 US M%sT 2022 Oct 30 2:00 -+ -6:00 - CST - # Chihuahua (away from US border) - Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 -@@ -2717,7 +2661,8 @@ Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u - -6:00 - CST 1996 - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 -- -7:00 Mexico M%sT -+ -7:00 Mexico M%sT 2022 Oct 30 2:00 -+ -6:00 - CST - # Sonora - Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 -@@ -2815,20 +2760,16 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u - # http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010 - # It has been moved to the 'backward' file. - # -+# From Paul Eggert (2022-10-28): -+# Today's new law states that the entire state of Baja California -+# follows US DST rules, which agrees with simplifications noted above. -+# - # - # Revillagigedo Is - # no information - - ############################################################################### - --# Anguilla --# Antigua and Barbuda --# See America/Puerto_Rico. -- --# The Bahamas --# See America/Toronto. -- -- - # Barbados - - # For 1899 Milne gives -3:58:29.2. -@@ -3041,12 +2982,6 @@ Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton - -4:00 Canada A%sT 1976 - -4:00 US A%sT - --# Caribbean Netherlands --# See America/Puerto_Rico. -- --# Cayman Is --# See America/Panama. -- - # Costa Rica - - # Milne gives -5:36:13.3 as San José mean time. -@@ -3272,9 +3207,6 @@ Zone America/Havana -5:29:28 - LMT 1890 - -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT - -5:00 Cuba C%sT - --# Dominica --# See America/Puerto_Rico. -- - # Dominican Republic - - # From Steffen Thorsen (2000-10-30): -@@ -3321,12 +3253,6 @@ Rule Salv 1987 1988 - Sep lastSun 0:00 0 S - Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador - -6:00 Salv C%sT - --# Grenada --# Guadeloupe --# St Barthélemy --# St Martin (French part) --# See America/Puerto_Rico. -- - # Guatemala - # - # From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen: -@@ -3512,9 +3438,6 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France - -4:00 1:00 ADT 1980 Sep 28 - -4:00 - AST - --# Montserrat --# See America/Puerto_Rico. -- - # Nicaragua - # - # This uses Shanks & Pottenger for times before 2005. -@@ -3580,44 +3503,39 @@ Zone America/Managua -5:45:08 - LMT 1890 - -5:00 - EST 1997 - -6:00 Nic C%sT - -+# Cayman Is - # Panama -+# -+# Atikokan and Coral Harbour, Canada, match Panama since 1970. - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/Panama -5:18:08 - LMT 1890 - -5:19:36 - CMT 1908 Apr 22 # Colón Mean Time - -5:00 - EST --Link America/Panama America/Atikokan --Link America/Panama America/Cayman - -+# Anguilla -+# Antigua & Barbuda -+# Aruba -+# Caribbean Netherlands -+# Curaçao -+# Dominica -+# Grenada -+# Guadeloupe -+# Montserrat - # Puerto Rico -+# St Barthélemy -+# St Kitts-Nevis -+# Sint Maarten / St Martin -+# St Lucia -+# St Vincent & the Grenadines -+# Trinidad & Tobago -+# Virgin Is (UK & US) -+# - # There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'. - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan - -4:00 - AST 1942 May 3 - -4:00 US A%sT 1946 - -4:00 - AST --Link America/Puerto_Rico America/Anguilla --Link America/Puerto_Rico America/Antigua --Link America/Puerto_Rico America/Aruba --Link America/Puerto_Rico America/Curacao --Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore) --Link America/Puerto_Rico America/Dominica --Link America/Puerto_Rico America/Grenada --Link America/Puerto_Rico America/Guadeloupe --Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands --Link America/Puerto_Rico America/Lower_Princes # Sint Maarten --Link America/Puerto_Rico America/Marigot # St Martin (French part) --Link America/Puerto_Rico America/Montserrat --Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago --Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy --Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis --Link America/Puerto_Rico America/St_Lucia --Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US) --Link America/Puerto_Rico America/St_Vincent --Link America/Puerto_Rico America/Tortola # Virgin Islands (UK) -- --# St Kitts-Nevis --# St Lucia --# See America/Puerto_Rico. - - # St Pierre and Miquelon - # There are too many St Pierres elsewhere, so we'll use 'Miquelon'. -@@ -3627,12 +3545,6 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre - -3:00 - -03 1987 - -3:00 Canada -03/-02 - --# St Vincent and the Grenadines --# See America/Puerto_Rico. -- --# Sint Maarten --# See America/Puerto_Rico. -- - # Turks and Caicos - # - # From Chris Dunn in -@@ -3702,11 +3614,6 @@ Zone America/Grand_Turk -4:44:32 - LMT 1890 - -4:00 - AST 2018 Mar 11 3:00 - -5:00 US E%sT - --# British Virgin Is --# US Virgin Is --# See America/Puerto_Rico. -- -- - # Local Variables: - # coding: utf-8 - # End: -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/southamerica b/jdk/test/sun/util/calendar/zi/tzdata/southamerica -index 3c0e0e2..982ad09 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/southamerica -+++ b/jdk/test/sun/util/calendar/zi/tzdata/southamerica -@@ -608,9 +608,6 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 - --# Aruba --# See America/Puerto_Rico. -- - # Bolivia - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone America/La_Paz -4:32:36 - LMT 1890 -@@ -1455,15 +1452,6 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 - # Malpelo, Providencia, San Andres - # no information; probably like America/Bogota - --# Curaçao --# See America/Puerto_Rico. --# --# From Arthur David Olson (2011-06-15): --# use links for places with new iso3166 codes. --# The name "Lower Prince's Quarter" is both longer than fourteen characters --# and contains an apostrophe; use "Lower_Princes".... --# From Paul Eggert (2021-09-29): --# These backward-compatibility links now are in the 'northamerica' file. - - # Ecuador - # -@@ -1779,9 +1767,6 @@ Zone America/Paramaribo -3:40:40 - LMT 1911 - -3:30 - -0330 1984 Oct - -3:00 - -03 - --# Trinidad and Tobago --# See America/Puerto_Rico. -- - # Uruguay - # From Paul Eggert (1993-11-18): - # Uruguay wins the prize for the strangest peacetime manipulation of the rules. -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab -index ee02519..535d1c9 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/zone.tab -+++ b/jdk/test/sun/util/calendar/zi/tzdata/zone.tab -@@ -137,13 +137,10 @@ CA +4606-06447 America/Moncton Atlantic - New Brunswick - CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) - CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore) - CA +4339-07923 America/Toronto Eastern - ON, QC (most areas) --CA +4901-08816 America/Nipigon Eastern - ON, QC (no DST 1967-73) --CA +4823-08915 America/Thunder_Bay Eastern - ON (Thunder Bay) - CA +6344-06828 America/Iqaluit Eastern - NU (most east areas) - CA +6608-06544 America/Pangnirtung Eastern - NU (Pangnirtung) - CA +484531-0913718 America/Atikokan EST - ON (Atikokan); NU (Coral H) - CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba --CA +4843-09434 America/Rainy_River Central - ON (Rainy R, Ft Frances) - CA +744144-0944945 America/Resolute Central - NU (Resolute) - CA +624900-0920459 America/Rankin_Inlet Central - NU (central) - CA +5024-10439 America/Regina CST - SK (most areas) --- -1.8.3.1 diff --git a/8296241-tz-Update-Timezone-Data-to-2022e.patch b/8296241-tz-Update-Timezone-Data-to-2022e.patch deleted file mode 100644 index 699894c6664b1b5fdf2bf165939a65f6e7499bed..0000000000000000000000000000000000000000 --- a/8296241-tz-Update-Timezone-Data-to-2022e.patch +++ /dev/null @@ -1,826 +0,0 @@ -From d31b6120315ecc095ddffa7a5fb92c53bb70bc3b Mon Sep 17 00:00:00 2001 -From: eapen -Date: Wed, 30 Nov 2022 14:57:07 +0000 -Subject: [PATCH 08/33] I68TO2: 8296241: (tz) Update Timezone Data to 2022e ---- - jdk/make/data/tzdata/VERSION | 2 +- - jdk/make/data/tzdata/asia | 36 +++++++--- - jdk/make/data/tzdata/europe | 2 +- - jdk/make/data/tzdata/northamerica | 84 ++++++++++------------ - jdk/test/java/util/TimeZone/TimeZoneData/VERSION | 2 +- - .../util/TimeZone/TimeZoneData/displaynames.txt | 2 - - jdk/test/sun/util/calendar/zi/tzdata/VERSION | 2 +- - jdk/test/sun/util/calendar/zi/tzdata/asia | 36 +++++++--- - jdk/test/sun/util/calendar/zi/tzdata/europe | 2 +- - jdk/test/sun/util/calendar/zi/tzdata/northamerica | 84 ++++++++++------------ - 10 files changed, 135 insertions(+), 117 deletions(-) - -diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION -index 889d0e6..b8cb36e 100644 ---- a/jdk/make/data/tzdata/VERSION -+++ b/jdk/make/data/tzdata/VERSION -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2022d -+tzdata2022e -diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia -index 1dc7d34..f1771e4 100644 ---- a/jdk/make/data/tzdata/asia -+++ b/jdk/make/data/tzdata/asia -@@ -2254,6 +2254,17 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u - # From the Arabic version, it seems to say it would be at midnight - # (assume 24:00) on the last Thursday in February, starting from 2022. - -+# From Issam Al-Zuwairi (2022-10-05): -+# The Council of Ministers in Jordan decided Wednesday 5th October 2022, -+# that daylight saving time (DST) will be throughout the year.... -+# -+# From Brian Inglis (2022-10-06): -+# https://petra.gov.jo/Include/InnerPage.jsp?ID=45567&lang=en&name=en_news -+# -+# From Paul Eggert (2022-10-05): -+# Like Syria, model this as a transition from EEST +03 (DST) to plain +03 -+# (non-DST) at the point where DST would otherwise have ended. -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Jordan 1973 only - Jun 6 0:00 1:00 S - Rule Jordan 1973 1975 - Oct 1 0:00 0 - -@@ -2285,11 +2296,12 @@ Rule Jordan 2005 only - Sep lastFri 0:00s 0 - - Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 - - Rule Jordan 2013 only - Dec 20 0:00 0 - - Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S --Rule Jordan 2014 max - Oct lastFri 0:00s 0 - --Rule Jordan 2022 max - Feb lastThu 24:00 1:00 S -+Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 - -+Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Amman 2:23:44 - LMT 1931 -- 2:00 Jordan EE%sT -+ 2:00 Jordan EE%sT 2022 Oct 28 0:00s -+ 3:00 - +03 - - - # Kazakhstan -@@ -3838,19 +3850,27 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 - - # Our brief summary: - # https://www.timeanddate.com/news/time/syria-dst-2012.html - --# From Arthur David Olson (2012-03-27): --# Assume last Friday in March going forward XXX. -+# From Steffen Thorsen (2022-10-05): -+# Syria is adopting year-round DST, starting this autumn.... -+# From https://www.enabbaladi.net/archives/607812 -+# "This [the decision] came after the weekly government meeting today, -+# Tuesday 4 October ..." -+# -+# From Paul Eggert (2022-10-05): -+# Like Jordan, model this as a transition from EEST +03 (DST) to plain +03 -+# (non-DST) at the point where DST would otherwise have ended. - - Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S - Rule Syria 2008 only - Nov 1 0:00 0 - - Rule Syria 2009 only - Mar lastFri 0:00 1:00 S - Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S --Rule Syria 2012 max - Mar lastFri 0:00 1:00 S --Rule Syria 2009 max - Oct lastFri 0:00 0 - -+Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S -+Rule Syria 2009 2022 - Oct lastFri 0:00 0 - - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq -- 2:00 Syria EE%sT -+ 2:00 Syria EE%sT 2022 Oct 28 0:00 -+ 3:00 - +03 - - # Tajikistan - # From Shanks & Pottenger. -diff --git a/jdk/make/data/tzdata/europe b/jdk/make/data/tzdata/europe -index 9e0a538..930cede 100644 ---- a/jdk/make/data/tzdata/europe -+++ b/jdk/make/data/tzdata/europe -@@ -3417,7 +3417,7 @@ Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00u - 0:00 Spain WE%sT 1940 Mar 16 23:00 - 1:00 Spain CE%sT 1979 - 1:00 EU CE%sT --Zone Africa/Ceuta -0:21:16 - LMT 1900 Dec 31 23:38:44 -+Zone Africa/Ceuta -0:21:16 - LMT 1901 Jan 1 0:00u - 0:00 - WET 1918 May 6 23:00 - 0:00 1:00 WEST 1918 Oct 7 23:00 - 0:00 - WET 1924 -diff --git a/jdk/make/data/tzdata/northamerica b/jdk/make/data/tzdata/northamerica -index 114cef1..ce4ee74 100644 ---- a/jdk/make/data/tzdata/northamerica -+++ b/jdk/make/data/tzdata/northamerica -@@ -462,7 +462,7 @@ Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D - Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S - Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 -+Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1920 - -6:00 Chicago C%sT 1936 Mar 1 2:00 - -5:00 - EST 1936 Nov 15 2:00 -@@ -471,7 +471,7 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 - -6:00 Chicago C%sT 1967 - -6:00 US C%sT - # Oliver County, ND switched from mountain to central time on 1992-10-25. --Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48 -+Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 1992 Oct 25 2:00 - -6:00 US C%sT - # Morton County, ND, switched from mountain to central time on -@@ -481,7 +481,7 @@ Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48 - # Jones, Mellette, and Todd Counties in South Dakota; - # but in practice these other counties were already observing central time. - # See . --Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 -+Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 2003 Oct 26 2:00 - -6:00 US C%sT - -@@ -498,7 +498,7 @@ Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 - # largest city in Mercer County). Google Maps places Beulah's city hall - # at 47° 15' 51" N, 101° 46' 40" W, which yields an offset of 6h47'07". - --Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53 -+Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 2010 Nov 7 2:00 - -6:00 US C%sT - -@@ -530,7 +530,7 @@ Rule Denver 1921 only - May 22 2:00 0 S - Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D - Rule Denver 1965 1966 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 -+Zone America/Denver -6:59:56 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 1920 - -7:00 Denver M%sT 1942 - -7:00 US M%sT 1946 -@@ -583,7 +583,7 @@ Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D - Rule CA 1950 1961 - Sep lastSun 2:00 0 S - Rule CA 1962 1966 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02 -+Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u - -8:00 US P%sT 1946 - -8:00 CA P%sT 1967 - -8:00 US P%sT -@@ -845,7 +845,7 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 - # Go with the Arizona State Library instead. - - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42 -+Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 1944 Jan 1 0:01 - -7:00 - MST 1944 Apr 1 0:01 - -7:00 US M%sT 1944 Oct 1 0:01 -@@ -873,7 +873,7 @@ Link America/Phoenix America/Creston - # switched four weeks late in 1974. - # - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 -+Zone America/Boise -7:44:49 - LMT 1883 Nov 18 20:00u - -8:00 US P%sT 1923 May 13 2:00 - -7:00 US M%sT 1974 - -7:00 - MST 1974 Feb 3 2:00 -@@ -945,7 +945,7 @@ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D - Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S - Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22 -+Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1920 - -6:00 Indianapolis C%sT 1942 - -6:00 US C%sT 1946 -@@ -965,7 +965,7 @@ Rule Marengo 1951 only - Sep lastSun 2:00 0 S - Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D - Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37 -+Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1951 - -6:00 Marengo C%sT 1961 Apr 30 2:00 - -5:00 - EST 1969 -@@ -989,7 +989,7 @@ Rule Vincennes 1960 only - Oct lastSun 2:00 0 S - Rule Vincennes 1961 only - Sep lastSun 2:00 0 S - Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53 -+Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 Vincennes C%sT 1964 Apr 26 2:00 - -5:00 - EST 1969 -@@ -1009,7 +1009,7 @@ Rule Perry 1955 1960 - Sep lastSun 2:00 0 S - Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D - Rule Perry 1961 1963 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57 -+Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 Perry C%sT 1964 Apr 26 2:00 - -5:00 - EST 1967 Oct 29 2:00 -@@ -1026,7 +1026,7 @@ Rule Pike 1955 1960 - Sep lastSun 2:00 0 S - Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D - Rule Pike 1961 1964 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53 -+Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1955 - -6:00 Pike C%sT 1965 Apr 25 2:00 - -5:00 - EST 1966 Oct 30 2:00 -@@ -1048,7 +1048,7 @@ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S - Rule Starke 1957 1958 - Sep lastSun 2:00 0 S - Rule Starke 1959 1961 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30 -+Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1947 - -6:00 Starke C%sT 1962 Apr 29 2:00 - -5:00 - EST 1963 Oct 27 2:00 -@@ -1064,7 +1064,7 @@ Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S - Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S - Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35 -+Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 Pulaski C%sT 1961 Apr 30 2:00 - -5:00 - EST 1969 -@@ -1075,7 +1075,7 @@ Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35 - # - # Switzerland County, Indiana, did not observe DST from 1973 through 2005. - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44 -+Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1954 Apr 25 2:00 - -5:00 - EST 1969 - -5:00 US E%sT 1973 -@@ -1111,7 +1111,7 @@ Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D - Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S - Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 -+Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1921 - -6:00 Louisville C%sT 1942 - -6:00 US C%sT 1946 -@@ -1145,7 +1145,7 @@ Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 - # Federal Register 65, 160 (2000-08-17), pp 50154-50158. - # https://www.gpo.gov/fdsys/pkg/FR-2000-08-17/html/00-20854.htm - # --Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36 -+Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 - CST 1968 - -6:00 US C%sT 2000 Oct 29 2:00 -@@ -2640,6 +2640,8 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 - # longitude they are located at. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -+Rule Mexico 1931 only - May 1 23:00 1:00 D -+Rule Mexico 1931 only - Oct 1 0:00 0 S - Rule Mexico 1939 only - Feb 5 0:00 1:00 D - Rule Mexico 1939 only - Jun 25 0:00 0 S - Rule Mexico 1940 only - Dec 9 0:00 1:00 D -@@ -2656,13 +2658,13 @@ Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D - Rule Mexico 2002 max - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] - # Quintana Roo; represented by Cancún --Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56 -+Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1981 Dec 23 - -5:00 Mexico E%sT 1998 Aug 2 2:00 - -6:00 Mexico C%sT 2015 Feb 1 2:00 - -5:00 - EST - # Campeche, Yucatán; represented by Mérida --Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32 -+Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1981 Dec 23 - -5:00 - EST 1982 Dec 2 - -6:00 Mexico C%sT -@@ -2676,23 +2678,21 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32 - # See: Inicia mañana Horario de Verano en zona fronteriza, El Universal, - # 2016-03-12 - # http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-horario-de-verano-en-zona-fronteriza --Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00 -+Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1988 - -6:00 US C%sT 1989 - -6:00 Mexico C%sT 2010 - -6:00 US C%sT - # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border) --Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44 -+Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1988 - -6:00 US C%sT 1989 - -6:00 Mexico C%sT - # Central Mexico --Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24 -+Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 Mexico C%sT 2001 Sep 30 2:00 - -6:00 - CST 2002 Feb 20 - -6:00 Mexico C%sT -@@ -2700,35 +2700,29 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24 - # This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe, - # Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides. - # (See the 2016-03-12 El Universal source mentioned above.) --Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20 -+Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1996 - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT 2010 - -7:00 US M%sT - # Chihuahua (away from US border) --Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40 -+Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1996 - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT - # Sonora --Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08 -+Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 -@@ -2763,24 +2757,20 @@ Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08 - # Use "Bahia_Banderas" to keep the name to fourteen characters. - - # Mazatlán --Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20 -+Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 - -7:00 Mexico M%sT - - # Bahía de Banderas --Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00 -+Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 -@@ -2788,7 +2778,7 @@ Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00 - -6:00 Mexico C%sT - - # Baja California --Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56 -+Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1924 - -8:00 - PST 1927 Jun 10 23:00 - -7:00 - MST 1930 Nov 15 -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -index 7147016..0cad939 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/VERSION -@@ -1 +1 @@ --tzdata2022d -+tzdata2022e -diff --git a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -index b382395..2f2786f 100644 ---- a/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -+++ b/jdk/test/java/util/TimeZone/TimeZoneData/displaynames.txt -@@ -97,9 +97,7 @@ America/Winnipeg CST CDT - America/Yakutat AKST AKDT - America/Yellowknife MST MDT - Antarctica/Macquarie AEST AEDT --Asia/Amman EET EEST - Asia/Beirut EET EEST --Asia/Damascus EET EEST - Asia/Famagusta EET EEST - Asia/Gaza EET EEST - Asia/Hebron EET EEST -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/VERSION b/jdk/test/sun/util/calendar/zi/tzdata/VERSION -index 889d0e6..b8cb36e 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION -+++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2022d -+tzdata2022e -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/asia b/jdk/test/sun/util/calendar/zi/tzdata/asia -index 1dc7d34..f1771e4 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/asia -+++ b/jdk/test/sun/util/calendar/zi/tzdata/asia -@@ -2254,6 +2254,17 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u - # From the Arabic version, it seems to say it would be at midnight - # (assume 24:00) on the last Thursday in February, starting from 2022. - -+# From Issam Al-Zuwairi (2022-10-05): -+# The Council of Ministers in Jordan decided Wednesday 5th October 2022, -+# that daylight saving time (DST) will be throughout the year.... -+# -+# From Brian Inglis (2022-10-06): -+# https://petra.gov.jo/Include/InnerPage.jsp?ID=45567&lang=en&name=en_news -+# -+# From Paul Eggert (2022-10-05): -+# Like Syria, model this as a transition from EEST +03 (DST) to plain +03 -+# (non-DST) at the point where DST would otherwise have ended. -+ - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S - Rule Jordan 1973 only - Jun 6 0:00 1:00 S - Rule Jordan 1973 1975 - Oct 1 0:00 0 - -@@ -2285,11 +2296,12 @@ Rule Jordan 2005 only - Sep lastFri 0:00s 0 - - Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 - - Rule Jordan 2013 only - Dec 20 0:00 0 - - Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S --Rule Jordan 2014 max - Oct lastFri 0:00s 0 - --Rule Jordan 2022 max - Feb lastThu 24:00 1:00 S -+Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 - -+Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Amman 2:23:44 - LMT 1931 -- 2:00 Jordan EE%sT -+ 2:00 Jordan EE%sT 2022 Oct 28 0:00s -+ 3:00 - +03 - - - # Kazakhstan -@@ -3838,19 +3850,27 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 - - # Our brief summary: - # https://www.timeanddate.com/news/time/syria-dst-2012.html - --# From Arthur David Olson (2012-03-27): --# Assume last Friday in March going forward XXX. -+# From Steffen Thorsen (2022-10-05): -+# Syria is adopting year-round DST, starting this autumn.... -+# From https://www.enabbaladi.net/archives/607812 -+# "This [the decision] came after the weekly government meeting today, -+# Tuesday 4 October ..." -+# -+# From Paul Eggert (2022-10-05): -+# Like Jordan, model this as a transition from EEST +03 (DST) to plain +03 -+# (non-DST) at the point where DST would otherwise have ended. - - Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S - Rule Syria 2008 only - Nov 1 0:00 0 - - Rule Syria 2009 only - Mar lastFri 0:00 1:00 S - Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S --Rule Syria 2012 max - Mar lastFri 0:00 1:00 S --Rule Syria 2009 max - Oct lastFri 0:00 0 - -+Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S -+Rule Syria 2009 2022 - Oct lastFri 0:00 0 - - - # Zone NAME STDOFF RULES FORMAT [UNTIL] - Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq -- 2:00 Syria EE%sT -+ 2:00 Syria EE%sT 2022 Oct 28 0:00 -+ 3:00 - +03 - - # Tajikistan - # From Shanks & Pottenger. -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/europe b/jdk/test/sun/util/calendar/zi/tzdata/europe -index 9e0a538..930cede 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/europe -+++ b/jdk/test/sun/util/calendar/zi/tzdata/europe -@@ -3417,7 +3417,7 @@ Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00u - 0:00 Spain WE%sT 1940 Mar 16 23:00 - 1:00 Spain CE%sT 1979 - 1:00 EU CE%sT --Zone Africa/Ceuta -0:21:16 - LMT 1900 Dec 31 23:38:44 -+Zone Africa/Ceuta -0:21:16 - LMT 1901 Jan 1 0:00u - 0:00 - WET 1918 May 6 23:00 - 0:00 1:00 WEST 1918 Oct 7 23:00 - 0:00 - WET 1924 -diff --git a/jdk/test/sun/util/calendar/zi/tzdata/northamerica b/jdk/test/sun/util/calendar/zi/tzdata/northamerica -index 114cef1..ce4ee74 100644 ---- a/jdk/test/sun/util/calendar/zi/tzdata/northamerica -+++ b/jdk/test/sun/util/calendar/zi/tzdata/northamerica -@@ -462,7 +462,7 @@ Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D - Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S - Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 -+Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1920 - -6:00 Chicago C%sT 1936 Mar 1 2:00 - -5:00 - EST 1936 Nov 15 2:00 -@@ -471,7 +471,7 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 - -6:00 Chicago C%sT 1967 - -6:00 US C%sT - # Oliver County, ND switched from mountain to central time on 1992-10-25. --Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48 -+Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 1992 Oct 25 2:00 - -6:00 US C%sT - # Morton County, ND, switched from mountain to central time on -@@ -481,7 +481,7 @@ Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48 - # Jones, Mellette, and Todd Counties in South Dakota; - # but in practice these other counties were already observing central time. - # See . --Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 -+Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 2003 Oct 26 2:00 - -6:00 US C%sT - -@@ -498,7 +498,7 @@ Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 - # largest city in Mercer County). Google Maps places Beulah's city hall - # at 47° 15' 51" N, 101° 46' 40" W, which yields an offset of 6h47'07". - --Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53 -+Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 2010 Nov 7 2:00 - -6:00 US C%sT - -@@ -530,7 +530,7 @@ Rule Denver 1921 only - May 22 2:00 0 S - Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D - Rule Denver 1965 1966 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 -+Zone America/Denver -6:59:56 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 1920 - -7:00 Denver M%sT 1942 - -7:00 US M%sT 1946 -@@ -583,7 +583,7 @@ Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D - Rule CA 1950 1961 - Sep lastSun 2:00 0 S - Rule CA 1962 1966 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02 -+Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u - -8:00 US P%sT 1946 - -8:00 CA P%sT 1967 - -8:00 US P%sT -@@ -845,7 +845,7 @@ Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 - # Go with the Arizona State Library instead. - - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42 -+Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 19:00u - -7:00 US M%sT 1944 Jan 1 0:01 - -7:00 - MST 1944 Apr 1 0:01 - -7:00 US M%sT 1944 Oct 1 0:01 -@@ -873,7 +873,7 @@ Link America/Phoenix America/Creston - # switched four weeks late in 1974. - # - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 -+Zone America/Boise -7:44:49 - LMT 1883 Nov 18 20:00u - -8:00 US P%sT 1923 May 13 2:00 - -7:00 US M%sT 1974 - -7:00 - MST 1974 Feb 3 2:00 -@@ -945,7 +945,7 @@ Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D - Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S - Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22 -+Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1920 - -6:00 Indianapolis C%sT 1942 - -6:00 US C%sT 1946 -@@ -965,7 +965,7 @@ Rule Marengo 1951 only - Sep lastSun 2:00 0 S - Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D - Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37 -+Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1951 - -6:00 Marengo C%sT 1961 Apr 30 2:00 - -5:00 - EST 1969 -@@ -989,7 +989,7 @@ Rule Vincennes 1960 only - Oct lastSun 2:00 0 S - Rule Vincennes 1961 only - Sep lastSun 2:00 0 S - Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53 -+Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 Vincennes C%sT 1964 Apr 26 2:00 - -5:00 - EST 1969 -@@ -1009,7 +1009,7 @@ Rule Perry 1955 1960 - Sep lastSun 2:00 0 S - Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D - Rule Perry 1961 1963 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57 -+Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 Perry C%sT 1964 Apr 26 2:00 - -5:00 - EST 1967 Oct 29 2:00 -@@ -1026,7 +1026,7 @@ Rule Pike 1955 1960 - Sep lastSun 2:00 0 S - Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D - Rule Pike 1961 1964 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53 -+Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1955 - -6:00 Pike C%sT 1965 Apr 25 2:00 - -5:00 - EST 1966 Oct 30 2:00 -@@ -1048,7 +1048,7 @@ Rule Starke 1955 1956 - Oct lastSun 2:00 0 S - Rule Starke 1957 1958 - Sep lastSun 2:00 0 S - Rule Starke 1959 1961 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30 -+Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1947 - -6:00 Starke C%sT 1962 Apr 29 2:00 - -5:00 - EST 1963 Oct 27 2:00 -@@ -1064,7 +1064,7 @@ Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S - Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S - Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35 -+Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 Pulaski C%sT 1961 Apr 30 2:00 - -5:00 - EST 1969 -@@ -1075,7 +1075,7 @@ Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35 - # - # Switzerland County, Indiana, did not observe DST from 1973 through 2005. - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44 -+Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1954 Apr 25 2:00 - -5:00 - EST 1969 - -5:00 US E%sT 1973 -@@ -1111,7 +1111,7 @@ Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D - Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S - Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] --Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 -+Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1921 - -6:00 Louisville C%sT 1942 - -6:00 US C%sT 1946 -@@ -1145,7 +1145,7 @@ Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 - # Federal Register 65, 160 (2000-08-17), pp 50154-50158. - # https://www.gpo.gov/fdsys/pkg/FR-2000-08-17/html/00-20854.htm - # --Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36 -+Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 18:00u - -6:00 US C%sT 1946 - -6:00 - CST 1968 - -6:00 US C%sT 2000 Oct 29 2:00 -@@ -2640,6 +2640,8 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 - # longitude they are located at. - - # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -+Rule Mexico 1931 only - May 1 23:00 1:00 D -+Rule Mexico 1931 only - Oct 1 0:00 0 S - Rule Mexico 1939 only - Feb 5 0:00 1:00 D - Rule Mexico 1939 only - Jun 25 0:00 0 S - Rule Mexico 1940 only - Dec 9 0:00 1:00 D -@@ -2656,13 +2658,13 @@ Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D - Rule Mexico 2002 max - Oct lastSun 2:00 0 S - # Zone NAME STDOFF RULES FORMAT [UNTIL] - # Quintana Roo; represented by Cancún --Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56 -+Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1981 Dec 23 - -5:00 Mexico E%sT 1998 Aug 2 2:00 - -6:00 Mexico C%sT 2015 Feb 1 2:00 - -5:00 - EST - # Campeche, Yucatán; represented by Mérida --Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32 -+Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1981 Dec 23 - -5:00 - EST 1982 Dec 2 - -6:00 Mexico C%sT -@@ -2676,23 +2678,21 @@ Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32 - # See: Inicia mañana Horario de Verano en zona fronteriza, El Universal, - # 2016-03-12 - # http://www.eluniversal.com.mx/articulo/estados/2016/03/12/inicia-manana-horario-de-verano-en-zona-fronteriza --Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00 -+Zone America/Matamoros -6:30:00 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1988 - -6:00 US C%sT 1989 - -6:00 Mexico C%sT 2010 - -6:00 US C%sT - # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border) --Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44 -+Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1988 - -6:00 US C%sT 1989 - -6:00 Mexico C%sT - # Central Mexico --Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24 -+Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 Mexico C%sT 2001 Sep 30 2:00 - -6:00 - CST 2002 Feb 20 - -6:00 Mexico C%sT -@@ -2700,35 +2700,29 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24 - # This includes the municipalities of Janos, Ascensión, Juárez, Guadalupe, - # Práxedis G Guerrero, Coyame del Sotol, Ojinaga, and Manuel Benavides. - # (See the 2016-03-12 El Universal source mentioned above.) --Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20 -+Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1996 - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT 2010 - -7:00 US M%sT - # Chihuahua (away from US border) --Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40 -+Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1996 - -6:00 Mexico C%sT 1998 - -6:00 - CST 1998 Apr Sun>=1 3:00 - -7:00 Mexico M%sT - # Sonora --Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08 -+Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 -@@ -2763,24 +2757,20 @@ Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08 - # Use "Bahia_Banderas" to keep the name to fourteen characters. - - # Mazatlán --Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20 -+Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 - -7:00 Mexico M%sT - - # Bahía de Banderas --Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00 -+Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 - -6:00 - CST 1930 Nov 15 -- -7:00 - MST 1931 May 1 23:00 -- -6:00 - CST 1931 Oct -- -7:00 - MST 1932 Apr 1 -+ -7:00 Mexico M%sT 1932 Apr 1 - -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 -@@ -2788,7 +2778,7 @@ Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00 - -6:00 Mexico C%sT - - # Baja California --Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56 -+Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1924 - -8:00 - PST 1927 Jun 10 23:00 - -7:00 - MST 1930 Nov 15 --- -1.8.3.1 diff --git a/8296480-Fix-the-problem-that-the-TestPolicy.java-cas.patch b/8296480-Fix-the-problem-that-the-TestPolicy.java-cas.patch deleted file mode 100644 index 7d1be495df61f9860a6e4f748ee03abac84c2486..0000000000000000000000000000000000000000 --- a/8296480-Fix-the-problem-that-the-TestPolicy.java-cas.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 6d1c5b1ee82b2b2481a16f3510078fdc7ddc08f9 Mon Sep 17 00:00:00 2001 -From: eapen -Date: Tue, 15 Nov 2022 11:26:33 +0800 -Subject: [PATCH 04/33] 8296480: Fix the problem that the TestPolicy.java case - fails because the certificate expires. ---- - jdk/test/java/security/cert/pkix/policyChanges/TestPolicy.java | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/jdk/test/java/security/cert/pkix/policyChanges/TestPolicy.java b/jdk/test/java/security/cert/pkix/policyChanges/TestPolicy.java -index a92eee2..b37debf 100644 ---- a/jdk/test/java/security/cert/pkix/policyChanges/TestPolicy.java -+++ b/jdk/test/java/security/cert/pkix/policyChanges/TestPolicy.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2002, 2022, 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 -@@ -34,6 +34,7 @@ - */ - - import java.io.*; -+import java.text.DateFormat; - import java.util.*; - - import java.security.Security; -@@ -97,6 +98,10 @@ public class TestPolicy { - params.setRevocationEnabled(false); - params.setInitialPolicies(testCase.initialPolicies); - -+ // Certs expired on 7th Nov 2022 -+ params.setDate(DateFormat.getDateInstance(DateFormat.MEDIUM, -+ Locale.US).parse("June 01, 2022")); -+ - CertPath path = factory.generateCertPath(Arrays.asList(new X509Certificate[] {ee, ca})); - - PKIXCertPathValidatorResult result = (PKIXCertPathValidatorResult)validator.validate(path, params); --- -1.8.3.1 - diff --git a/8296485-BuildEEBasicConstraints.java-test-fails-with.patch b/8296485-BuildEEBasicConstraints.java-test-fails-with.patch deleted file mode 100644 index b641e884852cc93e1908b810bbd5ace2e76e60d6..0000000000000000000000000000000000000000 --- a/8296485-BuildEEBasicConstraints.java-test-fails-with.patch +++ /dev/null @@ -1,39 +0,0 @@ -From b8aedd236ca707cfc15eb5daf91aab697a8014ed Mon Sep 17 00:00:00 2001 -From: eapen -Date: Wed, 23 Nov 2022 08:31:14 +0800 -Subject: [PATCH 06/33] I68TO2: 8296485: BuildEEBasicConstraints.java test fails with - SunCertPathBuilderException ---- - .../CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/jdk/test/java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java b/jdk/test/java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java -index 6be5562..44926d2 100644 ---- a/jdk/test/java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java -+++ b/jdk/test/java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java -@@ -46,9 +46,11 @@ import java.security.cert.PKIXCertPathBuilderResult; - import java.security.cert.TrustAnchor; - import java.security.cert.X509Certificate; - import java.security.cert.X509CertSelector; -+import java.text.DateFormat; - import java.util.ArrayList; - import java.util.Collections; - import java.util.List; -+import java.util.Locale; - - public final class BuildEEBasicConstraints { - -@@ -65,6 +67,11 @@ public final class BuildEEBasicConstraints { - PKIXBuilderParameters params = new PKIXBuilderParameters - (Collections.singleton(anchor), sel); - params.setRevocationEnabled(false); -+ -+ // Certs expired on 7th Nov 2022 -+ params.setDate(DateFormat.getDateInstance(DateFormat.MEDIUM, -+ Locale.US).parse("June 01, 2022")); -+ - X509Certificate eeCert = CertUtils.getCertFromFile("ee.cer"); - X509Certificate caCert = CertUtils.getCertFromFile("ca.cer"); - ArrayList certs = new ArrayList(); --- -1.8.3.1 diff --git a/8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch b/8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch new file mode 100644 index 0000000000000000000000000000000000000000..a14347a1e297648d9664408d5c00c408b73f7ae9 --- /dev/null +++ b/8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch @@ -0,0 +1,255 @@ +From 5a21d735ffa345f956d2c637b4e13f55c907a219 Mon Sep 17 00:00:00 2001 +From: wangjiawei +Date: Fri, 28 Apr 2023 10:41:14 +0800 +Subject: [PATCH 15/15] 8305541: C2 Div/Mod nodes without zero check could be + split through iv phi of loop resulting in SIGFPE + +DTS/AR: DTS2023041008055 +Summary: : 8305541: C2 Div/Mod nodes without zero check could be split through iv phi of loop resulting in SIGFPE +LLT: NA +Patch Type: backport +Bug url: https://bugs.openjdk.org/browse/JDK-8305541 +--- + hotspot/src/share/vm/opto/loopnode.hpp | 4 +- + hotspot/src/share/vm/opto/loopopts.cpp | 40 +++++ + .../c2/TestSplitDivisionThroughPhi.java | 155 ++++++++++++++++++ + 3 files changed, 198 insertions(+), 1 deletion(-) + create mode 100644 hotspot/test/compiler/c2/TestSplitDivisionThroughPhi.java + +diff --git a/hotspot/src/share/vm/opto/loopnode.hpp b/hotspot/src/share/vm/opto/loopnode.hpp +index 6f70b5065..f8750e54a 100644 +--- a/hotspot/src/share/vm/opto/loopnode.hpp ++++ b/hotspot/src/share/vm/opto/loopnode.hpp +@@ -1071,7 +1071,9 @@ private: + Node *place_near_use( Node *useblock ) const; + Node* try_move_store_before_loop(Node* n, Node *n_ctrl); + void try_move_store_after_loop(Node* n); +- ++ bool cannot_split_division(const Node* n, const Node* region) const; ++ static bool is_divisor_counted_loop_phi(const Node* divisor, const Node* loop); ++ bool loop_phi_backedge_type_contains_zero(const Node* phi_divisor, const Type* zero) const; + bool _created_loop_node; + public: + void set_created_loop_node() { _created_loop_node = true; } +diff --git a/hotspot/src/share/vm/opto/loopopts.cpp b/hotspot/src/share/vm/opto/loopopts.cpp +index 20bdb1493..28bfcb75b 100644 +--- a/hotspot/src/share/vm/opto/loopopts.cpp ++++ b/hotspot/src/share/vm/opto/loopopts.cpp +@@ -51,6 +51,10 @@ Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) { + return NULL; + } + ++ if (cannot_split_division(n, region)) { ++ return NULL; ++ } ++ + int wins = 0; + assert(!n->is_CFG(), ""); + assert(region->is_Region(), ""); +@@ -200,6 +204,42 @@ Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) { + return phi; + } + ++// Return true if 'n' is a Div or Mod node (without zero check If node which was removed earlier) with a loop phi divisor ++// of a trip-counted (integer or long) loop with a backedge input that could be zero (include zero in its type range). In ++// this case, we cannot split the division to the backedge as it could freely float above the loop exit check resulting in ++// a division by zero. This situation is possible because the type of an increment node of an iv phi (trip-counter) could ++// include zero while the iv phi does not (see PhiNode::Value() for trip-counted loops where we improve types of iv phis). ++// We also need to check other loop phis as they could have been created in the same split-if pass when applying ++// PhaseIdealLoop::split_thru_phi() to split nodes through an iv phi. ++bool PhaseIdealLoop::cannot_split_division(const Node* n, const Node* region) const { ++ const Type* zero; ++ switch (n->Opcode()) { ++ case Op_DivI: ++ case Op_ModI: ++ zero = TypeInt::ZERO; ++ break; ++ case Op_DivL: ++ case Op_ModL: ++ zero = TypeLong::ZERO; ++ break; ++ default: ++ return false; ++ } ++ ++ assert(n->in(0) == NULL, "divisions with zero check should already have bailed out earlier in split-if"); ++ Node* divisor = n->in(2); ++ return is_divisor_counted_loop_phi(divisor, region) && ++ loop_phi_backedge_type_contains_zero(divisor, zero); ++} ++ ++bool PhaseIdealLoop::is_divisor_counted_loop_phi(const Node* divisor, const Node* loop) { ++ return loop->is_CountedLoop() && divisor->is_Phi() && divisor->in(0) == loop; ++} ++ ++bool PhaseIdealLoop::loop_phi_backedge_type_contains_zero(const Node* phi_divisor, const Type* zero) const { ++ return _igvn.type(phi_divisor->in(LoopNode::LoopBackControl))->filter_speculative(zero) != Type::TOP; ++} ++ + //------------------------------dominated_by------------------------------------ + // Replace the dominated test with an obvious true or false. Place it on the + // IGVN worklist for later cleanup. Move control-dependent data Nodes on the +diff --git a/hotspot/test/compiler/c2/TestSplitDivisionThroughPhi.java b/hotspot/test/compiler/c2/TestSplitDivisionThroughPhi.java +new file mode 100644 +index 000000000..0a59783fa +--- /dev/null ++++ b/hotspot/test/compiler/c2/TestSplitDivisionThroughPhi.java +@@ -0,0 +1,155 @@ ++/* ++ * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/** ++ * @test ++ * @bug 8299259 ++ * @summary Test various cases of divisions/modulo which should not be split through iv phis. ++ * @run main/othervm -Xbatch -XX:+UnlockDiagnosticVMOptions -XX:LoopUnrollLimit=0 -XX:+StressGCM ++ * -XX:CompileCommand=compileonly,TestSplitDivisionThroughPhi::* TestSplitDivisionThroughPhi ++ */ ++ ++/** ++ * @test ++ * @bug 8299259 ++ * @summary Test various cases of divisions/modulo which should not be split through iv phis. ++ * @run main/othervm -Xbatch -XX:+UnlockDiagnosticVMOptions -XX:LoopUnrollLimit=0 -XX:+StressGCM ++ * -XX:CompileCommand=compileonly,TestSplitDivisionThroughPhi::* TestSplitDivisionThroughPhi ++ */ ++ ++ ++public class TestSplitDivisionThroughPhi { ++ static int iFld; ++ static long lFld; ++ static boolean flag; ++ ++ ++ public static void main(String[] strArr) { ++ for (int i = 0; i < 5000; i++) { ++ testPushDivIThruPhi(); ++ testPushDivIThruPhiInChain(); ++ testPushModIThruPhi(); ++ testPushModIThruPhiInChain(); ++ testPushDivLThruPhi(); ++ testPushDivLThruPhiInChain(); ++ testPushModLThruPhi(); ++ testPushModLThruPhiInChain(); ++ } ++ } ++ ++ // Already fixed by JDK-8248552. ++ static void testPushDivIThruPhi() { ++ for (int i = 10; i > 1; i -= 2) { ++ // The Div node is only split in later loop opts phase because the zero divisor check is only removed ++ // in IGVN after the first loop opts phase. ++ // ++ // iv phi i type: [2..10] ++ // When splitting the DivI through the iv phi, it ends up on the back edge with the trip count decrement ++ // as input which has type [0..8]. We end up executing a division by zero on the last iteration because ++ // the DivI it is not pinned to the loop exit test and can freely float above the loop exit check. ++ iFld = 10 / i; ++ } ++ } ++ ++ // Same as above but with an additional Mul node between the iv phi and the Div node. Both nodes are split through ++ // the iv phi in one pass of Split If. ++ static void testPushDivIThruPhiInChain() { ++ for (int i = 10; i > 1; i -= 2) { ++ // Empty one iteration loop which is only removed after split if in first loop opts phase. This prevents ++ // that the Mul node is already split through the iv phi while the Div node cannot be split yet due to ++ // the zero divisor check which can only be removed in the IGVN after the first loop opts pass. ++ for (int j = 0; j < 1; j++) { ++ } ++ iFld = 10 / (i * 100); ++ } ++ } ++ ++ // Already fixed by JDK-8248552. ++ static void testPushModIThruPhi() { ++ for (int i = 10; i > 1; i -= 2) { ++ iFld = 10 / i; ++ } ++ } ++ ++ // Same as above but with ModI. ++ static void testPushModIThruPhiInChain() { ++ for (int i = 10; i > 1; i -= 2) { ++ for (int j = 0; j < 1; j++) { ++ } ++ iFld = 10 / (i * 100); ++ } ++ } ++ ++ // Long cases only trigger since JDK-8256655. ++ ++ // Same as above but with DivL. ++ static void testPushDivLThruPhi() { ++ for (long i = 10; i > 1; i -= 2) { ++ lFld = 10L / i; ++ ++ // Loop that is not removed such that we do not transform the outer LongCountedLoop (only done if innermost) ++ for (int j = 0; j < 10; j++) { ++ flag = !flag; ++ } ++ } ++ } ++ ++ // Same as above but with DivL. ++ static void testPushDivLThruPhiInChain() { ++ for (long i = 10; i > 1; i -= 2) { ++ for (int j = 0; j < 1; j++) { ++ } ++ lFld = 10L / (i * 100L); ++ ++ for (int j = 0; j < 10; j++) { ++ flag = !flag; ++ } ++ } ++ } ++ ++ // Same as above but with ModL ++ static void testPushModLThruPhi() { ++ for (long i = 10; i > 1; i -= 2) { ++ lFld = 10L % i; ++ ++ for (int j = 0; j < 10; j++) { ++ flag = !flag; ++ } ++ } ++ } ++ ++ // Same as above but with ModL ++ static void testPushModLThruPhiInChain() { ++ for (long i = 10; i > 1; i -= 2) { ++ for (int j = 0; j < 1; j++) { ++ } ++ lFld = 10L % (i * 100L); ++ ++ for (int j = 0; j < 10; j++) { ++ flag = !flag; ++ } ++ } ++ } ++} ++ +-- +2.19.0 + diff --git a/8308682-Enhance-AES-performance.patch b/8308682-Enhance-AES-performance.patch new file mode 100644 index 0000000000000000000000000000000000000000..84a1e1c4796bbeca319c72bbace07b23459430f9 --- /dev/null +++ b/8308682-Enhance-AES-performance.patch @@ -0,0 +1,708 @@ +From 6926e9b83bc3f9b785d5298786a5c41e247b2a3f Mon Sep 17 00:00:00 2001 +Date: Mon, 16 Oct 2023 10:56:30 +0800 +Subject: [PATCH 1/5] 8308682: Enhance AES performance + +Bug url: https://bugs.openjdk.org/browse/JDK-8308682 +--- + .../src/cpu/aarch64/vm/assembler_aarch64.hpp | 2 + + .../cpu/aarch64/vm/stubGenerator_aarch64.cpp | 451 +++++++++--------- + .../compiler/codegen/aes/CTR_Wraparound.java | 169 +++++++ + 3 files changed, 406 insertions(+), 216 deletions(-) + create mode 100644 hotspot/test/compiler/codegen/aes/CTR_Wraparound.java + +diff --git a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp +index 9202e61f8..b12095aca 100644 +--- a/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp ++++ b/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp +@@ -2140,6 +2140,8 @@ public: + INSN(sshl, 0, 0b010001); + INSN(ushl, 1, 0b010001); + ++ INSN(cmhi, 1, 0b001101); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D ++ + #undef INSN + + #define INSN(NAME, opc, opc2) \ +diff --git a/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp +index 565fe559c..f61028d50 100644 +--- a/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp ++++ b/hotspot/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp +@@ -2804,265 +2804,284 @@ class StubGenerator: public StubCodeGenerator { + return start; + } + ++ // Big-endian 128-bit + 64-bit -> 128-bit addition. ++ // Inputs: 128-bits. in is preserved. ++ // The least-significant 64-bit word is in the upper dword of the vector ++ // inc (the 64-bit increment) is preserved. Its lower dword must be zero ++ // Output: result ++ void be_add_128_64(FloatRegister result, FloatRegister in, ++ FloatRegister inc, FloatRegister tmp) { ++ assert_different_registers(result, tmp, inc); ++ ++ __ addv(result, __ T2D, in, inc); // Add inc to the least-significant dword of input ++ __ cmhi(tmp, __ T2D, inc, result); // Check for result overflowing ++ __ ins(tmp, __ D, tmp, 0, 1); // Move LSD of comparison result to MSD ++ __ ins(tmp, __ D, inc, 1, 0); // Move 0 to LSD of comparison result ++ __ subv(result, __ T2D, result, tmp); // Subtract -1 from MSD if there was an overflow ++ } ++ + // CTR AES crypt. +- // Arguments: +- // +- // Inputs: +- // c_rarg0 - source byte array address +- // c_rarg1 - destination byte array address +- // c_rarg2 - K (key) in little endian int array +- // c_rarg3 - counter vector byte array address +- // c_rarg4 - input length +- // c_rarg5 - saved encryptedCounter start +- // c_rarg6 - saved used length ++ // Arguments: ++ // ++ // Inputs: ++ // c_rarg0 - source byte array address ++ // c_rarg1 - destination byte array address ++ // c_rarg2 - K (key) in little endian int array ++ // c_rarg3 - counter vector byte array address ++ // c_rarg4 - input length ++ // c_rarg5 - saved encryptedCounter start ++ // c_rarg6 - saved used length ++ // ++ // Output: ++ // r0 - input length ++ // ++ address generate_counterMode_AESCrypt() { ++ const Register in = c_rarg0; ++ const Register out = c_rarg1; ++ const Register key = c_rarg2; ++ const Register counter = c_rarg3; ++ const Register saved_len = c_rarg4, len = r10; ++ const Register saved_encrypted_ctr = c_rarg5; ++ const Register used_ptr = c_rarg6, used = r12; ++ ++ const Register offset = r7; ++ const Register keylen = r11; ++ ++ const unsigned char block_size = 16; ++ const int bulk_width = 4; ++ // NB: bulk_width can be 4 or 8. 8 gives slightly faster ++ // performance with larger data sizes, but it also means that the ++ // fast path isn't used until you have at least 8 blocks, and up ++ // to 127 bytes of data will be executed on the slow path. For ++ // that reason, and also so as not to blow away too much icache, 4 ++ // blocks seems like a sensible compromise. ++ ++ // Algorithm: + // +- // Output: +- // r0 - input length ++ // if (len == 0) { ++ // goto DONE; ++ // } ++ // int result = len; ++ // do { ++ // if (used >= blockSize) { ++ // if (len >= bulk_width * blockSize) { ++ // CTR_large_block(); ++ // if (len == 0) ++ // goto DONE; ++ // } ++ // for (;;) { ++ // 16ByteVector v0 = counter; ++ // embeddedCipher.encryptBlock(v0, 0, encryptedCounter, 0); ++ // used = 0; ++ // if (len < blockSize) ++ // break; /* goto NEXT */ ++ // 16ByteVector v1 = load16Bytes(in, offset); ++ // v1 = v1 ^ encryptedCounter; ++ // store16Bytes(out, offset); ++ // used = blockSize; ++ // offset += blockSize; ++ // len -= blockSize; ++ // if (len == 0) ++ // goto DONE; ++ // } ++ // } ++ // NEXT: ++ // out[outOff++] = (byte)(in[inOff++] ^ encryptedCounter[used++]); ++ // len--; ++ // } while (len != 0); ++ // DONE: ++ // return result; + // +- address generate_counterMode_AESCrypt() { +- const Register in = c_rarg0; +- const Register out = c_rarg1; +- const Register key = c_rarg2; +- const Register counter = c_rarg3; +- const Register saved_len = c_rarg4, len = r10; +- const Register saved_encrypted_ctr = c_rarg5; +- const Register used_ptr = c_rarg6, used = r12; +- +- const Register offset = r7; +- const Register keylen = r11; +- +- const unsigned char block_size = 16; +- const int bulk_width = 4; +- // NB: bulk_width can be 4 or 8. 8 gives slightly faster +- // performance with larger data sizes, but it also means that the +- // fast path isn't used until you have at least 8 blocks, and up +- // to 127 bytes of data will be executed on the slow path. For +- // that reason, and also so as not to blow away too much icache, 4 +- // blocks seems like a sensible compromise. +- +- // Algorithm: +- // +- // if (len == 0) { +- // goto DONE; +- // } +- // int result = len; +- // do { +- // if (used >= blockSize) { +- // if (len >= bulk_width * blockSize) { +- // CTR_large_block(); +- // if (len == 0) +- // goto DONE; +- // } +- // for (;;) { +- // 16ByteVector v0 = counter; +- // embeddedCipher.encryptBlock(v0, 0, encryptedCounter, 0); +- // used = 0; +- // if (len < blockSize) +- // break; /* goto NEXT */ +- // 16ByteVector v1 = load16Bytes(in, offset); +- // v1 = v1 ^ encryptedCounter; +- // store16Bytes(out, offset); +- // used = blockSize; +- // offset += blockSize; +- // len -= blockSize; +- // if (len == 0) +- // goto DONE; +- // } +- // } +- // NEXT: +- // out[outOff++] = (byte)(in[inOff++] ^ encryptedCounter[used++]); +- // len--; +- // } while (len != 0); +- // DONE: +- // return result; +- // +- // CTR_large_block() +- // Wide bulk encryption of whole blocks. ++ // CTR_large_block() ++ // Wide bulk encryption of whole blocks. + +- __ align(CodeEntryAlignment); +- StubCodeMark mark(this, "StubRoutines", "counterMode_AESCrypt"); +- const address start = __ pc(); +- __ enter(); ++ __ align(CodeEntryAlignment); ++ StubCodeMark mark(this, "StubRoutines", "counterMode_AESCrypt"); ++ const address start = __ pc(); ++ __ enter(); + +- Label DONE, CTR_large_block, large_block_return; +- __ ldrw(used, Address(used_ptr)); +- __ cbzw(saved_len, DONE); ++ Label DONE, CTR_large_block, large_block_return; ++ __ ldrw(used, Address(used_ptr)); ++ __ cbzw(saved_len, DONE); + +- __ mov(len, saved_len); +- __ mov(offset, 0); ++ __ mov(len, saved_len); ++ __ mov(offset, 0); + +- // Compute #rounds for AES based on the length of the key array +- __ ldrw(keylen, Address(key, arrayOopDesc::length_offset_in_bytes() - arrayOopDesc::base_offset_in_bytes(T_INT))); ++ // Compute #rounds for AES based on the length of the key array ++ __ ldrw(keylen, Address(key, arrayOopDesc::length_offset_in_bytes() - arrayOopDesc::base_offset_in_bytes(T_INT))); + +- __ aesenc_loadkeys(key, keylen); ++ __ aesenc_loadkeys(key, keylen); + +- { +- Label L_CTR_loop, NEXT; ++ { ++ Label L_CTR_loop, NEXT; + +- __ bind(L_CTR_loop); ++ __ bind(L_CTR_loop); + +- __ cmp(used, block_size); +- __ br(__ LO, NEXT); ++ __ cmp(used, block_size); ++ __ br(__ LO, NEXT); + +- // Maybe we have a lot of data +- __ subsw(rscratch1, len, bulk_width * block_size); +- __ br(__ HS, CTR_large_block); +- __ BIND(large_block_return); +- __ cbzw(len, DONE); ++ // Maybe we have a lot of data ++ __ subsw(rscratch1, len, bulk_width * block_size); ++ __ br(__ HS, CTR_large_block); ++ __ BIND(large_block_return); ++ __ cbzw(len, DONE); + +- // Setup the counter +- __ movi(v4, __ T4S, 0); +- __ movi(v5, __ T4S, 1); +- __ ins(v4, __ S, v5, 3, 3); // v4 contains { 0, 0, 0, 1 } ++ // Setup the counter ++ __ movi(v4, __ T4S, 0); ++ __ movi(v5, __ T4S, 1); ++ __ ins(v4, __ S, v5, 2, 2); // v4 contains { 0, 1 } + +- __ ld1(v0, __ T16B, counter); // Load the counter into v0 +- __ rev32(v16, __ T16B, v0); +- __ addv(v16, __ T4S, v16, v4); +- __ rev32(v16, __ T16B, v16); +- __ st1(v16, __ T16B, counter); // Save the incremented counter back ++ // 128-bit big-endian increment ++ __ ld1(v0, __ T16B, counter); ++ __ rev64(v16, __ T16B, v0); ++ be_add_128_64(v16, v16, v4, /*tmp*/v5); ++ __ rev64(v16, __ T16B, v16); ++ __ st1(v16, __ T16B, counter); ++ // Previous counter value is in v0 ++ // v4 contains { 0, 1 } + +- { +- // We have fewer than bulk_width blocks of data left. Encrypt +- // them one by one until there is less than a full block +- // remaining, being careful to save both the encrypted counter +- // and the counter. +- +- Label inner_loop; +- __ bind(inner_loop); +- // Counter to encrypt is in v0 +- __ aesecb_encrypt(noreg, noreg, keylen); +- __ st1(v0, __ T16B, saved_encrypted_ctr); +- +- // Do we have a remaining full block? +- +- __ mov(used, 0); +- __ cmp(len, block_size); +- __ br(__ LO, NEXT); +- +- // Yes, we have a full block +- __ ldrq(v1, Address(in, offset)); +- __ eor(v1, __ T16B, v1, v0); +- __ strq(v1, Address(out, offset)); +- __ mov(used, block_size); +- __ add(offset, offset, block_size); +- +- __ subw(len, len, block_size); +- __ cbzw(len, DONE); +- +- // Increment the counter, store it back +- __ orr(v0, __ T16B, v16, v16); +- __ rev32(v16, __ T16B, v16); +- __ addv(v16, __ T4S, v16, v4); +- __ rev32(v16, __ T16B, v16); +- __ st1(v16, __ T16B, counter); // Save the incremented counter back +- +- __ b(inner_loop); +- } ++ { ++ // We have fewer than bulk_width blocks of data left. Encrypt ++ // them one by one until there is less than a full block ++ // remaining, being careful to save both the encrypted counter ++ // and the counter. + +- __ BIND(NEXT); +- +- // Encrypt a single byte, and loop. +- // We expect this to be a rare event. +- __ ldrb(rscratch1, Address(in, offset)); +- __ ldrb(rscratch2, Address(saved_encrypted_ctr, used)); +- __ eor(rscratch1, rscratch1, rscratch2); +- __ strb(rscratch1, Address(out, offset)); +- __ add(offset, offset, 1); +- __ add(used, used, 1); +- __ subw(len, len,1); +- __ cbnzw(len, L_CTR_loop); +- } ++ Label inner_loop; ++ __ bind(inner_loop); ++ // Counter to encrypt is in v0 ++ __ aesecb_encrypt(noreg, noreg, keylen); ++ __ st1(v0, __ T16B, saved_encrypted_ctr); + +- __ bind(DONE); +- __ strw(used, Address(used_ptr)); +- __ mov(r0, saved_len); ++ // Do we have a remaining full block? + +- __ leave(); // required for proper stackwalking of RuntimeStub frame +- __ ret(lr); ++ __ mov(used, 0); ++ __ cmp(len, block_size); ++ __ br(__ LO, NEXT); + +- // Bulk encryption ++ // Yes, we have a full block ++ __ ldrq(v1, Address(in, offset)); ++ __ eor(v1, __ T16B, v1, v0); ++ __ strq(v1, Address(out, offset)); ++ __ mov(used, block_size); ++ __ add(offset, offset, block_size); + +- __ BIND (CTR_large_block); +- assert(bulk_width == 4 || bulk_width == 8, "must be"); ++ __ subw(len, len, block_size); ++ __ cbzw(len, DONE); + +- if (bulk_width == 8) { +- __ sub(sp, sp, 4 * 16); +- __ st1(v12, v13, v14, v15, __ T16B, Address(sp)); ++ // Increment the counter, store it back ++ __ orr(v0, __ T16B, v16, v16); ++ __ rev64(v16, __ T16B, v16); ++ be_add_128_64(v16, v16, v4, /*tmp*/v5); ++ __ rev64(v16, __ T16B, v16); ++ __ st1(v16, __ T16B, counter); // Save the incremented counter back ++ ++ __ b(inner_loop); + } +- __ sub(sp, sp, 4 * 16); +- __ st1(v8, v9, v10, v11, __ T16B, Address(sp)); +- RegSet saved_regs = (RegSet::of(in, out, offset) +- + RegSet::of(saved_encrypted_ctr, used_ptr, len)); +- __ push(saved_regs, sp); +- __ andr(len, len, -16 * bulk_width); // 8/4 encryptions, 16 bytes per encryption +- __ add(in, in, offset); +- __ add(out, out, offset); + +- // Keys should already be loaded into the correct registers ++ __ BIND(NEXT); ++ ++ // Encrypt a single byte, and loop. ++ // We expect this to be a rare event. ++ __ ldrb(rscratch1, Address(in, offset)); ++ __ ldrb(rscratch2, Address(saved_encrypted_ctr, used)); ++ __ eor(rscratch1, rscratch1, rscratch2); ++ __ strb(rscratch1, Address(out, offset)); ++ __ add(offset, offset, 1); ++ __ add(used, used, 1); ++ __ subw(len, len,1); ++ __ cbnzw(len, L_CTR_loop); ++ } + +- __ ld1(v0, __ T16B, counter); // v0 contains the first counter +- __ rev32(v16, __ T16B, v0); // v16 contains byte-reversed counter ++ __ bind(DONE); ++ __ strw(used, Address(used_ptr)); ++ __ mov(r0, saved_len); + +- // AES/CTR loop +- { +- Label L_CTR_loop; +- __ BIND(L_CTR_loop); ++ __ leave(); // required for proper stackwalking of RuntimeStub frame ++ __ ret(lr); + +- // Setup the counters +- __ movi(v8, __ T4S, 0); +- __ movi(v9, __ T4S, 1); +- __ ins(v8, __ S, v9, 3, 3); // v8 contains { 0, 0, 0, 1 } ++ // Bulk encryption + +- for (FloatRegister f = v0; f < v0 + bulk_width; f++) { +- __ rev32(f, __ T16B, v16); +- __ addv(v16, __ T4S, v16, v8); +- } ++ __ BIND (CTR_large_block); ++ assert(bulk_width == 4 || bulk_width == 8, "must be"); + +- __ ld1(v8, v9, v10, v11, __ T16B, __ post(in, 4 * 16)); ++ if (bulk_width == 8) { ++ __ sub(sp, sp, 4 * 16); ++ __ st1(v12, v13, v14, v15, __ T16B, Address(sp)); ++ } ++ __ sub(sp, sp, 4 * 16); ++ __ st1(v8, v9, v10, v11, __ T16B, Address(sp)); ++ RegSet saved_regs = (RegSet::of(in, out, offset) ++ + RegSet::of(saved_encrypted_ctr, used_ptr, len)); ++ __ push(saved_regs, sp); ++ __ andr(len, len, -16 * bulk_width); // 8/4 encryptions, 16 bytes per encryption ++ __ add(in, in, offset); ++ __ add(out, out, offset); + +- // Encrypt the counters +- __ aesecb_encrypt(noreg, noreg, keylen, v0, bulk_width); ++ // Keys should already be loaded into the correct registers + +- if (bulk_width == 8) { +- __ ld1(v12, v13, v14, v15, __ T16B, __ post(in, 4 * 16)); +- } ++ __ ld1(v0, __ T16B, counter); // v0 contains the first counter ++ __ rev64(v16, __ T16B, v0); // v16 contains byte-reversed counter + +- // XOR the encrypted counters with the inputs +- for (int i = 0; i < bulk_width; i++) { +- __ eor(v0 + i, __ T16B, v0 + i, v8 + i); +- } ++ // AES/CTR loop ++ { ++ Label L_CTR_loop; ++ __ BIND(L_CTR_loop); + +- // Write the encrypted data +- __ st1(v0, v1, v2, v3, __ T16B, __ post(out, 4 * 16)); +- if (bulk_width == 8) { +- __ st1(v4, v5, v6, v7, __ T16B, __ post(out, 4 * 16)); +- } ++ // Setup the counters ++ __ movi(v8, __ T4S, 0); ++ __ movi(v9, __ T4S, 1); ++ __ ins(v8, __ S, v9, 2, 2); // v8 contains { 0, 1 } + +- __ subw(len, len, 16 * bulk_width); +- __ cbnzw(len, L_CTR_loop); ++ for (FloatRegister f = v0; f < v0 + bulk_width; f++) { ++ __ rev64(f, __ T16B, v16); ++ be_add_128_64(v16, v16, v8, /*tmp*/v9); + } + +- // Save the counter back where it goes +- __ rev32(v16, __ T16B, v16); +- __ st1(v16, __ T16B, counter); ++ __ ld1(v8, v9, v10, v11, __ T16B, __ post(in, 4 * 16)); + +- __ pop(saved_regs, sp); ++ // Encrypt the counters ++ __ aesecb_encrypt(noreg, noreg, keylen, v0, bulk_width); + +- __ ld1(v8, v9, v10, v11, __ T16B, __ post(sp, 4 * 16)); + if (bulk_width == 8) { +- __ ld1(v12, v13, v14, v15, __ T16B, __ post(sp, 4 * 16)); ++ __ ld1(v12, v13, v14, v15, __ T16B, __ post(in, 4 * 16)); + } + +- __ andr(rscratch1, len, -16 * bulk_width); +- __ sub(len, len, rscratch1); +- __ add(offset, offset, rscratch1); +- __ mov(used, 16); +- __ strw(used, Address(used_ptr)); +- __ b(large_block_return); ++ // XOR the encrypted counters with the inputs ++ for (int i = 0; i < bulk_width; i++) { ++ __ eor(v0 + i, __ T16B, v0 + i, v8 + i); ++ } + +- return start; ++ // Write the encrypted data ++ __ st1(v0, v1, v2, v3, __ T16B, __ post(out, 4 * 16)); ++ if (bulk_width == 8) { ++ __ st1(v4, v5, v6, v7, __ T16B, __ post(out, 4 * 16)); ++ } ++ ++ __ subw(len, len, 16 * bulk_width); ++ __ cbnzw(len, L_CTR_loop); + } + ++ // Save the counter back where it goes ++ __ rev64(v16, __ T16B, v16); ++ __ st1(v16, __ T16B, counter); ++ ++ __ pop(saved_regs, sp); ++ ++ __ ld1(v8, v9, v10, v11, __ T16B, __ post(sp, 4 * 16)); ++ if (bulk_width == 8) { ++ __ ld1(v12, v13, v14, v15, __ T16B, __ post(sp, 4 * 16)); ++ } ++ ++ __ andr(rscratch1, len, -16 * bulk_width); ++ __ sub(len, len, rscratch1); ++ __ add(offset, offset, rscratch1); ++ __ mov(used, 16); ++ __ strw(used, Address(used_ptr)); ++ __ b(large_block_return); ++ ++ return start; ++ } ++ + + + // Arguments: +diff --git a/hotspot/test/compiler/codegen/aes/CTR_Wraparound.java b/hotspot/test/compiler/codegen/aes/CTR_Wraparound.java +new file mode 100644 +index 000000000..f578b432c +--- /dev/null ++++ b/hotspot/test/compiler/codegen/aes/CTR_Wraparound.java +@@ -0,0 +1,169 @@ ++import javax.crypto.Cipher; ++import javax.crypto.spec.IvParameterSpec; ++import javax.crypto.spec.SecretKeySpec; ++import java.lang.reflect.Executable; ++import java.util.Arrays; ++import java.util.Random; ++import java.util.concurrent.Callable; ++ ++/** ++ * @test ++ * @bug 8308682 ++ * @summary Check for 128-bit AES/CTR wraparound ++ * @library /testlibrary /testlibrary/whitebox /compiler/whitebox /compiler/testlibrary ++ * @build CTR_Wraparound ++ * @run main ClassFileInstaller sun.hotspot.WhiteBox ++ * sun.hotspot.WhiteBox$WhiteBoxPermission ++ * @run main/othervm -Xbootclasspath/a:. ++ * -XX:+UnlockDiagnosticVMOptions ++ * -XX:+WhiteBoxAPI ++ * CTR_Wraparound 32 ++ * @run main/othervm -Xbootclasspath/a:. ++ * -XX:+UnlockDiagnosticVMOptions ++ * -XX:+WhiteBoxAPI ++ * CTR_Wraparound 1009 ++ * @run main/othervm -Xbootclasspath/a:. ++ * -XX:+UnlockDiagnosticVMOptions ++ * -XX:+WhiteBoxAPI ++ * CTR_Wraparound 2048 ++ */ ++ ++public class CTR_Wraparound extends CompilerWhiteBoxTest { ++ private static final String ALGO = "AES/CTR/NoPadding"; ++ private static final int LOOPS = 100000; ++ private int length; ++ private int maxOffset; ++ ++ public CTR_Wraparound(int len,int offset){ ++ super(new CTR_WraparoundTestCase()); ++ length = len; ++ maxOffset = offset; ++ } ++ ++ public static class CTR_WraparoundTestCase implements TestCase { ++ ++ public String name() { ++ return "CTR_WraparoundTestCase"; ++ } ++ ++ public Executable getExecutable(){ ++ try { ++ return Class.forName("com.sun.crypto.provider.CounterMode").getDeclaredMethod("implCrypt", byte[].class, int.class, int.class, byte[].class, int.class); ++ } catch (NoSuchMethodException e) { ++ throw new RuntimeException("Test bug, method unavailable. " + e); ++ } catch (ClassNotFoundException e) { ++ throw new RuntimeException("Test bug, class unavailable. " + e); ++ } ++ } ++ ++ public Callable getCallable() { ++ return null; ++ } ++ ++ public boolean isOsr() { ++ return false; ++ } ++ ++ } ++ ++ private static boolean isServerVM(String VMName) { return VMName.toLowerCase().contains("server");} ++ ++ ++ ++ protected static boolean checkIntrinsicForCompilationLevel(Executable method, int compLevel) { ++ boolean intrinsicEnabled = Boolean.valueOf(getVMOption("UseAESCTRIntrinsics")); ++ boolean intrinsicAvailable = WHITE_BOX.isIntrinsicAvailable(method, ++ compLevel); ++ if(intrinsicAvailable && intrinsicEnabled){ ++ return true; ++ } ++ return false; ++ } ++ ++ public static void main(String[] args) throws Exception { ++ int length = Integer.parseInt(args[0]); ++ int maxOffset = 60; ++ if (args.length > 1) { ++ maxOffset = Integer.parseInt(args[1]); ++ System.out.println("InitialOffset = " + maxOffset); ++ } ++ new CTR_Wraparound(length,maxOffset).test(); ++ } ++ ++ @Override ++ protected void test() throws Exception { ++ ++ String VMName = System.getProperty("java.vm.name"); ++ Executable intrinsicMethod = testCase.getExecutable(); ++ boolean isIntrinsicEnabled = false; ++ if (isServerVM(VMName)) { ++ if (TIERED_COMPILATION) { ++ isIntrinsicEnabled = checkIntrinsicForCompilationLevel(intrinsicMethod, COMP_LEVEL_SIMPLE); ++ } ++ isIntrinsicEnabled = checkIntrinsicForCompilationLevel(intrinsicMethod, COMP_LEVEL_FULL_OPTIMIZATION); ++ } else { ++ isIntrinsicEnabled = checkIntrinsicForCompilationLevel(intrinsicMethod, COMP_LEVEL_SIMPLE); ++ } ++ if(!isIntrinsicEnabled){ ++ return; ++ } ++ ++ ++ long SEED = Long.getLong("jdk.test.lib.random.seed", new Random().nextLong()); ++ Random random = new Random(SEED); ++ ++ byte[] keyBytes = new byte[32]; ++ Arrays.fill(keyBytes, (byte)0xff); ++ SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); ++ ++ byte[] ivBytes = new byte[16]; ++ ++ Arrays.fill(ivBytes, (byte)0xff); ++ ++ byte[][] plaintext = new byte[maxOffset][]; ++ byte[][] ciphertext = new byte[maxOffset][]; ++ ++ for (int offset = 0; offset < maxOffset; offset++) { ++ ivBytes[ivBytes.length - 1] = (byte)-offset; ++ IvParameterSpec iv = new IvParameterSpec(ivBytes); ++ ++ Cipher encryptCipher = Cipher.getInstance(ALGO); ++ Cipher decryptCipher = Cipher.getInstance(ALGO); ++ ++ encryptCipher.init(Cipher.ENCRYPT_MODE, key, iv); ++ decryptCipher.init(Cipher.DECRYPT_MODE, key, iv); ++ ++ plaintext[offset] = new byte[length]; ++ ciphertext[offset] = new byte[length]; ++ random.nextBytes(plaintext[offset]); ++ ++ byte[] decrypted = new byte[length]; ++ ++ encryptCipher.doFinal(plaintext[offset], 0, length, ciphertext[offset]); ++ decryptCipher.doFinal(ciphertext[offset], 0, length, decrypted); ++ ++ if (!Arrays.equals(plaintext[offset], decrypted)) { ++ throw new Exception("mismatch in setup at offset " + offset); ++ } ++ } ++ ++ for (int offset = 0; offset < maxOffset; offset++) { ++ ivBytes[ivBytes.length - 1] = (byte)-offset; ++ IvParameterSpec iv = new IvParameterSpec(ivBytes); ++ ++ Cipher encryptCipher = Cipher.getInstance(ALGO); ++ ++ encryptCipher.init(Cipher.ENCRYPT_MODE, key, iv); ++ ++ byte[] encrypted = new byte[length]; ++ ++ for (int i = 0; i < LOOPS; i++) { ++ encryptCipher.doFinal(plaintext[offset], 0, length, encrypted); ++ if (!Arrays.equals(ciphertext[offset], encrypted)) { ++ throw new Exception("array mismatch at offset " + offset ++ + " with length " + length); ++ } ++ } ++ } ++ } ++} +-- +2.19.1 + diff --git a/8312065-Socket.connect-does-not-timeout-when-profili.patch b/8312065-Socket.connect-does-not-timeout-when-profili.patch new file mode 100644 index 0000000000000000000000000000000000000000..e97b68c31a4d426edf13213510900414370373df --- /dev/null +++ b/8312065-Socket.connect-does-not-timeout-when-profili.patch @@ -0,0 +1,366 @@ +From 941ebd7303bce4242121cc2173d5fd6dcff2226a Mon Sep 17 00:00:00 2001 +Subject: 8312065: Socket.connect does not timeout when profiling + +--- + jdk/src/aix/native/java/net/aix_close.c | 56 +++++++++--------- + jdk/src/solaris/native/java/net/bsd_close.c | 57 ++++++++++--------- + jdk/src/solaris/native/java/net/linux_close.c | 57 ++++++++++--------- + 3 files changed, 86 insertions(+), 84 deletions(-) + +diff --git a/jdk/src/aix/native/java/net/aix_close.c b/jdk/src/aix/native/java/net/aix_close.c +index 90d57b42f..3402293c6 100644 +--- a/jdk/src/aix/native/java/net/aix_close.c ++++ b/jdk/src/aix/native/java/net/aix_close.c +@@ -53,8 +53,8 @@ + #include + #include + #include +- + #include ++#include "jvm.h" + + /* + * Stack allocated by thread when doing blocking operation +@@ -376,61 +376,61 @@ int NET_SocketClose(int fd) { + /************** Basic I/O operations here ***************/ + + /* +- * Macro to perform a blocking IO operation. Restarts +- * automatically if interrupted by signal (other than +- * our wakeup signal) ++ * Macro to perform a blocking IO operation. ++ * If interrupted by signal (other than our wakeup signal), and if RETRY is true, ++ * then restarts automatically + */ +-#define BLOCKING_IO_RETURN_INT(FD, FUNC) { \ +- int ret; \ +- threadEntry_t self; \ +- fdEntry_t *fdEntry = getFdEntry(FD); \ +- if (fdEntry == NULL) { \ +- errno = EBADF; \ +- return -1; \ +- } \ +- do { \ +- startOp(fdEntry, &self); \ +- ret = FUNC; \ +- endOp(fdEntry, &self); \ +- } while (ret == -1 && errno == EINTR); \ +- return ret; \ ++#define BLOCKING_IO_RETURN_INT(FD, FUNC, RETRY) { \ ++ int ret; \ ++ threadEntry_t self; \ ++ fdEntry_t *fdEntry = getFdEntry(FD); \ ++ if (fdEntry == NULL) { \ ++ errno = EBADF; \ ++ return -1; \ ++ } \ ++ do { \ ++ startOp(fdEntry, &self); \ ++ ret = FUNC; \ ++ endOp(fdEntry, &self); \ ++ } while ((RETRY) && ret == -1 && errno == EINTR); \ ++ return ret; \ + } + + int NET_Read(int s, void* buf, size_t len) { +- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) ); ++ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0), JNI_TRUE); + } + + int NET_NonBlockingRead(int s, void* buf, size_t len) { +- BLOCKING_IO_RETURN_INT(s, recv(s, buf, len, MSG_NONBLOCK)); ++ BLOCKING_IO_RETURN_INT(s, recv(s, buf, len, MSG_NONBLOCK), JNI_TRUE); + } + + int NET_ReadV(int s, const struct iovec * vector, int count) { +- BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) ); ++ BLOCKING_IO_RETURN_INT( s, readv(s, vector, count), JNI_TRUE); + } + + int NET_RecvFrom(int s, void *buf, int len, unsigned int flags, + struct sockaddr *from, int *fromlen) { + socklen_t socklen = *fromlen; +- BLOCKING_IO_RETURN_INT( s, recvfrom(s, buf, len, flags, from, &socklen) ); ++ BLOCKING_IO_RETURN_INT( s, recvfrom(s, buf, len, flags, from, &socklen), JNI_TRUE); + *fromlen = socklen; + } + + int NET_Send(int s, void *msg, int len, unsigned int flags) { +- BLOCKING_IO_RETURN_INT( s, send(s, msg, len, flags) ); ++ BLOCKING_IO_RETURN_INT( s, send(s, msg, len, flags), JNI_TRUE); + } + + int NET_WriteV(int s, const struct iovec * vector, int count) { +- BLOCKING_IO_RETURN_INT( s, writev(s, vector, count) ); ++ BLOCKING_IO_RETURN_INT( s, writev(s, vector, count), JNI_TRUE); + } + + int NET_SendTo(int s, const void *msg, int len, unsigned int + flags, const struct sockaddr *to, int tolen) { +- BLOCKING_IO_RETURN_INT( s, sendto(s, msg, len, flags, to, tolen) ); ++ BLOCKING_IO_RETURN_INT( s, sendto(s, msg, len, flags, to, tolen), JNI_TRUE); + } + + int NET_Accept(int s, struct sockaddr *addr, int *addrlen) { + socklen_t socklen = *addrlen; +- BLOCKING_IO_RETURN_INT( s, accept(s, addr, &socklen) ); ++ BLOCKING_IO_RETURN_INT( s, accept(s, addr, &socklen), JNI_TRUE); + *addrlen = socklen; + } + +@@ -490,13 +490,13 @@ int NET_Connect(int s, struct sockaddr *addr, int addrlen) { + + #ifndef USE_SELECT + int NET_Poll(struct pollfd *ufds, unsigned int nfds, int timeout) { +- BLOCKING_IO_RETURN_INT( ufds[0].fd, poll(ufds, nfds, timeout) ); ++ BLOCKING_IO_RETURN_INT( ufds[0].fd, poll(ufds, nfds, timeout), JNI_FALSE); + } + #else + int NET_Select(int s, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *timeout) { + BLOCKING_IO_RETURN_INT( s-1, +- select(s, readfds, writefds, exceptfds, timeout) ); ++ select(s, readfds, writefds, exceptfds, timeout), JNI_FALSE); + } + #endif + +diff --git a/jdk/src/solaris/native/java/net/bsd_close.c b/jdk/src/solaris/native/java/net/bsd_close.c +index 89a20707c..37a6e5688 100644 +--- a/jdk/src/solaris/native/java/net/bsd_close.c ++++ b/jdk/src/solaris/native/java/net/bsd_close.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include "jvm.h" + + /* + * Stack allocated by thread when doing blocking operation +@@ -347,55 +348,55 @@ int NET_SocketClose(int fd) { + /************** Basic I/O operations here ***************/ + + /* +- * Macro to perform a blocking IO operation. Restarts +- * automatically if interrupted by signal (other than +- * our wakeup signal) ++ * Macro to perform a blocking IO operation. ++ * If interrupted by signal (other than our wakeup signal), and if RETRY is true, ++ * then restarts automatically + */ +-#define BLOCKING_IO_RETURN_INT(FD, FUNC) { \ +- int ret; \ +- threadEntry_t self; \ +- fdEntry_t *fdEntry = getFdEntry(FD); \ +- if (fdEntry == NULL) { \ +- errno = EBADF; \ +- return -1; \ +- } \ +- do { \ +- startOp(fdEntry, &self); \ +- ret = FUNC; \ +- endOp(fdEntry, &self); \ +- } while (ret == -1 && errno == EINTR); \ +- return ret; \ ++#define BLOCKING_IO_RETURN_INT(FD, FUNC, RETRY) { \ ++ int ret; \ ++ threadEntry_t self; \ ++ fdEntry_t *fdEntry = getFdEntry(FD); \ ++ if (fdEntry == NULL) { \ ++ errno = EBADF; \ ++ return -1; \ ++ } \ ++ do { \ ++ startOp(fdEntry, &self); \ ++ ret = FUNC; \ ++ endOp(fdEntry, &self); \ ++ } while ((RETRY) && ret == -1 && errno == EINTR); \ ++ return ret; \ + } + + int NET_Read(int s, void* buf, size_t len) { +- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) ); ++ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0), JNI_TRUE); + } + + int NET_NonBlockingRead(int s, void* buf, size_t len) { +- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT)); ++ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT), JNI_TRUE); + } + + int NET_ReadV(int s, const struct iovec * vector, int count) { +- BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) ); ++ BLOCKING_IO_RETURN_INT( s, readv(s, vector, count), JNI_TRUE); + } + + int NET_RecvFrom(int s, void *buf, int len, unsigned int flags, + struct sockaddr *from, int *fromlen) { + /* casting int *fromlen -> socklen_t* Both are ints */ +- BLOCKING_IO_RETURN_INT( s, recvfrom(s, buf, len, flags, from, (socklen_t *)fromlen) ); ++ BLOCKING_IO_RETURN_INT( s, recvfrom(s, buf, len, flags, from, (socklen_t *)fromlen), JNI_TRUE); + } + + int NET_Send(int s, void *msg, int len, unsigned int flags) { +- BLOCKING_IO_RETURN_INT( s, send(s, msg, len, flags) ); ++ BLOCKING_IO_RETURN_INT( s, send(s, msg, len, flags), JNI_TRUE); + } + + int NET_WriteV(int s, const struct iovec * vector, int count) { +- BLOCKING_IO_RETURN_INT( s, writev(s, vector, count) ); ++ BLOCKING_IO_RETURN_INT( s, writev(s, vector, count), JNI_TRUE); + } + + int NET_SendTo(int s, const void *msg, int len, unsigned int + flags, const struct sockaddr *to, int tolen) { +- BLOCKING_IO_RETURN_INT( s, sendto(s, msg, len, flags, to, tolen) ); ++ BLOCKING_IO_RETURN_INT( s, sendto(s, msg, len, flags, to, tolen), JNI_TRUE); + } + + int NET_Accept(int s, struct sockaddr *addr, int *addrlen) { +@@ -403,22 +404,22 @@ int NET_Accept(int s, struct sockaddr *addr, int *addrlen) { + int error = accept(s, addr, &len); + if (error != -1) + *addrlen = (int)len; +- BLOCKING_IO_RETURN_INT( s, error ); ++ BLOCKING_IO_RETURN_INT( s, error, JNI_TRUE); + } + + int NET_Connect(int s, struct sockaddr *addr, int addrlen) { +- BLOCKING_IO_RETURN_INT( s, connect(s, addr, addrlen) ); ++ BLOCKING_IO_RETURN_INT( s, connect(s, addr, addrlen), JNI_TRUE); + } + + #ifndef USE_SELECT + int NET_Poll(struct pollfd *ufds, unsigned int nfds, int timeout) { +- BLOCKING_IO_RETURN_INT( ufds[0].fd, poll(ufds, nfds, timeout) ); ++ BLOCKING_IO_RETURN_INT( ufds[0].fd, poll(ufds, nfds, timeout), JNI_FALSE); + } + #else + int NET_Select(int s, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *timeout) { + BLOCKING_IO_RETURN_INT( s-1, +- select(s, readfds, writefds, exceptfds, timeout) ); ++ select(s, readfds, writefds, exceptfds, timeout), JNI_FALSE); + } + #endif + +diff --git a/jdk/src/solaris/native/java/net/linux_close.c b/jdk/src/solaris/native/java/net/linux_close.c +index f4c53a0d0..2a31b1591 100644 +--- a/jdk/src/solaris/native/java/net/linux_close.c ++++ b/jdk/src/solaris/native/java/net/linux_close.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include "jvm.h" + + /* + * Stack allocated by thread when doing blocking operation +@@ -343,77 +344,77 @@ int NET_SocketClose(int fd) { + /************** Basic I/O operations here ***************/ + + /* +- * Macro to perform a blocking IO operation. Restarts +- * automatically if interrupted by signal (other than +- * our wakeup signal) ++ * Macro to perform a blocking IO operation. ++ * If interrupted by signal (other than our wakeup signal), and if RETRY is true, ++ * then restarts automatically + */ +-#define BLOCKING_IO_RETURN_INT(FD, FUNC) { \ +- int ret; \ +- threadEntry_t self; \ +- fdEntry_t *fdEntry = getFdEntry(FD); \ +- if (fdEntry == NULL) { \ +- errno = EBADF; \ +- return -1; \ +- } \ +- do { \ +- startOp(fdEntry, &self); \ +- ret = FUNC; \ +- endOp(fdEntry, &self); \ +- } while (ret == -1 && errno == EINTR); \ +- return ret; \ ++#define BLOCKING_IO_RETURN_INT(FD, FUNC, RETRY) { \ ++ int ret; \ ++ threadEntry_t self; \ ++ fdEntry_t *fdEntry = getFdEntry(FD); \ ++ if (fdEntry == NULL) { \ ++ errno = EBADF; \ ++ return -1; \ ++ } \ ++ do { \ ++ startOp(fdEntry, &self); \ ++ ret = FUNC; \ ++ endOp(fdEntry, &self); \ ++ } while ((RETRY) && ret == -1 && errno == EINTR); \ ++ return ret; \ + } + + int NET_Read(int s, void* buf, size_t len) { +- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) ); ++ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0), JNI_TRUE); + } + + int NET_NonBlockingRead(int s, void* buf, size_t len) { +- BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT) ); ++ BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT), JNI_TRUE); + } + + int NET_ReadV(int s, const struct iovec * vector, int count) { +- BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) ); ++ BLOCKING_IO_RETURN_INT( s, readv(s, vector, count), JNI_TRUE); + } + + int NET_RecvFrom(int s, void *buf, int len, unsigned int flags, + struct sockaddr *from, int *fromlen) { + socklen_t socklen = *fromlen; +- BLOCKING_IO_RETURN_INT( s, recvfrom(s, buf, len, flags, from, &socklen) ); ++ BLOCKING_IO_RETURN_INT( s, recvfrom(s, buf, len, flags, from, &socklen), JNI_TRUE); + *fromlen = socklen; + } + + int NET_Send(int s, void *msg, int len, unsigned int flags) { +- BLOCKING_IO_RETURN_INT( s, send(s, msg, len, flags) ); ++ BLOCKING_IO_RETURN_INT( s, send(s, msg, len, flags), JNI_TRUE); + } + + int NET_WriteV(int s, const struct iovec * vector, int count) { +- BLOCKING_IO_RETURN_INT( s, writev(s, vector, count) ); ++ BLOCKING_IO_RETURN_INT( s, writev(s, vector, count), JNI_TRUE); + } + + int NET_SendTo(int s, const void *msg, int len, unsigned int + flags, const struct sockaddr *to, int tolen) { +- BLOCKING_IO_RETURN_INT( s, sendto(s, msg, len, flags, to, tolen) ); ++ BLOCKING_IO_RETURN_INT( s, sendto(s, msg, len, flags, to, tolen), JNI_TRUE); + } + + int NET_Accept(int s, struct sockaddr *addr, int *addrlen) { + socklen_t socklen = *addrlen; +- BLOCKING_IO_RETURN_INT( s, accept(s, addr, &socklen) ); ++ BLOCKING_IO_RETURN_INT( s, accept(s, addr, &socklen), JNI_TRUE); + *addrlen = socklen; + } + + int NET_Connect(int s, struct sockaddr *addr, int addrlen) { +- BLOCKING_IO_RETURN_INT( s, connect(s, addr, addrlen) ); ++ BLOCKING_IO_RETURN_INT( s, connect(s, addr, addrlen), JNI_TRUE); + } + + #ifndef USE_SELECT + int NET_Poll(struct pollfd *ufds, unsigned int nfds, int timeout) { +- BLOCKING_IO_RETURN_INT( ufds[0].fd, poll(ufds, nfds, timeout) ); ++ BLOCKING_IO_RETURN_INT( ufds[0].fd, poll(ufds, nfds, timeout), JNI_FALSE); + } + #else + int NET_Select(int s, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *timeout) { + BLOCKING_IO_RETURN_INT( s-1, +- select(s, readfds, writefds, exceptfds, timeout) ); ++ select(s, readfds, writefds, exceptfds, timeout), JNI_FALSE); + } + #endif + +-- +2.22.0 + diff --git a/8312200-Fix-Parse-catch_call_exceptions-memory-leak.patch b/8312200-Fix-Parse-catch_call_exceptions-memory-leak.patch new file mode 100644 index 0000000000000000000000000000000000000000..fb9f3c3002ad4cd74606e1d738992bfcdaae153c --- /dev/null +++ b/8312200-Fix-Parse-catch_call_exceptions-memory-leak.patch @@ -0,0 +1,96 @@ +From c8190e59dbdcb9f52af521994523bae6b893716b Mon Sep 17 00:00:00 2001 +Subject: 8312200: Fix Parse::catch_call_exceptions memory leak + +--- + hotspot/src/share/vm/opto/doCall.cpp | 35 ++++++++++++++-------------- + 1 file changed, 18 insertions(+), 17 deletions(-) + +diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp +index 1b2b77c71..f41e6d386 100644 +--- a/hotspot/src/share/vm/opto/doCall.cpp ++++ b/hotspot/src/share/vm/opto/doCall.cpp +@@ -698,24 +698,25 @@ void Parse::catch_call_exceptions(ciExceptionHandlerStream& handlers) { + Node* i_o = this->i_o(); + + // Add a CatchNode. +- GrowableArray* bcis = new (C->node_arena()) GrowableArray(C->node_arena(), 8, 0, -1); +- GrowableArray* extypes = new (C->node_arena()) GrowableArray(C->node_arena(), 8, 0, NULL); +- GrowableArray* saw_unloaded = new (C->node_arena()) GrowableArray(C->node_arena(), 8, 0, 0); ++ Arena tmp_mem(mtCompiler); ++ GrowableArray bcis(&tmp_mem, 8, 0, -1); ++ GrowableArray extypes(&tmp_mem, 8, 0, NULL); ++ GrowableArray saw_unloaded(&tmp_mem, 8, 0, -1); + + bool default_handler = false; + for (; !handlers.is_done(); handlers.next()) { +- ciExceptionHandler* h = handlers.handler(); +- int h_bci = h->handler_bci(); +- ciInstanceKlass* h_klass = h->is_catch_all() ? env()->Throwable_klass() : h->catch_klass(); ++ ciExceptionHandler* h = handlers.handler(); ++ int h_bci = h->handler_bci(); ++ ciInstanceKlass* h_klass = h->is_catch_all() ? env()->Throwable_klass() : h->catch_klass(); + // Do not introduce unloaded exception types into the graph: + if (!h_klass->is_loaded()) { +- if (saw_unloaded->contains(h_bci)) { ++ if (saw_unloaded.contains(h_bci)) { + /* We've already seen an unloaded exception with h_bci, + so don't duplicate. Duplication will cause the CatchNode to be + unnecessarily large. See 4713716. */ + continue; + } else { +- saw_unloaded->append(h_bci); ++ saw_unloaded.append(h_bci); + } + } + const Type* h_extype = TypeOopPtr::make_from_klass(h_klass); +@@ -723,19 +724,19 @@ void Parse::catch_call_exceptions(ciExceptionHandlerStream& handlers) { + h_extype = h_extype->join(TypeInstPtr::NOTNULL); + assert(!h_extype->empty(), "sanity"); + // Note: It's OK if the BCIs repeat themselves. +- bcis->append(h_bci); +- extypes->append(h_extype); ++ bcis.append(h_bci); ++ extypes.append(h_extype); + if (h_bci == -1) { + default_handler = true; + } + } + + if (!default_handler) { +- bcis->append(-1); +- extypes->append(TypeOopPtr::make_from_klass(env()->Throwable_klass())->is_instptr()); ++ bcis.append(-1); ++ extypes.append(TypeOopPtr::make_from_klass(env()->Throwable_klass())->is_instptr()); + } + +- int len = bcis->length(); ++ int len = bcis.length(); + CatchNode *cn = new (C) CatchNode(control(), i_o, len+1); + Node *catch_ = _gvn.transform(cn); + +@@ -746,18 +747,18 @@ void Parse::catch_call_exceptions(ciExceptionHandlerStream& handlers) { + PreserveJVMState pjvms(this); + // Locals are just copied from before the call. + // Get control from the CatchNode. +- int handler_bci = bcis->at(i); ++ int handler_bci = bcis.at(i); + Node* ctrl = _gvn.transform( new (C) CatchProjNode(catch_, i+1,handler_bci)); + // This handler cannot happen? + if (ctrl == top()) continue; + set_control(ctrl); + + // Create exception oop +- const TypeInstPtr* extype = extypes->at(i)->is_instptr(); +- Node *ex_oop = _gvn.transform(new (C) CreateExNode(extypes->at(i), ctrl, i_o)); ++ const TypeInstPtr* extype = extypes.at(i)->is_instptr(); ++ Node *ex_oop = _gvn.transform(new (C) CreateExNode(extypes.at(i), ctrl, i_o)); + + // Handle unloaded exception classes. +- if (saw_unloaded->contains(handler_bci)) { ++ if (saw_unloaded.contains(handler_bci)) { + // An unloaded exception type is coming here. Do an uncommon trap. + #ifndef PRODUCT + // We do not expect the same handler bci to take both cold unloaded +-- +2.22.0 + diff --git a/8313626-C2-crash-due-to-unexpected-exception-control.patch b/8313626-C2-crash-due-to-unexpected-exception-control.patch new file mode 100644 index 0000000000000000000000000000000000000000..baf3f9465c4eace903145b88c9630016390f4562 --- /dev/null +++ b/8313626-C2-crash-due-to-unexpected-exception-control.patch @@ -0,0 +1,226 @@ +From ca014e842f05da9d929152c7e5f7cd56d30629e5 Mon Sep 17 00:00:00 2001 +Subject: 8313626: C2 crash due to unexpected exception control flow + +--- + hotspot/src/share/vm/opto/doCall.cpp | 4 + + .../compiler/MissingSafepointOnTryCatch.jasm | 112 ++++++++++++++++++ + .../TestMissingSafepointOnTryCatch.java | 66 +++++++++++ + 3 files changed, 182 insertions(+) + create mode 100644 jdk/test/jdk/jfr/event/compiler/MissingSafepointOnTryCatch.jasm + create mode 100644 jdk/test/jdk/jfr/event/compiler/TestMissingSafepointOnTryCatch.java + +diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp +index 1b2b77c71..7a7aba359 100644 +--- a/hotspot/src/share/vm/opto/doCall.cpp ++++ b/hotspot/src/share/vm/opto/doCall.cpp +@@ -892,6 +892,8 @@ void Parse::catch_inline_exceptions(SafePointNode* ex_map) { + tty->print_cr(" Catching every inline exception bci:%d -> handler_bci:%d", bci(), handler_bci); + } + #endif ++ // If this is a backwards branch in the bytecodes, add safepoint ++ maybe_add_safepoint(handler_bci); + merge_exception(handler_bci); // jump to handler + return; // No more handling to be done here! + } +@@ -925,6 +927,8 @@ void Parse::catch_inline_exceptions(SafePointNode* ex_map) { + tty->cr(); + } + #endif ++ // If this is a backwards branch in the bytecodes, add safepoint ++ maybe_add_safepoint(handler_bci); + merge_exception(handler_bci); + } + set_control(not_subtype_ctrl); +diff --git a/jdk/test/jdk/jfr/event/compiler/MissingSafepointOnTryCatch.jasm b/jdk/test/jdk/jfr/event/compiler/MissingSafepointOnTryCatch.jasm +new file mode 100644 +index 000000000..413736e59 +--- /dev/null ++++ b/jdk/test/jdk/jfr/event/compiler/MissingSafepointOnTryCatch.jasm +@@ -0,0 +1,112 @@ ++/* ++ * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++public class MissingSafepointOnTryCatch version 52:0 { ++ ++ static Method m:"()V" { ++ return; ++ } ++ ++ static Method test1:"()V" stack 1 { ++ try t; ++ invokestatic m:"()V"; ++ return; ++ ++ catch t java/lang/Throwable; ++ stack_map class java/lang/Throwable; ++ athrow; ++ endtry t; ++ } ++ ++ static Method test2:"()V" stack 1 { ++ try t0; ++ try t1; ++ invokestatic m:"()V"; ++ endtry t1; ++ return; ++ ++ catch t1 java/lang/Exception; ++ stack_map class java/lang/Exception; ++ return; ++ ++ catch t0 java/lang/Throwable; ++ stack_map class java/lang/Throwable; ++ athrow; ++ endtry t0; ++ } ++ ++ public static Method th:"()V" ++ throws java/lang/Exception ++ stack 2 locals 0 ++ { ++ new class java/lang/Exception; ++ dup; ++ invokespecial Method java/lang/Exception."":"()V"; ++ athrow; ++ } ++ ++ static Method test3:"()V" stack 1 locals 2 { ++ try t; ++ invokestatic m:"()V"; ++ iconst_1; ++ istore_0; ++ iconst_0; ++ istore_1; ++ return; ++ catch t java/lang/Throwable; ++ stack_map class java/lang/Throwable; ++ invokestatic th:"()V"; ++ return; ++ endtry t; ++ } ++ ++ static Method test4:"()V" stack 2 locals 2 { ++ try t; ++ invokestatic m:"()V"; ++ iconst_1; ++ istore_0; ++ iconst_0; ++ istore_1; ++ return; ++ catch t java/lang/Throwable; ++ stack_map class java/lang/Throwable; ++ iconst_1; ++ istore_0; ++ invokestatic th:"()V"; ++ return; ++ endtry t; ++ } ++ ++ static Method testInfinite:"()V" stack 1 { ++ try t; ++ invokestatic th:"()V"; ++ return; ++ ++ catch t java/lang/Throwable; ++ stack_map class java/lang/Throwable; ++ athrow; ++ endtry t; ++ } ++ ++} // end Class MissingSafepointOnTryCatch +diff --git a/jdk/test/jdk/jfr/event/compiler/TestMissingSafepointOnTryCatch.java b/jdk/test/jdk/jfr/event/compiler/TestMissingSafepointOnTryCatch.java +new file mode 100644 +index 000000000..fa579b7d4 +--- /dev/null ++++ b/jdk/test/jdk/jfr/event/compiler/TestMissingSafepointOnTryCatch.java +@@ -0,0 +1,66 @@ ++/* ++ * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 8313626 ++ * @library /lib / ++ * @summary assert(false) failed: malformed control flow to missing safepoint on backedge of a try-catch ++ * @compile MissingSafepointOnTryCatch.jasm ++ * @run main/othervm -XX:CompileCommand=quiet ++ * -XX:CompileCommand=compileonly,MissingSafepointOnTryCatch::test* ++ * -XX:CompileCommand=dontinline,MissingSafepointOnTryCatch::m ++ * -XX:CompileCommand=inline,MissingSafepointOnTryCatch::th ++ * -XX:-TieredCompilation -Xcomp TestMissingSafepointOnTryCatch ++ */ ++ ++import jdk.test.lib.Utils; ++ ++public class TestMissingSafepointOnTryCatch { ++ ++ public static void infiniteLoop() { ++ try { ++ Thread thread = new Thread() { ++ public void run() { ++ MissingSafepointOnTryCatch.testInfinite(); ++ } ++ }; ++ thread.setDaemon(true); ++ thread.start(); ++ Thread.sleep(Utils.adjustTimeout(500)); ++ } catch (Exception e) {} ++ } ++ ++ public static void main(String[] args) { ++ try { ++ // to make sure java/lang/Exception class is resolved ++ MissingSafepointOnTryCatch.th(); ++ } catch (Exception e) {} ++ MissingSafepointOnTryCatch.test1(); ++ MissingSafepointOnTryCatch.test2(); ++ MissingSafepointOnTryCatch.test3(); ++ MissingSafepointOnTryCatch.test4(); ++ infiniteLoop(); ++ } ++} +-- +2.22.0 + diff --git a/8314236-Overflow-in-Collections.rotate.patch b/8314236-Overflow-in-Collections.rotate.patch new file mode 100644 index 0000000000000000000000000000000000000000..4a2fb30aa346c46f0f2716abe660848bce780a36 --- /dev/null +++ b/8314236-Overflow-in-Collections.rotate.patch @@ -0,0 +1,127 @@ +From 11bd45aac555a00c705c8bf480a179bb063b1c44 Mon Sep 17 00:00:00 2001 +Subject: 8314236: Overflow in Collections.rotate +--- + .../share/classes/java/util/Collections.java | 9 +- + .../java/util/Collections/RotateHuge.java | 85 +++++++++++++++++++ + 2 files changed, 90 insertions(+), 4 deletions(-) + create mode 100644 jdk/test/java/util/Collections/RotateHuge.java + +diff --git a/jdk/src/share/classes/java/util/Collections.java b/jdk/src/share/classes/java/util/Collections.java +index 3ab4c5ec0..9aa373841 100644 +--- a/jdk/src/share/classes/java/util/Collections.java ++++ b/jdk/src/share/classes/java/util/Collections.java +@@ -789,15 +789,16 @@ public class Collections { + if (distance == 0) + return; + +- for (int cycleStart = 0, nMoved = 0; nMoved != size; cycleStart++) { ++ int bound = size - distance; ++ for (int cycleStart = 0, nMoved = 0; nMoved < size; cycleStart++) { + T displaced = list.get(cycleStart); + int i = cycleStart; + do { +- i += distance; +- if (i >= size) ++ if (i >= bound) + i -= size; ++ i += distance; + displaced = list.set(i, displaced); +- nMoved ++; ++ nMoved++; + } while (i != cycleStart); + } + } +diff --git a/jdk/test/java/util/Collections/RotateHuge.java b/jdk/test/java/util/Collections/RotateHuge.java +new file mode 100644 +index 000000000..a6f8f739c +--- /dev/null ++++ b/jdk/test/java/util/Collections/RotateHuge.java +@@ -0,0 +1,85 @@ ++/* ++ * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 8314236 ++ * @summary Overflow in Collections.rotate ++ */ ++ ++import com.sun.crypto.provider.Preconditions; ++ ++import java.util.AbstractList; ++import java.util.Collections; ++import java.util.List; ++import java.util.RandomAccess; ++ ++public class RotateHuge { ++ ++ private static final class MockList extends AbstractList ++ implements RandomAccess { ++ private final int size; ++ ++ public MockList(final int size) { ++ if (size < 0) ++ throw new IllegalArgumentException("Illegal size: " + size); ++ this.size = size; ++ } ++ ++ @Override ++ public Object get(final int index) { ++ Preconditions.checkIndex(index, size, null); ++ return null; ++ } ++ ++ @Override ++ public Object set(final int index, final Object element) { ++ Preconditions.checkIndex(index, size, null); ++ return null; ++ } ++ ++ @Override ++ public int size() { ++ return size; ++ } ++ } ++ ++ public static void main(final String[] args) { ++ testRotate((1 << 30) + 1, -(1 << 30) - 2); ++ testRotate((1 << 30) + 1, 1 << 30); ++ testRotate(Integer.MAX_VALUE, Integer.MIN_VALUE); ++ testRotate(Integer.MAX_VALUE, Integer.MIN_VALUE + 3); ++ testRotate(Integer.MAX_VALUE, 2); ++ testRotate(Integer.MAX_VALUE, Integer.MAX_VALUE - 1); ++ } ++ ++ /* ++ * This test covers only index computations. ++ * Correctness of elements rotation is not checked. ++ */ ++ private static void testRotate(final int size, final int distance) { ++ final List list = new MockList(size); ++ Collections.rotate(list, distance); ++ } ++} +-- +2.22.0 + diff --git a/Add-CMS-s-trim-test-cases-and-fix-failure.patch b/Add-CMS-s-trim-test-cases-and-fix-failure.patch new file mode 100644 index 0000000000000000000000000000000000000000..c12debf8359131803a535f8e0cb4e79490456f7f --- /dev/null +++ b/Add-CMS-s-trim-test-cases-and-fix-failure.patch @@ -0,0 +1,219 @@ +From 69b1d2f90f27a9158bc16d549dd0afc7a4e955a8 Mon Sep 17 00:00:00 2001 +From: d30023828 +Date: Sat, 28 Jan 2023 15:47:20 +0800 +Subject: [PATCH 1/6] Add CMS's trim test cases and fix failure + +DTS/AR: DTS2022120810426 +Summary: : Add CMS's trim test cases and fix failure +LLT: NA +Patch Type: huawei +Bug url: NA +--- + hotspot/test/gc/TestTrimNative.java | 77 ++++++++++++++++++++++------- + 1 file changed, 58 insertions(+), 19 deletions(-) + +diff --git a/hotspot/test/gc/TestTrimNative.java b/hotspot/test/gc/TestTrimNative.java +index 58d540527..e0ac7734b 100644 +--- a/hotspot/test/gc/TestTrimNative.java ++++ b/hotspot/test/gc/TestTrimNative.java +@@ -41,7 +41,7 @@ package gc; + /* + * @test id=fullgc-serial + * @summary Test that GCTrimNativeHeap works with Serial +- * @requires vm.gc=="Serial" ++ * @requires vm.gc=="Serial" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary +@@ -51,17 +51,27 @@ package gc; + /* + * @test id=fullgc-parallel + * @summary Test that GCTrimNativeHeap works with Parallel +- * @requires vm.gc=="Parallel" ++ * @requires vm.gc=="Parallel" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-fullgc parallel + */ + ++ /* ++ * @test id=fullgc-concMarkSweep ++ * @summary Test that GCTrimNativeHeap works with concMarkSweep ++ * @requires vm.gc=="ConcMarkSweep" | vm.gc=="null" ++ * @requires os.family=="linux" ++ * @modules java.base/jdk.internal.misc ++ * @library /testlibrary ++ * @run driver gc.TestTrimNative test-fullgc concMarkSweep ++ */ ++ + /* + * @test id=fullgc-g1 + * @summary Test that GCTrimNativeHeap works with G1 +- * @requires vm.gc=="G1" ++ * @requires vm.gc=="G1" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary +@@ -75,17 +85,27 @@ package gc; + /* + * @test id=auto-parallel + * @summary Test that GCTrimNativeHeap works with Parallel +- * @requires vm.gc=="Parallel" ++ * @requires vm.gc=="Parallel" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-auto parallel + */ + ++ /* ++ * @test id=auto-concMarkSweep ++ * @summary Test that GCTrimNativeHeap works with concMarkSweep ++ * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null" ++ * @requires os.family=="linux" ++ * @modules java.base/jdk.internal.misc ++ * @library /testlibrary ++ * @run driver gc.TestTrimNative test-auto concMarkSweep ++ */ ++ + /* + * @test id=auto-g1 + * @summary Test that GCTrimNativeHeap works with G1 +- * @requires vm.gc=="G1" ++ * @requires vm.gc=="G1" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary +@@ -100,17 +120,27 @@ package gc; + /* + * @test id=auto-high-interval-parallel + * @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming +- * @requires vm.gc=="Parallel" ++ * @requires vm.gc=="Parallel" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-auto-high-interval parallel + */ + ++/* ++ * @test id=auto-high-interval-concMarkSweep ++ * @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming ++ * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null" ++ * @requires os.family=="linux" ++ * @modules java.base/jdk.internal.misc ++ * @library /testlibrary ++ * @run driver gc.TestTrimNative test-auto-high-interval concMarkSweep ++ */ ++ + /* + * @test id=auto-high-interval-g1 + * @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming +- * @requires vm.gc=="G1" ++ * @requires vm.gc=="G1" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary +@@ -124,17 +154,27 @@ package gc; + /* + * @test id=auto-zero-interval-parallel + * @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming +- * @requires vm.gc=="Parallel" ++ * @requires vm.gc=="Parallel" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-auto-zero-interval parallel + */ + ++/* ++ * @test id=auto-zero-interval-concMarkSweep ++ * @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming ++ * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null" ++ * @requires os.family=="linux" ++ * @modules java.base/jdk.internal.misc ++ * @library /testlibrary ++ * @run driver gc.TestTrimNative test-auto-zero-interval concMarkSweep ++ */ ++ + /* + * @test id=auto-zero-interval-g1 + * @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming +- * @requires vm.gc=="G1" ++ * @requires vm.gc=="G1" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary +@@ -196,20 +236,19 @@ public class TestTrimNative { + } + + enum GC { +- serial, parallel, g1, shenandoah, z; ++ serial, parallel, g1, concMarkSweep; + String getSwitchName() { + String s = name(); + return "-XX:+Use" + s.substring(0, 1).toUpperCase() + s.substring(1) + "GC"; + } +- boolean isZ() { return this == GC.z; } + boolean isSerial() { return this == GC.serial; } + boolean isParallel() { return this == GC.parallel; } + boolean isG1() { return this == GC.g1; } +- boolean isShenandoah() { return this == GC.shenandoah; } ++ boolean isConcMarkSweep() { return this == GC.concMarkSweep; } + } + + static private boolean usesNativeTrimmer(GC gc) { +- return gc.isG1() || gc.isParallel() || gc.isZ(); ++ return gc.isG1() || gc.isParallel() || gc.isConcMarkSweep(); + } + + static private final OutputAnalyzer runTestWithOptions(String[] extraOptions, String[] testArgs) throws Exception { +@@ -234,7 +273,7 @@ public class TestTrimNative { + /** + * Given JVM output, look for a log line that describes a successful negative trim in the megabyte range + * like this: +- * "[2.053s][debug][gc,trim] Trim native heap (retain size: 5120K): RSS+Swap: 271M->223M (-49112K), 2.834ms" ++ * "Trim native heap (retain size: 5120K): RSS+Swap: 271M->223M (-49112K), 2.834ms" + * (Note: we use the "properXXX" print routines, therefore units can differ) + * Check that the sum of all trim log lines comes to a total RSS reduction in the MB range + * @param output +@@ -244,7 +283,7 @@ public class TestTrimNative { + private final static void parseOutputAndLookForNegativeTrim(OutputAnalyzer output, int minExpected, int maxExpected) { + output.reportDiagnosticSummary(); + List lines = output.asLines(); +- Pattern pat = Pattern.compile(".*\\[gc,trim\\] Trim native heap.*RSS\\+Swap: (\\d+)([KMB])->(\\d+)([KMB]).*"); ++ Pattern pat = Pattern.compile(".*Trim native heap.*RSS\\+Swap: (\\d+)([KMB])->(\\d+)([KMB]).*"); + int numTrimsFound = 0; + long rssReductionTotal = 0; + for (String line : lines) { +@@ -270,7 +309,7 @@ public class TestTrimNative { + // This is very fuzzy. We malloced X, free'd X, trimmed, measured the combined effect of all reductions. + // This does not take into effect mallocs or frees that may happen concurrently. But we expect to see *some* + // reduction somewhere. Test with a fudge factor. +- float fudge = 0.8f; ++ float fudge = 0.25f; + long expectedMinimalReduction = (long) (totalAllocationsSize * fudge); + if (rssReductionTotal < expectedMinimalReduction) { + throw new RuntimeException("We did not see the expected RSS reduction in the UL log. Expected (with fudge)" + +@@ -293,8 +332,8 @@ public class TestTrimNative { + // started and shut down properly. + if (usesNativeTrimmer(gc)) { + output.shouldContain("NativeTrimmer started"); +- output.shouldContain("NativeTrimmer paused"); +- output.shouldContain("NativeTrimmer unpaused"); ++ //Only debug version JDK contains this item: output.shouldContain("NativeTrimmer paused"); ++ //Only debug version JDK contains this item: output.shouldContain("NativeTrimmer unpaused"); + output.shouldContain("NativeTrimmer stopped"); + } else { + output.shouldNotContain("NativeTrimmer"); +@@ -432,4 +471,4 @@ public class TestTrimNative { + + } + +-} +\ No newline at end of file ++} +-- +2.22.0 + diff --git a/Add-CaptchaTest-and-fix-KAE-Testcases.patch b/Add-CaptchaTest-and-fix-KAE-Testcases.patch new file mode 100644 index 0000000000000000000000000000000000000000..581ff621bce1f6e83989770face0b9f369ee22c4 --- /dev/null +++ b/Add-CaptchaTest-and-fix-KAE-Testcases.patch @@ -0,0 +1,135 @@ +diff --git a/jdk/test/java/awt/FontClass/CaptchaTest.java b/jdk/test/java/awt/FontClass/CaptchaTest.java +new file mode 100644 +index 000000000..7f2ed1275 +--- /dev/null ++++ b/jdk/test/java/awt/FontClass/CaptchaTest.java +@@ -0,0 +1,53 @@ ++/* ++ * Copyright © 2023 Xiaotao NAN. All rights reserved. ++ */ ++import java.awt.Graphics2D; ++import java.awt.Color; ++import java.awt.Font; ++import java.awt.image.BufferedImage; ++import java.io.IOException; ++import java.util.Random; ++ ++/* ++ * @test ++ * @summary Check if the captcha can be successfully generated ++ * @author XiaotaoNAN ++ * I8ME2N(https://gitee.com/openeuler/bishengjdk-8/issues/I8ME2N?from=project-issue) ++ */ ++ ++public class CaptchaTest { ++ ++ /** ++ * Check if the captcha can be successfully generated. ++ * @param n the number of digits int the captcha. ++ * @param fontName the font name. ++ * @throws IOException ++ */ ++ public static String captchaTest(int n,String fontName) throws IOException { ++ int width = 100, height = 50; ++ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); ++ Graphics2D g = image.createGraphics(); ++ g.setColor(Color.LIGHT_GRAY); ++ g.fillRect(0, 0, width, height); ++ String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; ++ Random random = new Random(); ++ StringBuilder sbuffer = new StringBuilder(); ++ for (int i = 0; i < n; i++) { ++ int index = random.nextInt(chars.length()); ++ char c = chars.charAt(index); ++ sbuffer.append(c); ++ g.setColor(new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255))); ++ g.setFont(new Font(fontName, Font.BOLD, 25)); ++ g.drawString(Character.toString(c), 20 + i * 15, 25); ++ } ++ image.flush(); ++ g.dispose(); ++ return sbuffer.toString(); ++ } ++ ++ public static void main(String[] args) throws IOException { ++ String captcha = captchaTest(4,"Times New Roman"); ++ System.out.println(captcha); ++ } ++ ++} +diff --git a/jdk/test/java/security/Provider/SunJCEValidator.java b/jdk/test/java/security/Provider/SunJCEValidator.java +index 314abb380..e6b9f18ad 100644 +--- a/jdk/test/java/security/Provider/SunJCEValidator.java ++++ b/jdk/test/java/security/Provider/SunJCEValidator.java +@@ -37,10 +37,10 @@ + *- @TestCaseType:Function test + *- @RequirementID:AR.SR.IREQ02758058.001.001 + *- @RequirementName: java.security.Provider.getService() is synchronized and became scalability bottleneck +- *- @Condition:JDK8u302及以后 +- *- @Brief:测试相应provider更改底层架构以后所提供的service是否与原先有差异(以openJDK8u302为准) +- * -#step:比较openJDK8u302 SunJceProvider与此特性修改后的SunJceProvider所提供的service是否一致 +- *- @Expect:正常运行 ++ *- @Condition:JDK8u302 and later ++ *- @Brief:Check whether the service provided by the corresponding provider after changing the underlying architecture is different from the original one (subject to openJDK8u302) ++ * -#step:Compare whether the service provided by openJDK8u302 SunJceProvider is consistent with the modified SunJceProvider with this feature ++ *- @Expect:Normal Running + *- @Priority:Level 1 + */ + +diff --git a/jdk/test/java/security/Provider/SunJSSEValidator.java b/jdk/test/java/security/Provider/SunJSSEValidator.java +index 5817c3b7f..0cf0663a4 100644 +--- a/jdk/test/java/security/Provider/SunJSSEValidator.java ++++ b/jdk/test/java/security/Provider/SunJSSEValidator.java +@@ -37,10 +37,10 @@ + *- @TestCaseType:Function test + *- @RequirementID:AR.SR.IREQ02758058.001.001 + *- @RequirementName: java.security.Provider.getService() is synchronized and became scalability bottleneck +- *- @Condition:JDK8u302及以后 +- *- @Brief:测试相应provider更改底层架构以后所提供的service是否与原先有差异(以openJDK8u302为准) +- * -#step:比较openJDK8u302 SunJSSEProvider与此特性修改后的SunJSSEProvider所提供的service是否一致 +- *- @Expect:正常运行 ++ *- @Condition:JDK8u302 and later ++ *- @Brief:Check whether the service provided by the corresponding provider after changing the underlying architecture is different from the original one (subject to openJDK8u302) ++ * -#step:Compare whether the service provided by openJDK8u302 SunJSSEProvider is consistent with the modified SunJSSEProvider with this feature ++ *- @Expect:Normal Running + *- @Priority:Level 1 + */ + +diff --git a/jdk/test/java/security/Provider/SunRsaSignValidator.java b/jdk/test/java/security/Provider/SunRsaSignValidator.java +index 66fb33a44..ddcf6107b 100644 +--- a/jdk/test/java/security/Provider/SunRsaSignValidator.java ++++ b/jdk/test/java/security/Provider/SunRsaSignValidator.java +@@ -37,10 +37,10 @@ + *- @TestCaseType:Function test + *- @RequirementID:AR.SR.IREQ02758058.001.001 + *- @RequirementName: java.security.Provider.getService() is synchronized and became scalability bottleneck +- *- @Condition:JDK8u302及以后 +- *- @Brief:测试相应provider更改底层架构以后所提供的service是否与原先有差异(以openJDK8u302为准) +- * -#step:比较openJDK8u302 SunRsaSignProvider与此特性修改后的SunRsaSignProvider所提供的service是否一致 +- *- @Expect:正常运行 ++ *- @Condition:JDK8u302 and later ++ *- @Brief:Check whether the service provided by the corresponding provider after changing the underlying architecture is different from the original one (subject to openJDK8u302). ++ * -#step:Compare whether the service provided by openJDK8u302 SunRsaSignProvider is consistent with the modified SunRsaSignProvider with this feature. ++ *- @Expect:Normal Running. + *- @Priority:Level 1 + */ + +diff --git a/jdk/test/java/security/Provider/SunValidator.java b/jdk/test/java/security/Provider/SunValidator.java +index 3f4b81222..b1fc38303 100644 +--- a/jdk/test/java/security/Provider/SunValidator.java ++++ b/jdk/test/java/security/Provider/SunValidator.java +@@ -37,10 +37,10 @@ + *- @TestCaseType:Function test + *- @RequirementID:AR.SR.IREQ02758058.001.001 + *- @RequirementName: java.security.Provider.getService() is synchronized and became scalability bottleneck +- *- @Condition:JDK8u302及以后 +- *- @Brief:测试相应provider更改底层架构以后所提供的service是否与原先有差异(以openJDK8u302为准) +- * -#step:比较openJDK8u302 SunProvider与此特性修改后的SunProvider所提供的service是否一致 +- *- @Expect:正常运行 ++ *- @Condition:JDK8u302 and later ++ *- @Brief:Check whether the service provided by the corresponding provider after changing the underlying architecture is different from the original one (subject to openJDK8u302). ++ * -#step:Compare whether the service provided by openJDK8u302 SunProvider is consistent with the modified SunProvider with this feature. ++ *- @Expect:Normal Running. + *- @Priority:Level 1 + */ + diff --git a/Add-Problemlist.patch b/Add-Problemlist.patch new file mode 100644 index 0000000000000000000000000000000000000000..0126e975b6c45828abb174ec2dd084f9ab373543 --- /dev/null +++ b/Add-Problemlist.patch @@ -0,0 +1,17639 @@ +From 361253b905e9ecf4094df381d9c860a59deb8227 Mon Sep 17 00:00:00 2001 +From: kuenking111 +Date: Mon, 4 Dec 2023 17:17:42 +0800 +Subject: Add Problemlist + +--- + jdk/test/problemlist/CentOS-7.txt | 1866 ++++++++++++++++++++++ + jdk/test/problemlist/CentOS-9.txt | 1280 ++++++++++++++++ + jdk/test/problemlist/EulerR10.txt | 1274 +++++++++++++++ + jdk/test/problemlist/EulerR11.txt | 1856 ++++++++++++++++++++++ + jdk/test/problemlist/kylinV10.txt | 1872 +++++++++++++++++++++++ + jdk/test/problemlist/openEuler-2003.txt | 1860 ++++++++++++++++++++++ + jdk/test/problemlist/openEuler-2203.txt | 1271 +++++++++++++++ + jdk/test/problemlist/suse-15sp4.txt | 1271 +++++++++++++++ + jdk/test/problemlist/ubuntu-2004.txt | 1851 ++++++++++++++++++++++ + jdk/test/problemlist/ubuntu-2204.txt | 1857 ++++++++++++++++++++++ + jdk/test/problemlist/uos.txt | 1271 +++++++++++++++ + 11 files changed, 17529 insertions(+) + create mode 100644 jdk/test/problemlist/CentOS-7.txt + create mode 100644 jdk/test/problemlist/CentOS-9.txt + create mode 100644 jdk/test/problemlist/EulerR10.txt + create mode 100644 jdk/test/problemlist/EulerR11.txt + create mode 100644 jdk/test/problemlist/kylinV10.txt + create mode 100644 jdk/test/problemlist/openEuler-2003.txt + create mode 100644 jdk/test/problemlist/openEuler-2203.txt + create mode 100644 jdk/test/problemlist/suse-15sp4.txt + create mode 100644 jdk/test/problemlist/ubuntu-2004.txt + create mode 100644 jdk/test/problemlist/ubuntu-2204.txt + create mode 100644 jdk/test/problemlist/uos.txt + +diff --git a/jdk/test/problemlist/CentOS-7.txt b/jdk/test/problemlist/CentOS-7.txt +new file mode 100644 +index 000000000..8df33e751 +--- /dev/null ++++ b/jdk/test/problemlist/CentOS-7.txt +@@ -0,0 +1,1866 @@ ++compiler/c2/TestNegativeStringBuilderCapacity.java ++gc/survivorAlignment/TestPromotionToSurvivor.java ++runtime/6929067/Test6929067.sh ++runtime/InitialThreadOverflow/testme.sh ++serviceability/dcmd/ClassLoaderHierarchyTest.java ++serviceability/dcmd/MallocInfoTest.java ++serviceability/dcmd/PerfMapTest.java ++serviceability/dcmd/TrimLibcHeapTest.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapTimeoutTest.java ++com/sun/jndi/ldap/NamingExceptionMessageTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++demo/zipfs/LargeCompressedEntrySizeTest.java ++demo/zipfs/ZipFSPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/MonospacedGlyphWidth/MonospacedGlyphWidthTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/io/BufferedReader/Lines.java ++java/io/LineNumberReader/MarkSplitCRLF.java ++java/io/Serializable/serialFilter/CheckArrayTest.java ++java/io/Serializable/serialFilter/CheckInputOrderTest.java ++java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java ++java/io/Serializable/serialFilter/GlobalFilterTest.java ++java/io/Serializable/serialFilter/MixedFiltersTest.java ++java/io/Serializable/serialFilter/SerialFilterTest.java ++java/lang/CharSequence/DefaultTest.java ++java/lang/IntegralPrimitiveToString.java ++java/lang/PrimitiveSumMinMaxTest.java ++java/lang/String/StringJoinTest.java ++java/lang/StringBuilder/Capacity.java ++java/lang/Thread/StopThrowable.java ++java/lang/ThreadLocal/ThreadLocalSupplierTest.java ++java/lang/annotation/AnnotationWithLambda.java ++java/lang/annotation/TypeVariableBounds.java ++java/lang/annotation/typeAnnotations/BadCPIndex.java ++java/lang/annotation/typeAnnotations/ConstructorReceiverTest.java ++java/lang/annotation/typeAnnotations/TestExecutableGetAnnotatedType.java ++java/lang/invoke/AccessControlTest.java ++java/lang/invoke/ArrayConstructorTest.java ++java/lang/invoke/ClassValueTest.java ++java/lang/invoke/InvokeGenericTest.java ++java/lang/invoke/JavaDocExamplesTest.java ++java/lang/invoke/MethodHandlesProxiesTest.java ++java/lang/invoke/MethodTypeTest.java ++java/lang/invoke/PermuteArgsReturnVoidTest.java ++java/lang/invoke/PermuteArgsTest.java ++java/lang/invoke/ThrowExceptionsTest.java ++java/lang/invoke/lambda/LogGeneratedClassesTest.java ++java/lang/invoke/lookup/TestDefenderMethodLookup.java ++java/lang/reflect/DefaultMethodMembers/FilterNotMostSpecific.java ++java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java ++java/lang/reflect/Generics/ThreadSafety.java ++java/lang/reflect/annotationSharing/AnnotationSharing.java ++java/math/BigDecimal/Constructor.java ++java/math/BigInteger/LargeValueExceptions.java ++java/net/SocketPermission/SocketPermissionTest.java ++java/net/Socks/SocksIPv6Test.java ++java/nio/Buffer/Chars.java ++java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java ++java/nio/channels/SocketChannel/AdaptSocketReadAfterClose.java ++java/nio/file/Files/BytesAndLines.java ++java/nio/file/Files/StreamTest.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/rmi/MarshalledObject/MOFilterTest.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/registry/serialFilter/RegistryFilterTest.java ++java/rmi/testlibrary/TestSocketFactory.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++java/security/AccessController/LimitedDoPrivilegedWithNullPerms.java ++java/sql/testng/test/sql/BatchUpdateExceptionTests.java ++java/sql/testng/test/sql/DataTruncationTests.java ++java/sql/testng/test/sql/DateTests.java ++java/sql/testng/test/sql/DriverManagerPermissionsTests.java ++java/sql/testng/test/sql/DriverManagerTests.java ++java/sql/testng/test/sql/SQLClientInfoExceptionTests.java ++java/sql/testng/test/sql/SQLDataExceptionTests.java ++java/sql/testng/test/sql/SQLExceptionTests.java ++java/sql/testng/test/sql/SQLFeatureNotSupportedExceptionTests.java ++java/sql/testng/test/sql/SQLIntegrityConstraintViolationExceptionTests.java ++java/sql/testng/test/sql/SQLInvalidAuthorizationSpecExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientExceptionTests.java ++java/sql/testng/test/sql/SQLRecoverableExceptionTests.java ++java/sql/testng/test/sql/SQLSyntaxErrorExceptionTests.java ++java/sql/testng/test/sql/SQLTimeoutExceptionTests.java ++java/sql/testng/test/sql/SQLTransactionRollbackExceptionTests.java ++java/sql/testng/test/sql/SQLTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLTransientExceptionTests.java ++java/sql/testng/test/sql/SQLWarningTests.java ++java/sql/testng/test/sql/TimeTests.java ++java/sql/testng/test/sql/TimestampTests.java ++java/sql/testng/util/BaseTest.java ++java/sql/testng/util/DriverActionImpl.java ++java/sql/testng/util/SerializedBatchUpdateException.java ++java/sql/testng/util/StubConnection.java ++java/sql/testng/util/StubDriver.java ++java/sql/testng/util/StubDriverDA.java ++java/sql/testng/util/TestPolicy.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/text/Format/DateFormat/LocaleDateFormats.java ++java/text/Format/DateFormat/SimpleDateFormatPatternTest.java ++java/time/tck/java/time/AbstractDateTimeTest.java ++java/time/tck/java/time/AbstractTCKTest.java ++java/time/tck/java/time/MockSimplePeriod.java ++java/time/tck/java/time/TCKClock.java ++java/time/tck/java/time/TCKClock_Fixed.java ++java/time/tck/java/time/TCKClock_Offset.java ++java/time/tck/java/time/TCKClock_System.java ++java/time/tck/java/time/TCKClock_Tick.java ++java/time/tck/java/time/TCKDayOfWeek.java ++java/time/tck/java/time/TCKDuration.java ++java/time/tck/java/time/TCKInstant.java ++java/time/tck/java/time/TCKLocalDate.java ++java/time/tck/java/time/TCKLocalDateTime.java ++java/time/tck/java/time/TCKLocalTime.java ++java/time/tck/java/time/TCKMonth.java ++java/time/tck/java/time/TCKMonthDay.java ++java/time/tck/java/time/TCKOffsetDateTime.java ++java/time/tck/java/time/TCKOffsetTime.java ++java/time/tck/java/time/TCKPeriod.java ++java/time/tck/java/time/TCKYear.java ++java/time/tck/java/time/TCKYearMonth.java ++java/time/tck/java/time/TCKZoneId.java ++java/time/tck/java/time/TCKZoneOffset.java ++java/time/tck/java/time/TCKZonedDateTime.java ++java/time/tck/java/time/TestIsoChronology.java ++java/time/tck/java/time/chrono/CopticChronology.java ++java/time/tck/java/time/chrono/CopticDate.java ++java/time/tck/java/time/chrono/CopticEra.java ++java/time/tck/java/time/chrono/TCKChronoLocalDate.java ++java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ++java/time/tck/java/time/chrono/TCKChronoPeriod.java ++java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ++java/time/tck/java/time/chrono/TCKChronology.java ++java/time/tck/java/time/chrono/TCKHijrahChronology.java ++java/time/tck/java/time/chrono/TCKHijrahEra.java ++java/time/tck/java/time/chrono/TCKIsoChronology.java ++java/time/tck/java/time/chrono/TCKIsoEra.java ++java/time/tck/java/time/chrono/TCKJapaneseChronology.java ++java/time/tck/java/time/chrono/TCKJapaneseEra.java ++java/time/tck/java/time/chrono/TCKMinguoChronology.java ++java/time/tck/java/time/chrono/TCKMinguoEra.java ++java/time/tck/java/time/chrono/TCKTestServiceLoader.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistEra.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoZonedDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java ++java/time/tck/java/time/chrono/serial/TCKCopticSerialization.java ++java/time/tck/java/time/chrono/serial/TCKEraSerialization.java ++java/time/tck/java/time/format/TCKChronoPrinterParser.java ++java/time/tck/java/time/format/TCKDateTimeFormatter.java ++java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ++java/time/tck/java/time/format/TCKDateTimeFormatters.java ++java/time/tck/java/time/format/TCKDateTimeParseResolver.java ++java/time/tck/java/time/format/TCKDateTimeTextPrinting.java ++java/time/tck/java/time/format/TCKDecimalStyle.java ++java/time/tck/java/time/format/TCKFormatStyle.java ++java/time/tck/java/time/format/TCKInstantPrinterParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldPrinter.java ++java/time/tck/java/time/format/TCKLocalizedPrinterParser.java ++java/time/tck/java/time/format/TCKOffsetPrinterParser.java ++java/time/tck/java/time/format/TCKPadPrinterParser.java ++java/time/tck/java/time/format/TCKResolverStyle.java ++java/time/tck/java/time/format/TCKSignStyle.java ++java/time/tck/java/time/format/TCKTextStyle.java ++java/time/tck/java/time/format/TCKZoneIdPrinterParser.java ++java/time/tck/java/time/serial/TCKClockSerialization.java ++java/time/tck/java/time/serial/TCKDurationSerialization.java ++java/time/tck/java/time/serial/TCKInstantSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKLocalTimeSerialization.java ++java/time/tck/java/time/serial/TCKMonthDaySerialization.java ++java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java ++java/time/tck/java/time/serial/TCKPeriodSerialization.java ++java/time/tck/java/time/serial/TCKYearMonthSerialization.java ++java/time/tck/java/time/serial/TCKYearSerialization.java ++java/time/tck/java/time/serial/TCKZoneIdSerialization.java ++java/time/tck/java/time/serial/TCKZoneOffsetSerialization.java ++java/time/tck/java/time/serial/TCKZonedDateTimeSerialization.java ++java/time/tck/java/time/temporal/TCKChronoField.java ++java/time/tck/java/time/temporal/TCKChronoUnit.java ++java/time/tck/java/time/temporal/TCKIsoFields.java ++java/time/tck/java/time/temporal/TCKJulianFields.java ++java/time/tck/java/time/temporal/TCKTemporalAdjusters.java ++java/time/tck/java/time/temporal/TCKWeekFields.java ++java/time/tck/java/time/temporal/serial/TCKChronoFieldSerialization.java ++java/time/tck/java/time/temporal/serial/TCKChronoUnitSerialization.java ++java/time/tck/java/time/temporal/serial/TCKJulianFieldsSerialization.java ++java/time/tck/java/time/temporal/serial/TCKValueRangeSerialization.java ++java/time/tck/java/time/temporal/serial/TCKWeekFieldsSerialization.java ++java/time/tck/java/time/zone/TCKFixedZoneRules.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ++java/time/tck/java/time/zone/TCKZoneRules.java ++java/time/tck/java/time/zone/TCKZoneRulesProvider.java ++java/time/tck/java/time/zone/serial/TCKFixedZoneRulesSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRuleSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneRulesSerialization.java ++java/time/test/java/time/AbstractTest.java ++java/time/test/java/time/MockSimplePeriod.java ++java/time/test/java/time/TestClock_Fixed.java ++java/time/test/java/time/TestClock_Offset.java ++java/time/test/java/time/TestClock_System.java ++java/time/test/java/time/TestClock_Tick.java ++java/time/test/java/time/TestDuration.java ++java/time/test/java/time/TestInstant.java ++java/time/test/java/time/TestLocalDate.java ++java/time/test/java/time/TestLocalDateTime.java ++java/time/test/java/time/TestLocalTime.java ++java/time/test/java/time/TestMonthDay.java ++java/time/test/java/time/TestOffsetDateTime.java ++java/time/test/java/time/TestOffsetDateTime_instants.java ++java/time/test/java/time/TestOffsetTime.java ++java/time/test/java/time/TestPeriod.java ++java/time/test/java/time/TestYear.java ++java/time/test/java/time/TestYearMonth.java ++java/time/test/java/time/TestZoneId.java ++java/time/test/java/time/TestZoneOffset.java ++java/time/test/java/time/TestZonedDateTime.java ++java/time/test/java/time/chrono/TestChronoLocalDate.java ++java/time/test/java/time/chrono/TestChronologyPerf.java ++java/time/test/java/time/chrono/TestEraDisplayName.java ++java/time/test/java/time/chrono/TestExampleCode.java ++java/time/test/java/time/chrono/TestIsoChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronology.java ++java/time/test/java/time/chrono/TestServiceLoader.java ++java/time/test/java/time/chrono/TestThaiBuddhistChronoImpl.java ++java/time/test/java/time/chrono/TestUmmAlQuraChronology.java ++java/time/test/java/time/format/AbstractTestPrinterParser.java ++java/time/test/java/time/format/MockIOExceptionAppendable.java ++java/time/test/java/time/format/TestCharLiteralParser.java ++java/time/test/java/time/format/TestCharLiteralPrinter.java ++java/time/test/java/time/format/TestDateTimeFormatter.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilder.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java ++java/time/test/java/time/format/TestDateTimeParsing.java ++java/time/test/java/time/format/TestDateTimeTextProvider.java ++java/time/test/java/time/format/TestDecimalStyle.java ++java/time/test/java/time/format/TestFractionPrinterParser.java ++java/time/test/java/time/format/TestNonIsoFormatter.java ++java/time/test/java/time/format/TestNumberParser.java ++java/time/test/java/time/format/TestNumberPrinter.java ++java/time/test/java/time/format/TestPadPrinterDecorator.java ++java/time/test/java/time/format/TestReducedParser.java ++java/time/test/java/time/format/TestReducedPrinter.java ++java/time/test/java/time/format/TestSettingsParser.java ++java/time/test/java/time/format/TestStringLiteralParser.java ++java/time/test/java/time/format/TestStringLiteralPrinter.java ++java/time/test/java/time/format/TestTextParser.java ++java/time/test/java/time/format/TestTextPrinter.java ++java/time/test/java/time/format/TestZoneOffsetParser.java ++java/time/test/java/time/format/TestZoneOffsetPrinter.java ++java/time/test/java/time/format/TestZoneTextPrinterParser.java ++java/time/test/java/time/format/ZoneName.java ++java/time/test/java/time/temporal/MockFieldNoValue.java ++java/time/test/java/time/temporal/MockFieldValue.java ++java/time/test/java/time/temporal/TestChronoField.java ++java/time/test/java/time/temporal/TestChronoUnit.java ++java/time/test/java/time/temporal/TestDateTimeBuilderCombinations.java ++java/time/test/java/time/temporal/TestDateTimeValueRange.java ++java/time/test/java/time/temporal/TestIsoWeekFields.java ++java/time/test/java/time/temporal/TestJulianFields.java ++java/time/test/java/time/zone/TestFixedZoneRules.java ++java/time/test/java/util/TestFormatter.java ++java/util/Arrays/ParallelPrefix.java ++java/util/Arrays/SetAllTest.java ++java/util/Arrays/StreamAndSpliterator.java ++java/util/BitSet/BitSetStreamTest.java ++java/util/Calendar/JapanEraNameCompatTest.java ++java/util/Calendar/JapaneseLenientEraTest.java ++java/util/Calendar/SupplementalJapaneseEraTest.java ++java/util/Collection/CollectionDefaults.java ++java/util/Collections/CheckedIdentityMap.java ++java/util/Collections/CheckedMapBash.java ++java/util/Collections/CheckedQueue.java ++java/util/Collections/CheckedSetBash.java ++java/util/Collections/EmptyCollectionSerialization.java ++java/util/Collections/EmptyNavigableMap.java ++java/util/Collections/EmptyNavigableSet.java ++java/util/Collections/SingletonIterator.java ++java/util/Collections/SyncSubMutexes.java ++java/util/Collections/UnmodifiableMapEntrySet.java ++java/util/Collections/Wrappers.java ++java/util/Comparator/BasicTest.java ++java/util/Comparator/TypeTest.java ++java/util/HashMap/Bug8186171Test.java ++java/util/HashMap/TreeBinAssert.java ++java/util/IdentityHashMap/Capacity.java ++java/util/Iterator/IteratorDefaults.java ++java/util/Iterator/PrimitiveIteratorDefaults.java ++java/util/List/ListDefaults.java ++java/util/Map/BasicSerialization.java ++java/util/Map/Defaults.java ++java/util/Map/EntryComparators.java ++java/util/Map/MapBinToFromTreeTest.java ++java/util/Objects/CheckIndex.java ++java/util/Optional/Basic.java ++java/util/Optional/BasicDouble.java ++java/util/Optional/BasicInt.java ++java/util/Optional/BasicLong.java ++java/util/Random/RandomStreamTest.java ++java/util/Random/RandomTest.java ++java/util/Spliterator/SpliteratorCharacteristics.java ++java/util/Spliterator/SpliteratorCollisions.java ++java/util/Spliterator/SpliteratorLateBindingFailFastTest.java ++java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ++java/util/SplittableRandom/SplittableRandomTest.java ++java/util/StringJoiner/MergeTest.java ++java/util/StringJoiner/StringJoinerTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++java/util/concurrent/CompletableFuture/ThenComposeAsyncTest.java ++java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentAssociateTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentContainsKeyTest.java ++java/util/concurrent/LinkedTransferQueue/SpliteratorTraverseAddRemoveTest.java ++java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ++java/util/concurrent/atomic/AtomicReferenceTest.java ++java/util/function/BiFunction/BiFunctionTest.java ++java/util/function/BinaryOperator/BasicTest.java ++java/util/logging/LoggerSupplierAPIsTest.java ++java/util/regex/PatternStreamTest.java ++java/util/stream/boottest/java/util/stream/DoubleNodeTest.java ++java/util/stream/boottest/java/util/stream/FlagOpTest.java ++java/util/stream/boottest/java/util/stream/IntNodeTest.java ++java/util/stream/boottest/java/util/stream/LongNodeTest.java ++java/util/stream/boottest/java/util/stream/NodeBuilderTest.java ++java/util/stream/boottest/java/util/stream/NodeTest.java ++java/util/stream/boottest/java/util/stream/SliceSpliteratorTest.java ++java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ++java/util/stream/boottest/java/util/stream/StreamFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamOpFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamReuseTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/DeserializeMethodTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/MHProxiesTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java ++java/util/stream/test/org/openjdk/tests/java/util/FillableStringTest.java ++java/util/stream/test/org/openjdk/tests/java/util/MapTest.java ++java/util/stream/test/org/openjdk/tests/java/util/NullArgsTestCase.java ++java/util/stream/test/org/openjdk/tests/java/util/SplittableRandomTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectionAndMapModifyStreamTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountLargeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CustomFJPoolTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DoublePrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FilterOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindAnyOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/GroupByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntUniqOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/LongPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MatchOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MinMaxTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveAverageOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveSumTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/RangeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SequentialOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamCloseTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamLinkTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamParSeqTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TeeOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java ++java/util/zip/ZipFile/StreamZipEntriesTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/script/SimpleScriptContextNameChecksTest.java ++javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/smartcardio/CommandAPDUTest.java ++javax/smartcardio/ResponseAPDUTest.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/sql/testng/test/rowset/BaseRowSetTests.java ++javax/sql/testng/test/rowset/CommonRowSetTests.java ++javax/sql/testng/test/rowset/RowSetFactoryTests.java ++javax/sql/testng/test/rowset/RowSetMetaDataTests.java ++javax/sql/testng/test/rowset/RowSetProviderTests.java ++javax/sql/testng/test/rowset/RowSetWarningTests.java ++javax/sql/testng/test/rowset/cachedrowset/CachedRowSetTests.java ++javax/sql/testng/test/rowset/cachedrowset/CommonCachedRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/CityFilter.java ++javax/sql/testng/test/rowset/filteredrowset/FilteredRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/PrimaryKeyFilter.java ++javax/sql/testng/test/rowset/joinrowset/JoinRowSetTests.java ++javax/sql/testng/test/rowset/serial/SQLInputImplTests.java ++javax/sql/testng/test/rowset/serial/SQLOutputImplTests.java ++javax/sql/testng/test/rowset/serial/SerialArrayTests.java ++javax/sql/testng/test/rowset/serial/SerialBlobTests.java ++javax/sql/testng/test/rowset/serial/SerialClobTests.java ++javax/sql/testng/test/rowset/serial/SerialDataLinkTests.java ++javax/sql/testng/test/rowset/serial/SerialExceptionTests.java ++javax/sql/testng/test/rowset/serial/SerialJavaObjectTests.java ++javax/sql/testng/test/rowset/serial/SerialRefTests.java ++javax/sql/testng/test/rowset/serial/SerialStructTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryExceptionTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryPermissionsTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryTests.java ++javax/sql/testng/test/rowset/spi/SyncProviderExceptionTests.java ++javax/sql/testng/test/rowset/webrowset/CommonWebRowSetTests.java ++javax/sql/testng/test/rowset/webrowset/WebRowSetTests.java ++javax/sql/testng/util/PropertyStubProvider.java ++javax/sql/testng/util/StubArray.java ++javax/sql/testng/util/StubBaseRowSet.java ++javax/sql/testng/util/StubBlob.java ++javax/sql/testng/util/StubCachedRowSetImpl.java ++javax/sql/testng/util/StubClob.java ++javax/sql/testng/util/StubContext.java ++javax/sql/testng/util/StubFilteredRowSetImpl.java ++javax/sql/testng/util/StubJdbcRowSetImpl.java ++javax/sql/testng/util/StubJoinRowSetImpl.java ++javax/sql/testng/util/StubNClob.java ++javax/sql/testng/util/StubRef.java ++javax/sql/testng/util/StubRowId.java ++javax/sql/testng/util/StubRowSetFactory.java ++javax/sql/testng/util/StubSQLXML.java ++javax/sql/testng/util/StubStruct.java ++javax/sql/testng/util/StubSyncProvider.java ++javax/sql/testng/util/StubSyncResolver.java ++javax/sql/testng/util/StubWebRowSetImpl.java ++javax/sql/testng/util/SuperHero.java ++javax/sql/testng/util/TestRowSetListener.java ++javax/sql/testng/util/TestSQLDataImpl.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++javax/xml/bind/jxc/8046817/GenerateEnumSchema.java ++javax/xml/bind/jxc/8073519/SchemagenErrorReporting.java ++javax/xml/bind/jxc/8073872/SchemagenStackOverflow.java ++javax/xml/bind/marshal/8134111/UnmarshalTest.java ++javax/xml/bind/xjc/8145039/JaxbMarshallTest.java ++javax/xml/bind/xsom/8159240/WhitespacesTest.java ++javax/xml/jaxp/common/8144593/TransformationWarningsTest.java ++javax/xml/jaxp/common/8144593/ValidationWarningsTest.java ++javax/xml/jaxp/parsers/8072081/SupplementaryChars.java ++javax/xml/jaxp/parsers/8073385/BadExceptionMessageTest.java ++javax/xml/jaxp/stream/8145974/SurrogatesTest.java ++javax/xml/jaxp/stream/8153781/SkipDTDTest.java ++javax/xml/jaxp/testng/parse/XMLEntityScannerLoad.java ++javax/xml/jaxp/testng/parse/jdk7156085/UTF8ReaderBug.java ++javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java ++javax/xml/jaxp/transform/8062923/XslSubstringTest.java ++javax/xml/jaxp/transform/8079323/TemplatesTest.java ++javax/xml/jaxp/transform/8150704/TransformerTest.java ++javax/xml/jaxp/transform/8162598/TransformerTest.java ++javax/xml/jaxp/transform/8167179/NamespacePrefixTest.java ++javax/xml/jaxp/transform/8169112/TransformerTest.java ++javax/xml/jaxp/transform/8207760/JDK8207760.java ++javax/xml/jaxp/transform/sort/SortTest.java ++javax/xml/jaxp/unittest/xpath/XPathExpTest.java ++javax/xml/jaxp/validation/8149915/SchemaTest.java ++javax/xml/ws/8159058/SaajEmptyNamespaceTest.java ++javax/xml/ws/8172297/Main.java ++jdk/java/dwarf/TestDwarf.java ++jdk/lambda/ArrayCtorRefTest.java ++jdk/lambda/FDTest.java ++jdk/lambda/LambdaTranslationCompoundSamTest.java ++jdk/lambda/LambdaTranslationInInterface.java ++jdk/lambda/LambdaTranslationInnerConstructor.java ++jdk/lambda/LambdaTranslationTest1.java ++jdk/lambda/LambdaTranslationTest2.java ++jdk/lambda/MethodReferenceTestCallerSensitive.java ++jdk/lambda/MethodReferenceTestFDCCE.java ++jdk/lambda/MethodReferenceTestInnerDefault.java ++jdk/lambda/MethodReferenceTestInnerInstance.java ++jdk/lambda/MethodReferenceTestInnerVarArgsThis.java ++jdk/lambda/MethodReferenceTestInstance.java ++jdk/lambda/MethodReferenceTestInstanceMethod.java ++jdk/lambda/MethodReferenceTestKinds.java ++jdk/lambda/MethodReferenceTestNew.java ++jdk/lambda/MethodReferenceTestNewInner.java ++jdk/lambda/MethodReferenceTestSueCase1.java ++jdk/lambda/MethodReferenceTestSueCase2.java ++jdk/lambda/MethodReferenceTestSueCase4.java ++jdk/lambda/MethodReferenceTestSuper.java ++jdk/lambda/MethodReferenceTestSuperDefault.java ++jdk/lambda/MethodReferenceTestTypeConversion.java ++jdk/lambda/MethodReferenceTestVarArgs.java ++jdk/lambda/MethodReferenceTestVarArgsExt.java ++jdk/lambda/MethodReferenceTestVarArgsSuper.java ++jdk/lambda/MethodReferenceTestVarArgsSuperDefault.java ++jdk/lambda/MethodReferenceTestVarArgsThis.java ++jdk/lambda/TestInnerCtorRef.java ++jdk/lambda/TestPrivateCtorRef.java ++jdk/lambda/separate/AttributeInjector.java ++jdk/lambda/separate/ClassFile.java ++jdk/lambda/separate/ClassFilePreprocessor.java ++jdk/lambda/separate/ClassToInterfaceConverter.java ++jdk/lambda/separate/Compiler.java ++jdk/lambda/separate/DirectedClassLoader.java ++jdk/lambda/separate/SourceModel.java ++jdk/lambda/separate/TestHarness.java ++jdk/lambda/shapegen/ClassCase.java ++jdk/lambda/shapegen/Hierarchy.java ++jdk/lambda/shapegen/HierarchyGenerator.java ++jdk/lambda/shapegen/Rule.java ++jdk/lambda/shapegen/RuleGroup.java ++jdk/lambda/shapegen/TTNode.java ++jdk/lambda/shapegen/TTParser.java ++jdk/lambda/shapegen/TTShape.java ++jdk/lambda/vm/DefaultMethodRegressionTests.java ++jdk/lambda/vm/InterfaceAccessFlagsTest.java ++jdk/lambda/vm/StrictfpDefault.java ++org/openeuler/security/openssl/AESTest.java ++org/openeuler/security/openssl/DHTest.java ++org/openeuler/security/openssl/DigestTest.java ++org/openeuler/security/openssl/ECDHTest.java ++org/openeuler/security/openssl/HmacTest.java ++org/openeuler/security/openssl/KAEConfTest.java ++org/openeuler/security/openssl/KAELogTest.java ++org/openeuler/security/openssl/KaeDebugLogTest.java ++org/openeuler/security/openssl/KaeProviderTest.java ++org/openeuler/security/openssl/RSATest.java ++org/openeuler/security/openssl/SM4Test.java ++sample/chatserver/ChatTest.java ++sample/mergesort/MergeSortTest.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++serviceability/dcmd/gc/HeapDumpTest.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/net/www/http/RequestMethodCheck/RequestMethodEquality.java ++sun/reflect/ReflectionFactory/ReflectionFactoryTest.java ++sun/rmi/server/UnicastServerRef/FilterUSRTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/security/x509/GeneralName/DNSNameTest.java ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++sun/util/calendar/zi/Beyond2037.java ++sun/util/resources/TimeZone/Bug8139107.java ++tools/launcher/Settings.java ++lib/combo/tools/javac/combo/Diagnostics.java ++lib/combo/tools/javac/combo/JavacTemplateTestBase.java ++lib/combo/tools/javac/combo/Template.java ++lib/combo/tools/javac/combo/TemplateTest.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java ++tools/javac/lambda/lambdaExecution/InInterface.java ++tools/javac/lambda/lambdaExecution/InnerConstructor.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java ++tools/javac/lambdaShapes/org/openjdk/tests/javac/FDTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java ++tools/javac/tree/T8024415.java ++tools/jdeps/MRJarWarning.java ++src/jdk/nashorn/api/javaaccess/test/BooleanAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/MethodAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberBoxingTest.java ++src/jdk/nashorn/api/javaaccess/test/ObjectAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/StringAccessTest.java ++src/jdk/nashorn/api/scripting/test/MultipleEngineTest.java ++src/jdk/nashorn/api/scripting/test/ScriptEngineTest.java ++src/jdk/nashorn/internal/runtime/regexp/joni/test/JoniTest.java ++src/jdk/nashorn/internal/runtime/regexp/test/JdkRegExpTest.java ++src/jdk/nashorn/internal/runtime/test/ConsStringTest.java ++src/jdk/nashorn/internal/runtime/test/ContextTest.java ++src/jdk/nashorn/internal/runtime/test/ExceptionsNotSerializable.java ++src/jdk/nashorn/internal/runtime/test/JDK_8078414_Test.java ++src/jdk/nashorn/internal/runtime/test/JSTypeTest.java ++src/jdk/nashorn/internal/runtime/test/LexicalBindingTest.java ++src/jdk/nashorn/internal/runtime/test/NoPersistenceCachingTest.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++gc/TestTrimNative.java#id4 ++java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++gc/TestTrimNative.java#id6 +\ No newline at end of file +diff --git a/jdk/test/problemlist/CentOS-9.txt b/jdk/test/problemlist/CentOS-9.txt +new file mode 100644 +index 000000000..acb6a9fb4 +--- /dev/null ++++ b/jdk/test/problemlist/CentOS-9.txt +@@ -0,0 +1,1280 @@ ++runtime/containers/docker/TestNUMANodes.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++00000000 ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/rmi/PortableRemoteObject/8146975/RmiIiopReturnValueTest.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++jdk/java/dwarf/TestDwarf.java ++org/openeuler/security/openssl/AESTest.java ++org/openeuler/security/openssl/DHTest.java ++org/openeuler/security/openssl/DigestTest.java ++org/openeuler/security/openssl/ECDHTest.java ++org/openeuler/security/openssl/HmacTest.java ++org/openeuler/security/openssl/KAEConfTest.java ++org/openeuler/security/openssl/KAELogTest.java ++org/openeuler/security/openssl/KaeDebugLogTest.java ++org/openeuler/security/openssl/KaeProviderTest.java ++org/openeuler/security/openssl/RSATest.java ++org/openeuler/security/openssl/SM4Test.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/keytool/autotest.sh ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/UIDefaults/6795356/bug6795356.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/EulerR10.txt b/jdk/test/problemlist/EulerR10.txt +new file mode 100644 +index 000000000..e7cb08a2e +--- /dev/null ++++ b/jdk/test/problemlist/EulerR10.txt +@@ -0,0 +1,1274 @@ ++gc/survivorAlignment/TestPromotionToSurvivor.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/net/Inet6Address/B6206527.java ++java/net/MulticastSocket/NoLoopbackPackets.java ++java/net/MulticastSocket/SetLoopbackMode.java ++java/net/MulticastSocket/Test.java ++java/net/ipv6tests/B6521014.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/rmi/activation/Activatable/inactiveGroup/InactiveGroup.java ++java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ++java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/PrintServiceLookup/CountPrintServices.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++jdk/java/dwarf/TestDwarf.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/EulerR11.txt b/jdk/test/problemlist/EulerR11.txt +new file mode 100644 +index 000000000..d18e94023 +--- /dev/null ++++ b/jdk/test/problemlist/EulerR11.txt +@@ -0,0 +1,1856 @@ ++compiler/c2/TestNegativeStringBuilderCapacity.java ++serviceability/dcmd/ClassLoaderHierarchyTest.java ++serviceability/dcmd/MallocInfoTest.java ++serviceability/dcmd/PerfMapTest.java ++serviceability/dcmd/TrimLibcHeapTest.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapTimeoutTest.java ++com/sun/jndi/ldap/NamingExceptionMessageTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++com/sun/nio/sctp/SctpMultiChannel/Branch.java ++demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java ++demo/zipfs/LargeCompressedEntrySizeTest.java ++demo/zipfs/ZipFSPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/Graphics2D/WhiteTextColorTest.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/io/BufferedReader/Lines.java ++java/io/LineNumberReader/MarkSplitCRLF.java ++java/io/Serializable/serialFilter/CheckArrayTest.java ++java/io/Serializable/serialFilter/CheckInputOrderTest.java ++java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java ++java/io/Serializable/serialFilter/GlobalFilterTest.java ++java/io/Serializable/serialFilter/MixedFiltersTest.java ++java/io/Serializable/serialFilter/SerialFilterTest.java ++java/lang/CharSequence/DefaultTest.java ++java/lang/IntegralPrimitiveToString.java ++java/lang/PrimitiveSumMinMaxTest.java ++java/lang/String/StringJoinTest.java ++java/lang/StringBuilder/Capacity.java ++java/lang/Thread/StopThrowable.java ++java/lang/ThreadLocal/ThreadLocalSupplierTest.java ++java/lang/annotation/AnnotationWithLambda.java ++java/lang/annotation/TypeVariableBounds.java ++java/lang/annotation/typeAnnotations/BadCPIndex.java ++java/lang/annotation/typeAnnotations/ConstructorReceiverTest.java ++java/lang/annotation/typeAnnotations/TestExecutableGetAnnotatedType.java ++java/lang/invoke/AccessControlTest.java ++java/lang/invoke/ArrayConstructorTest.java ++java/lang/invoke/ClassValueTest.java ++java/lang/invoke/InvokeGenericTest.java ++java/lang/invoke/JavaDocExamplesTest.java ++java/lang/invoke/MethodHandlesProxiesTest.java ++java/lang/invoke/MethodTypeTest.java ++java/lang/invoke/PermuteArgsReturnVoidTest.java ++java/lang/invoke/PermuteArgsTest.java ++java/lang/invoke/ThrowExceptionsTest.java ++java/lang/invoke/lambda/LogGeneratedClassesTest.java ++java/lang/invoke/lookup/TestDefenderMethodLookup.java ++java/lang/reflect/DefaultMethodMembers/FilterNotMostSpecific.java ++java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java ++java/lang/reflect/Generics/ThreadSafety.java ++java/lang/reflect/annotationSharing/AnnotationSharing.java ++java/math/BigDecimal/Constructor.java ++java/math/BigInteger/LargeValueExceptions.java ++java/net/SocketPermission/SocketPermissionTest.java ++java/net/Socks/SocksIPv6Test.java ++java/nio/Buffer/Chars.java ++java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java ++java/nio/channels/SocketChannel/AdaptSocketReadAfterClose.java ++java/nio/file/Files/BytesAndLines.java ++java/nio/file/Files/StreamTest.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/rmi/MarshalledObject/MOFilterTest.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/registry/serialFilter/RegistryFilterTest.java ++java/rmi/testlibrary/TestSocketFactory.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++java/security/AccessController/LimitedDoPrivilegedWithNullPerms.java ++java/sql/testng/test/sql/BatchUpdateExceptionTests.java ++java/sql/testng/test/sql/DataTruncationTests.java ++java/sql/testng/test/sql/DateTests.java ++java/sql/testng/test/sql/DriverManagerPermissionsTests.java ++java/sql/testng/test/sql/DriverManagerTests.java ++java/sql/testng/test/sql/SQLClientInfoExceptionTests.java ++java/sql/testng/test/sql/SQLDataExceptionTests.java ++java/sql/testng/test/sql/SQLExceptionTests.java ++java/sql/testng/test/sql/SQLFeatureNotSupportedExceptionTests.java ++java/sql/testng/test/sql/SQLIntegrityConstraintViolationExceptionTests.java ++java/sql/testng/test/sql/SQLInvalidAuthorizationSpecExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientExceptionTests.java ++java/sql/testng/test/sql/SQLRecoverableExceptionTests.java ++java/sql/testng/test/sql/SQLSyntaxErrorExceptionTests.java ++java/sql/testng/test/sql/SQLTimeoutExceptionTests.java ++java/sql/testng/test/sql/SQLTransactionRollbackExceptionTests.java ++java/sql/testng/test/sql/SQLTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLTransientExceptionTests.java ++java/sql/testng/test/sql/SQLWarningTests.java ++java/sql/testng/test/sql/TimeTests.java ++java/sql/testng/test/sql/TimestampTests.java ++java/sql/testng/util/BaseTest.java ++java/sql/testng/util/DriverActionImpl.java ++java/sql/testng/util/SerializedBatchUpdateException.java ++java/sql/testng/util/StubConnection.java ++java/sql/testng/util/StubDriver.java ++java/sql/testng/util/StubDriverDA.java ++java/sql/testng/util/TestPolicy.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/text/Format/DateFormat/LocaleDateFormats.java ++java/text/Format/DateFormat/SimpleDateFormatPatternTest.java ++java/time/tck/java/time/AbstractDateTimeTest.java ++java/time/tck/java/time/AbstractTCKTest.java ++java/time/tck/java/time/MockSimplePeriod.java ++java/time/tck/java/time/TCKClock.java ++java/time/tck/java/time/TCKClock_Fixed.java ++java/time/tck/java/time/TCKClock_Offset.java ++java/time/tck/java/time/TCKClock_System.java ++java/time/tck/java/time/TCKClock_Tick.java ++java/time/tck/java/time/TCKDayOfWeek.java ++java/time/tck/java/time/TCKDuration.java ++java/time/tck/java/time/TCKInstant.java ++java/time/tck/java/time/TCKLocalDate.java ++java/time/tck/java/time/TCKLocalDateTime.java ++java/time/tck/java/time/TCKLocalTime.java ++java/time/tck/java/time/TCKMonth.java ++java/time/tck/java/time/TCKMonthDay.java ++java/time/tck/java/time/TCKOffsetDateTime.java ++java/time/tck/java/time/TCKOffsetTime.java ++java/time/tck/java/time/TCKPeriod.java ++java/time/tck/java/time/TCKYear.java ++java/time/tck/java/time/TCKYearMonth.java ++java/time/tck/java/time/TCKZoneId.java ++java/time/tck/java/time/TCKZoneOffset.java ++java/time/tck/java/time/TCKZonedDateTime.java ++java/time/tck/java/time/TestIsoChronology.java ++java/time/tck/java/time/chrono/CopticChronology.java ++java/time/tck/java/time/chrono/CopticDate.java ++java/time/tck/java/time/chrono/CopticEra.java ++java/time/tck/java/time/chrono/TCKChronoLocalDate.java ++java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ++java/time/tck/java/time/chrono/TCKChronoPeriod.java ++java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ++java/time/tck/java/time/chrono/TCKChronology.java ++java/time/tck/java/time/chrono/TCKHijrahChronology.java ++java/time/tck/java/time/chrono/TCKHijrahEra.java ++java/time/tck/java/time/chrono/TCKIsoChronology.java ++java/time/tck/java/time/chrono/TCKIsoEra.java ++java/time/tck/java/time/chrono/TCKJapaneseChronology.java ++java/time/tck/java/time/chrono/TCKJapaneseEra.java ++java/time/tck/java/time/chrono/TCKMinguoChronology.java ++java/time/tck/java/time/chrono/TCKMinguoEra.java ++java/time/tck/java/time/chrono/TCKTestServiceLoader.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistEra.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoZonedDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java ++java/time/tck/java/time/chrono/serial/TCKCopticSerialization.java ++java/time/tck/java/time/chrono/serial/TCKEraSerialization.java ++java/time/tck/java/time/format/TCKChronoPrinterParser.java ++java/time/tck/java/time/format/TCKDateTimeFormatter.java ++java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ++java/time/tck/java/time/format/TCKDateTimeFormatters.java ++java/time/tck/java/time/format/TCKDateTimeParseResolver.java ++java/time/tck/java/time/format/TCKDateTimeTextPrinting.java ++java/time/tck/java/time/format/TCKDecimalStyle.java ++java/time/tck/java/time/format/TCKFormatStyle.java ++java/time/tck/java/time/format/TCKInstantPrinterParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldPrinter.java ++java/time/tck/java/time/format/TCKLocalizedPrinterParser.java ++java/time/tck/java/time/format/TCKOffsetPrinterParser.java ++java/time/tck/java/time/format/TCKPadPrinterParser.java ++java/time/tck/java/time/format/TCKResolverStyle.java ++java/time/tck/java/time/format/TCKSignStyle.java ++java/time/tck/java/time/format/TCKTextStyle.java ++java/time/tck/java/time/format/TCKZoneIdPrinterParser.java ++java/time/tck/java/time/serial/TCKClockSerialization.java ++java/time/tck/java/time/serial/TCKDurationSerialization.java ++java/time/tck/java/time/serial/TCKInstantSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKLocalTimeSerialization.java ++java/time/tck/java/time/serial/TCKMonthDaySerialization.java ++java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java ++java/time/tck/java/time/serial/TCKPeriodSerialization.java ++java/time/tck/java/time/serial/TCKYearMonthSerialization.java ++java/time/tck/java/time/serial/TCKYearSerialization.java ++java/time/tck/java/time/serial/TCKZoneIdSerialization.java ++java/time/tck/java/time/serial/TCKZoneOffsetSerialization.java ++java/time/tck/java/time/serial/TCKZonedDateTimeSerialization.java ++java/time/tck/java/time/temporal/TCKChronoField.java ++java/time/tck/java/time/temporal/TCKChronoUnit.java ++java/time/tck/java/time/temporal/TCKIsoFields.java ++java/time/tck/java/time/temporal/TCKJulianFields.java ++java/time/tck/java/time/temporal/TCKTemporalAdjusters.java ++java/time/tck/java/time/temporal/TCKWeekFields.java ++java/time/tck/java/time/temporal/serial/TCKChronoFieldSerialization.java ++java/time/tck/java/time/temporal/serial/TCKChronoUnitSerialization.java ++java/time/tck/java/time/temporal/serial/TCKJulianFieldsSerialization.java ++java/time/tck/java/time/temporal/serial/TCKValueRangeSerialization.java ++java/time/tck/java/time/temporal/serial/TCKWeekFieldsSerialization.java ++java/time/tck/java/time/zone/TCKFixedZoneRules.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ++java/time/tck/java/time/zone/TCKZoneRules.java ++java/time/tck/java/time/zone/TCKZoneRulesProvider.java ++java/time/tck/java/time/zone/serial/TCKFixedZoneRulesSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRuleSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneRulesSerialization.java ++java/time/test/java/time/AbstractTest.java ++java/time/test/java/time/MockSimplePeriod.java ++java/time/test/java/time/TestClock_Fixed.java ++java/time/test/java/time/TestClock_Offset.java ++java/time/test/java/time/TestClock_System.java ++java/time/test/java/time/TestClock_Tick.java ++java/time/test/java/time/TestDuration.java ++java/time/test/java/time/TestInstant.java ++java/time/test/java/time/TestLocalDate.java ++java/time/test/java/time/TestLocalDateTime.java ++java/time/test/java/time/TestLocalTime.java ++java/time/test/java/time/TestMonthDay.java ++java/time/test/java/time/TestOffsetDateTime.java ++java/time/test/java/time/TestOffsetDateTime_instants.java ++java/time/test/java/time/TestOffsetTime.java ++java/time/test/java/time/TestPeriod.java ++java/time/test/java/time/TestYear.java ++java/time/test/java/time/TestYearMonth.java ++java/time/test/java/time/TestZoneId.java ++java/time/test/java/time/TestZoneOffset.java ++java/time/test/java/time/TestZonedDateTime.java ++java/time/test/java/time/chrono/TestChronoLocalDate.java ++java/time/test/java/time/chrono/TestChronologyPerf.java ++java/time/test/java/time/chrono/TestEraDisplayName.java ++java/time/test/java/time/chrono/TestExampleCode.java ++java/time/test/java/time/chrono/TestIsoChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronology.java ++java/time/test/java/time/chrono/TestServiceLoader.java ++java/time/test/java/time/chrono/TestThaiBuddhistChronoImpl.java ++java/time/test/java/time/chrono/TestUmmAlQuraChronology.java ++java/time/test/java/time/format/AbstractTestPrinterParser.java ++java/time/test/java/time/format/MockIOExceptionAppendable.java ++java/time/test/java/time/format/TestCharLiteralParser.java ++java/time/test/java/time/format/TestCharLiteralPrinter.java ++java/time/test/java/time/format/TestDateTimeFormatter.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilder.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java ++java/time/test/java/time/format/TestDateTimeParsing.java ++java/time/test/java/time/format/TestDateTimeTextProvider.java ++java/time/test/java/time/format/TestDecimalStyle.java ++java/time/test/java/time/format/TestFractionPrinterParser.java ++java/time/test/java/time/format/TestNonIsoFormatter.java ++java/time/test/java/time/format/TestNumberParser.java ++java/time/test/java/time/format/TestNumberPrinter.java ++java/time/test/java/time/format/TestPadPrinterDecorator.java ++java/time/test/java/time/format/TestReducedParser.java ++java/time/test/java/time/format/TestReducedPrinter.java ++java/time/test/java/time/format/TestSettingsParser.java ++java/time/test/java/time/format/TestStringLiteralParser.java ++java/time/test/java/time/format/TestStringLiteralPrinter.java ++java/time/test/java/time/format/TestTextParser.java ++java/time/test/java/time/format/TestTextPrinter.java ++java/time/test/java/time/format/TestZoneOffsetParser.java ++java/time/test/java/time/format/TestZoneOffsetPrinter.java ++java/time/test/java/time/format/TestZoneTextPrinterParser.java ++java/time/test/java/time/format/ZoneName.java ++java/time/test/java/time/temporal/MockFieldNoValue.java ++java/time/test/java/time/temporal/MockFieldValue.java ++java/time/test/java/time/temporal/TestChronoField.java ++java/time/test/java/time/temporal/TestChronoUnit.java ++java/time/test/java/time/temporal/TestDateTimeBuilderCombinations.java ++java/time/test/java/time/temporal/TestDateTimeValueRange.java ++java/time/test/java/time/temporal/TestIsoWeekFields.java ++java/time/test/java/time/temporal/TestJulianFields.java ++java/time/test/java/time/zone/TestFixedZoneRules.java ++java/time/test/java/util/TestFormatter.java ++java/util/Arrays/ParallelPrefix.java ++java/util/Arrays/SetAllTest.java ++java/util/Arrays/StreamAndSpliterator.java ++java/util/BitSet/BitSetStreamTest.java ++java/util/Calendar/JapanEraNameCompatTest.java ++java/util/Calendar/JapaneseLenientEraTest.java ++java/util/Calendar/SupplementalJapaneseEraTest.java ++java/util/Collection/CollectionDefaults.java ++java/util/Collections/CheckedIdentityMap.java ++java/util/Collections/CheckedMapBash.java ++java/util/Collections/CheckedQueue.java ++java/util/Collections/CheckedSetBash.java ++java/util/Collections/EmptyCollectionSerialization.java ++java/util/Collections/EmptyNavigableMap.java ++java/util/Collections/EmptyNavigableSet.java ++java/util/Collections/SingletonIterator.java ++java/util/Collections/SyncSubMutexes.java ++java/util/Collections/UnmodifiableMapEntrySet.java ++java/util/Collections/Wrappers.java ++java/util/Comparator/BasicTest.java ++java/util/Comparator/TypeTest.java ++java/util/HashMap/Bug8186171Test.java ++java/util/HashMap/TreeBinAssert.java ++java/util/IdentityHashMap/Capacity.java ++java/util/Iterator/IteratorDefaults.java ++java/util/Iterator/PrimitiveIteratorDefaults.java ++java/util/List/ListDefaults.java ++java/util/Map/BasicSerialization.java ++java/util/Map/Defaults.java ++java/util/Map/EntryComparators.java ++java/util/Map/MapBinToFromTreeTest.java ++java/util/Objects/CheckIndex.java ++java/util/Optional/Basic.java ++java/util/Optional/BasicDouble.java ++java/util/Optional/BasicInt.java ++java/util/Optional/BasicLong.java ++java/util/Random/RandomStreamTest.java ++java/util/Random/RandomTest.java ++java/util/Spliterator/SpliteratorCharacteristics.java ++java/util/Spliterator/SpliteratorCollisions.java ++java/util/Spliterator/SpliteratorLateBindingFailFastTest.java ++java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ++java/util/SplittableRandom/SplittableRandomTest.java ++java/util/StringJoiner/MergeTest.java ++java/util/StringJoiner/StringJoinerTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++java/util/concurrent/CompletableFuture/ThenComposeAsyncTest.java ++java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentAssociateTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentContainsKeyTest.java ++java/util/concurrent/LinkedTransferQueue/SpliteratorTraverseAddRemoveTest.java ++java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ++java/util/concurrent/atomic/AtomicReferenceTest.java ++java/util/function/BiFunction/BiFunctionTest.java ++java/util/function/BinaryOperator/BasicTest.java ++java/util/logging/LoggerSupplierAPIsTest.java ++java/util/regex/PatternStreamTest.java ++java/util/stream/boottest/java/util/stream/DoubleNodeTest.java ++java/util/stream/boottest/java/util/stream/FlagOpTest.java ++java/util/stream/boottest/java/util/stream/IntNodeTest.java ++java/util/stream/boottest/java/util/stream/LongNodeTest.java ++java/util/stream/boottest/java/util/stream/NodeBuilderTest.java ++java/util/stream/boottest/java/util/stream/NodeTest.java ++java/util/stream/boottest/java/util/stream/SliceSpliteratorTest.java ++java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ++java/util/stream/boottest/java/util/stream/StreamFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamOpFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamReuseTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/DeserializeMethodTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/MHProxiesTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java ++java/util/stream/test/org/openjdk/tests/java/util/FillableStringTest.java ++java/util/stream/test/org/openjdk/tests/java/util/MapTest.java ++java/util/stream/test/org/openjdk/tests/java/util/NullArgsTestCase.java ++java/util/stream/test/org/openjdk/tests/java/util/SplittableRandomTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectionAndMapModifyStreamTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountLargeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CustomFJPoolTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DoublePrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FilterOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindAnyOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/GroupByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntUniqOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/LongPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MatchOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MinMaxTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveAverageOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveSumTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/RangeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SequentialOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamCloseTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamLinkTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamParSeqTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TeeOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java ++java/util/zip/ZipFile/StreamZipEntriesTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/script/SimpleScriptContextNameChecksTest.java ++javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/smartcardio/CommandAPDUTest.java ++javax/smartcardio/ResponseAPDUTest.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/sql/testng/test/rowset/BaseRowSetTests.java ++javax/sql/testng/test/rowset/CommonRowSetTests.java ++javax/sql/testng/test/rowset/RowSetFactoryTests.java ++javax/sql/testng/test/rowset/RowSetMetaDataTests.java ++javax/sql/testng/test/rowset/RowSetProviderTests.java ++javax/sql/testng/test/rowset/RowSetWarningTests.java ++javax/sql/testng/test/rowset/cachedrowset/CachedRowSetTests.java ++javax/sql/testng/test/rowset/cachedrowset/CommonCachedRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/CityFilter.java ++javax/sql/testng/test/rowset/filteredrowset/FilteredRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/PrimaryKeyFilter.java ++javax/sql/testng/test/rowset/joinrowset/JoinRowSetTests.java ++javax/sql/testng/test/rowset/serial/SQLInputImplTests.java ++javax/sql/testng/test/rowset/serial/SQLOutputImplTests.java ++javax/sql/testng/test/rowset/serial/SerialArrayTests.java ++javax/sql/testng/test/rowset/serial/SerialBlobTests.java ++javax/sql/testng/test/rowset/serial/SerialClobTests.java ++javax/sql/testng/test/rowset/serial/SerialDataLinkTests.java ++javax/sql/testng/test/rowset/serial/SerialExceptionTests.java ++javax/sql/testng/test/rowset/serial/SerialJavaObjectTests.java ++javax/sql/testng/test/rowset/serial/SerialRefTests.java ++javax/sql/testng/test/rowset/serial/SerialStructTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryExceptionTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryPermissionsTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryTests.java ++javax/sql/testng/test/rowset/spi/SyncProviderExceptionTests.java ++javax/sql/testng/test/rowset/webrowset/CommonWebRowSetTests.java ++javax/sql/testng/test/rowset/webrowset/WebRowSetTests.java ++javax/sql/testng/util/PropertyStubProvider.java ++javax/sql/testng/util/StubArray.java ++javax/sql/testng/util/StubBaseRowSet.java ++javax/sql/testng/util/StubBlob.java ++javax/sql/testng/util/StubCachedRowSetImpl.java ++javax/sql/testng/util/StubClob.java ++javax/sql/testng/util/StubContext.java ++javax/sql/testng/util/StubFilteredRowSetImpl.java ++javax/sql/testng/util/StubJdbcRowSetImpl.java ++javax/sql/testng/util/StubJoinRowSetImpl.java ++javax/sql/testng/util/StubNClob.java ++javax/sql/testng/util/StubRef.java ++javax/sql/testng/util/StubRowId.java ++javax/sql/testng/util/StubRowSetFactory.java ++javax/sql/testng/util/StubSQLXML.java ++javax/sql/testng/util/StubStruct.java ++javax/sql/testng/util/StubSyncProvider.java ++javax/sql/testng/util/StubSyncResolver.java ++javax/sql/testng/util/StubWebRowSetImpl.java ++javax/sql/testng/util/SuperHero.java ++javax/sql/testng/util/TestRowSetListener.java ++javax/sql/testng/util/TestSQLDataImpl.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++javax/xml/bind/jxc/8046817/GenerateEnumSchema.java ++javax/xml/bind/jxc/8073519/SchemagenErrorReporting.java ++javax/xml/bind/jxc/8073872/SchemagenStackOverflow.java ++javax/xml/bind/marshal/8134111/UnmarshalTest.java ++javax/xml/bind/xjc/8145039/JaxbMarshallTest.java ++javax/xml/bind/xsom/8159240/WhitespacesTest.java ++javax/xml/jaxp/common/8144593/TransformationWarningsTest.java ++javax/xml/jaxp/common/8144593/ValidationWarningsTest.java ++javax/xml/jaxp/parsers/8072081/SupplementaryChars.java ++javax/xml/jaxp/parsers/8073385/BadExceptionMessageTest.java ++javax/xml/jaxp/stream/8145974/SurrogatesTest.java ++javax/xml/jaxp/stream/8153781/SkipDTDTest.java ++javax/xml/jaxp/testng/parse/XMLEntityScannerLoad.java ++javax/xml/jaxp/testng/parse/jdk7156085/UTF8ReaderBug.java ++javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java ++javax/xml/jaxp/transform/8062923/XslSubstringTest.java ++javax/xml/jaxp/transform/8079323/TemplatesTest.java ++javax/xml/jaxp/transform/8150704/TransformerTest.java ++javax/xml/jaxp/transform/8162598/TransformerTest.java ++javax/xml/jaxp/transform/8167179/NamespacePrefixTest.java ++javax/xml/jaxp/transform/8169112/TransformerTest.java ++javax/xml/jaxp/transform/8207760/JDK8207760.java ++javax/xml/jaxp/transform/sort/SortTest.java ++javax/xml/jaxp/unittest/xpath/XPathExpTest.java ++javax/xml/jaxp/validation/8149915/SchemaTest.java ++javax/xml/ws/8159058/SaajEmptyNamespaceTest.java ++javax/xml/ws/8172297/Main.java ++jdk/java/dwarf/TestDwarf.java ++jdk/lambda/ArrayCtorRefTest.java ++jdk/lambda/FDTest.java ++jdk/lambda/LambdaTranslationCompoundSamTest.java ++jdk/lambda/LambdaTranslationInInterface.java ++jdk/lambda/LambdaTranslationInnerConstructor.java ++jdk/lambda/LambdaTranslationTest1.java ++jdk/lambda/LambdaTranslationTest2.java ++jdk/lambda/MethodReferenceTestCallerSensitive.java ++jdk/lambda/MethodReferenceTestFDCCE.java ++jdk/lambda/MethodReferenceTestInnerDefault.java ++jdk/lambda/MethodReferenceTestInnerInstance.java ++jdk/lambda/MethodReferenceTestInnerVarArgsThis.java ++jdk/lambda/MethodReferenceTestInstance.java ++jdk/lambda/MethodReferenceTestInstanceMethod.java ++jdk/lambda/MethodReferenceTestKinds.java ++jdk/lambda/MethodReferenceTestNew.java ++jdk/lambda/MethodReferenceTestNewInner.java ++jdk/lambda/MethodReferenceTestSueCase1.java ++jdk/lambda/MethodReferenceTestSueCase2.java ++jdk/lambda/MethodReferenceTestSueCase4.java ++jdk/lambda/MethodReferenceTestSuper.java ++jdk/lambda/MethodReferenceTestSuperDefault.java ++jdk/lambda/MethodReferenceTestTypeConversion.java ++jdk/lambda/MethodReferenceTestVarArgs.java ++jdk/lambda/MethodReferenceTestVarArgsExt.java ++jdk/lambda/MethodReferenceTestVarArgsSuper.java ++jdk/lambda/MethodReferenceTestVarArgsSuperDefault.java ++jdk/lambda/MethodReferenceTestVarArgsThis.java ++jdk/lambda/TestInnerCtorRef.java ++jdk/lambda/TestPrivateCtorRef.java ++jdk/lambda/separate/AttributeInjector.java ++jdk/lambda/separate/ClassFile.java ++jdk/lambda/separate/ClassFilePreprocessor.java ++jdk/lambda/separate/ClassToInterfaceConverter.java ++jdk/lambda/separate/Compiler.java ++jdk/lambda/separate/DirectedClassLoader.java ++jdk/lambda/separate/SourceModel.java ++jdk/lambda/separate/TestHarness.java ++jdk/lambda/shapegen/ClassCase.java ++jdk/lambda/shapegen/Hierarchy.java ++jdk/lambda/shapegen/HierarchyGenerator.java ++jdk/lambda/shapegen/Rule.java ++jdk/lambda/shapegen/RuleGroup.java ++jdk/lambda/shapegen/TTNode.java ++jdk/lambda/shapegen/TTParser.java ++jdk/lambda/shapegen/TTShape.java ++jdk/lambda/vm/DefaultMethodRegressionTests.java ++jdk/lambda/vm/InterfaceAccessFlagsTest.java ++jdk/lambda/vm/StrictfpDefault.java ++sample/chatserver/ChatTest.java ++sample/mergesort/MergeSortTest.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++serviceability/dcmd/gc/HeapDumpTest.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/net/www/http/ChunkedOutputStream/checkError.java ++sun/net/www/http/RequestMethodCheck/RequestMethodEquality.java ++sun/reflect/ReflectionFactory/ReflectionFactoryTest.java ++sun/rmi/server/UnicastServerRef/FilterUSRTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/security/x509/GeneralName/DNSNameTest.java ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++sun/util/calendar/zi/Beyond2037.java ++sun/util/resources/TimeZone/Bug8139107.java ++lib/combo/tools/javac/combo/Diagnostics.java ++lib/combo/tools/javac/combo/JavacTemplateTestBase.java ++lib/combo/tools/javac/combo/Template.java ++lib/combo/tools/javac/combo/TemplateTest.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java ++tools/javac/lambda/lambdaExecution/InInterface.java ++tools/javac/lambda/lambdaExecution/InnerConstructor.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java ++tools/javac/lambdaShapes/org/openjdk/tests/javac/FDTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java ++tools/javac/tree/T8024415.java ++tools/jdeps/MRJarWarning.java ++src/jdk/nashorn/api/javaaccess/test/BooleanAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/MethodAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberBoxingTest.java ++src/jdk/nashorn/api/javaaccess/test/ObjectAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/StringAccessTest.java ++src/jdk/nashorn/api/scripting/test/MultipleEngineTest.java ++src/jdk/nashorn/api/scripting/test/ScriptEngineTest.java ++src/jdk/nashorn/internal/runtime/regexp/joni/test/JoniTest.java ++src/jdk/nashorn/internal/runtime/regexp/test/JdkRegExpTest.java ++src/jdk/nashorn/internal/runtime/test/ConsStringTest.java ++src/jdk/nashorn/internal/runtime/test/ContextTest.java ++src/jdk/nashorn/internal/runtime/test/ExceptionsNotSerializable.java ++src/jdk/nashorn/internal/runtime/test/JDK_8078414_Test.java ++src/jdk/nashorn/internal/runtime/test/JSTypeTest.java ++src/jdk/nashorn/internal/runtime/test/LexicalBindingTest.java ++src/jdk/nashorn/internal/runtime/test/NoPersistenceCachingTest.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/UIDefaults/6795356/bug6795356.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++compiler/tiered/LevelTransitionTest.java ++com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ++com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java ++java/awt/im/6396526/IMLookAndFeel.java ++jdk/jfr/event/compiler/TestCompilerCompile.java ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/kylinV10.txt b/jdk/test/problemlist/kylinV10.txt +new file mode 100644 +index 000000000..141ee9d4e +--- /dev/null ++++ b/jdk/test/problemlist/kylinV10.txt +@@ -0,0 +1,1872 @@ ++compiler/c2/TestNegativeStringBuilderCapacity.java ++gc/survivorAlignment/TestPromotionToSurvivor.java ++runtime/6929067/Test6929067.sh ++runtime/InitialThreadOverflow/testme.sh ++serviceability/dcmd/ClassLoaderHierarchyTest.java ++serviceability/dcmd/MallocInfoTest.java ++serviceability/dcmd/PerfMapTest.java ++serviceability/dcmd/TrimLibcHeapTest.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapDnsProviderTest.java ++com/sun/jndi/ldap/LdapTimeoutTest.java ++com/sun/jndi/ldap/NamingExceptionMessageTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++com/sun/nio/sctp/SctpMultiChannel/Branch.java ++demo/zipfs/LargeCompressedEntrySizeTest.java ++demo/zipfs/ZipFSPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/FontMetrics/MaxAdvanceIsMax.java ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/io/BufferedReader/Lines.java ++java/io/LineNumberReader/MarkSplitCRLF.java ++java/io/Serializable/serialFilter/CheckArrayTest.java ++java/io/Serializable/serialFilter/CheckInputOrderTest.java ++java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java ++java/io/Serializable/serialFilter/GlobalFilterTest.java ++java/io/Serializable/serialFilter/MixedFiltersTest.java ++java/io/Serializable/serialFilter/SerialFilterTest.java ++java/lang/CharSequence/DefaultTest.java ++java/lang/IntegralPrimitiveToString.java ++java/lang/PrimitiveSumMinMaxTest.java ++java/lang/String/StringJoinTest.java ++java/lang/StringBuilder/Capacity.java ++java/lang/Thread/StopThrowable.java ++java/lang/ThreadLocal/ThreadLocalSupplierTest.java ++java/lang/annotation/AnnotationWithLambda.java ++java/lang/annotation/TypeVariableBounds.java ++java/lang/annotation/typeAnnotations/BadCPIndex.java ++java/lang/annotation/typeAnnotations/ConstructorReceiverTest.java ++java/lang/annotation/typeAnnotations/TestExecutableGetAnnotatedType.java ++java/lang/invoke/AccessControlTest.java ++java/lang/invoke/ArrayConstructorTest.java ++java/lang/invoke/ClassValueTest.java ++java/lang/invoke/InvokeGenericTest.java ++java/lang/invoke/JavaDocExamplesTest.java ++java/lang/invoke/MethodHandlesProxiesTest.java ++java/lang/invoke/MethodTypeTest.java ++java/lang/invoke/PermuteArgsReturnVoidTest.java ++java/lang/invoke/PermuteArgsTest.java ++java/lang/invoke/ThrowExceptionsTest.java ++java/lang/invoke/lambda/LogGeneratedClassesTest.java ++java/lang/invoke/lookup/TestDefenderMethodLookup.java ++java/lang/reflect/DefaultMethodMembers/FilterNotMostSpecific.java ++java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java ++java/lang/reflect/Generics/ThreadSafety.java ++java/lang/reflect/annotationSharing/AnnotationSharing.java ++java/math/BigDecimal/Constructor.java ++java/math/BigInteger/LargeValueExceptions.java ++java/net/Inet6Address/B6206527.java ++java/net/MulticastSocket/NoLoopbackPackets.java ++java/net/MulticastSocket/Promiscuous.java ++java/net/MulticastSocket/SetLoopbackMode.java ++java/net/MulticastSocket/Test.java ++java/net/SocketPermission/SocketPermissionTest.java ++java/net/Socks/SocksIPv6Test.java ++java/net/ipv6tests/B6521014.java ++java/nio/Buffer/Chars.java ++java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java ++java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java ++java/nio/channels/DatagramChannel/Promiscuous.java ++java/nio/channels/SocketChannel/AdaptSocketReadAfterClose.java ++java/nio/file/Files/BytesAndLines.java ++java/nio/file/Files/StreamTest.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/rmi/MarshalledObject/MOFilterTest.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/registry/serialFilter/RegistryFilterTest.java ++java/rmi/testlibrary/TestSocketFactory.java ++java/security/AccessController/LimitedDoPrivilegedWithNullPerms.java ++java/sql/testng/test/sql/BatchUpdateExceptionTests.java ++java/sql/testng/test/sql/DataTruncationTests.java ++java/sql/testng/test/sql/DateTests.java ++java/sql/testng/test/sql/DriverManagerPermissionsTests.java ++java/sql/testng/test/sql/DriverManagerTests.java ++java/sql/testng/test/sql/SQLClientInfoExceptionTests.java ++java/sql/testng/test/sql/SQLDataExceptionTests.java ++java/sql/testng/test/sql/SQLExceptionTests.java ++java/sql/testng/test/sql/SQLFeatureNotSupportedExceptionTests.java ++java/sql/testng/test/sql/SQLIntegrityConstraintViolationExceptionTests.java ++java/sql/testng/test/sql/SQLInvalidAuthorizationSpecExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientExceptionTests.java ++java/sql/testng/test/sql/SQLRecoverableExceptionTests.java ++java/sql/testng/test/sql/SQLSyntaxErrorExceptionTests.java ++java/sql/testng/test/sql/SQLTimeoutExceptionTests.java ++java/sql/testng/test/sql/SQLTransactionRollbackExceptionTests.java ++java/sql/testng/test/sql/SQLTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLTransientExceptionTests.java ++java/sql/testng/test/sql/SQLWarningTests.java ++java/sql/testng/test/sql/TimeTests.java ++java/sql/testng/test/sql/TimestampTests.java ++java/sql/testng/util/BaseTest.java ++java/sql/testng/util/DriverActionImpl.java ++java/sql/testng/util/SerializedBatchUpdateException.java ++java/sql/testng/util/StubConnection.java ++java/sql/testng/util/StubDriver.java ++java/sql/testng/util/StubDriverDA.java ++java/sql/testng/util/TestPolicy.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/text/Format/DateFormat/LocaleDateFormats.java ++java/text/Format/DateFormat/SimpleDateFormatPatternTest.java ++java/time/tck/java/time/AbstractDateTimeTest.java ++java/time/tck/java/time/AbstractTCKTest.java ++java/time/tck/java/time/MockSimplePeriod.java ++java/time/tck/java/time/TCKClock.java ++java/time/tck/java/time/TCKClock_Fixed.java ++java/time/tck/java/time/TCKClock_Offset.java ++java/time/tck/java/time/TCKClock_System.java ++java/time/tck/java/time/TCKClock_Tick.java ++java/time/tck/java/time/TCKDayOfWeek.java ++java/time/tck/java/time/TCKDuration.java ++java/time/tck/java/time/TCKInstant.java ++java/time/tck/java/time/TCKLocalDate.java ++java/time/tck/java/time/TCKLocalDateTime.java ++java/time/tck/java/time/TCKLocalTime.java ++java/time/tck/java/time/TCKMonth.java ++java/time/tck/java/time/TCKMonthDay.java ++java/time/tck/java/time/TCKOffsetDateTime.java ++java/time/tck/java/time/TCKOffsetTime.java ++java/time/tck/java/time/TCKPeriod.java ++java/time/tck/java/time/TCKYear.java ++java/time/tck/java/time/TCKYearMonth.java ++java/time/tck/java/time/TCKZoneId.java ++java/time/tck/java/time/TCKZoneOffset.java ++java/time/tck/java/time/TCKZonedDateTime.java ++java/time/tck/java/time/TestIsoChronology.java ++java/time/tck/java/time/chrono/CopticChronology.java ++java/time/tck/java/time/chrono/CopticDate.java ++java/time/tck/java/time/chrono/CopticEra.java ++java/time/tck/java/time/chrono/TCKChronoLocalDate.java ++java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ++java/time/tck/java/time/chrono/TCKChronoPeriod.java ++java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ++java/time/tck/java/time/chrono/TCKChronology.java ++java/time/tck/java/time/chrono/TCKHijrahChronology.java ++java/time/tck/java/time/chrono/TCKHijrahEra.java ++java/time/tck/java/time/chrono/TCKIsoChronology.java ++java/time/tck/java/time/chrono/TCKIsoEra.java ++java/time/tck/java/time/chrono/TCKJapaneseChronology.java ++java/time/tck/java/time/chrono/TCKJapaneseEra.java ++java/time/tck/java/time/chrono/TCKMinguoChronology.java ++java/time/tck/java/time/chrono/TCKMinguoEra.java ++java/time/tck/java/time/chrono/TCKTestServiceLoader.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistEra.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoZonedDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java ++java/time/tck/java/time/chrono/serial/TCKCopticSerialization.java ++java/time/tck/java/time/chrono/serial/TCKEraSerialization.java ++java/time/tck/java/time/format/TCKChronoPrinterParser.java ++java/time/tck/java/time/format/TCKDateTimeFormatter.java ++java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ++java/time/tck/java/time/format/TCKDateTimeFormatters.java ++java/time/tck/java/time/format/TCKDateTimeParseResolver.java ++java/time/tck/java/time/format/TCKDateTimeTextPrinting.java ++java/time/tck/java/time/format/TCKDecimalStyle.java ++java/time/tck/java/time/format/TCKFormatStyle.java ++java/time/tck/java/time/format/TCKInstantPrinterParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldPrinter.java ++java/time/tck/java/time/format/TCKLocalizedPrinterParser.java ++java/time/tck/java/time/format/TCKOffsetPrinterParser.java ++java/time/tck/java/time/format/TCKPadPrinterParser.java ++java/time/tck/java/time/format/TCKResolverStyle.java ++java/time/tck/java/time/format/TCKSignStyle.java ++java/time/tck/java/time/format/TCKTextStyle.java ++java/time/tck/java/time/format/TCKZoneIdPrinterParser.java ++java/time/tck/java/time/serial/TCKClockSerialization.java ++java/time/tck/java/time/serial/TCKDurationSerialization.java ++java/time/tck/java/time/serial/TCKInstantSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKLocalTimeSerialization.java ++java/time/tck/java/time/serial/TCKMonthDaySerialization.java ++java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java ++java/time/tck/java/time/serial/TCKPeriodSerialization.java ++java/time/tck/java/time/serial/TCKYearMonthSerialization.java ++java/time/tck/java/time/serial/TCKYearSerialization.java ++java/time/tck/java/time/serial/TCKZoneIdSerialization.java ++java/time/tck/java/time/serial/TCKZoneOffsetSerialization.java ++java/time/tck/java/time/serial/TCKZonedDateTimeSerialization.java ++java/time/tck/java/time/temporal/TCKChronoField.java ++java/time/tck/java/time/temporal/TCKChronoUnit.java ++java/time/tck/java/time/temporal/TCKIsoFields.java ++java/time/tck/java/time/temporal/TCKJulianFields.java ++java/time/tck/java/time/temporal/TCKTemporalAdjusters.java ++java/time/tck/java/time/temporal/TCKWeekFields.java ++java/time/tck/java/time/temporal/serial/TCKChronoFieldSerialization.java ++java/time/tck/java/time/temporal/serial/TCKChronoUnitSerialization.java ++java/time/tck/java/time/temporal/serial/TCKJulianFieldsSerialization.java ++java/time/tck/java/time/temporal/serial/TCKValueRangeSerialization.java ++java/time/tck/java/time/temporal/serial/TCKWeekFieldsSerialization.java ++java/time/tck/java/time/zone/TCKFixedZoneRules.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ++java/time/tck/java/time/zone/TCKZoneRules.java ++java/time/tck/java/time/zone/TCKZoneRulesProvider.java ++java/time/tck/java/time/zone/serial/TCKFixedZoneRulesSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRuleSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneRulesSerialization.java ++java/time/test/java/time/AbstractTest.java ++java/time/test/java/time/MockSimplePeriod.java ++java/time/test/java/time/TestClock_Fixed.java ++java/time/test/java/time/TestClock_Offset.java ++java/time/test/java/time/TestClock_System.java ++java/time/test/java/time/TestClock_Tick.java ++java/time/test/java/time/TestDuration.java ++java/time/test/java/time/TestInstant.java ++java/time/test/java/time/TestLocalDate.java ++java/time/test/java/time/TestLocalDateTime.java ++java/time/test/java/time/TestLocalTime.java ++java/time/test/java/time/TestMonthDay.java ++java/time/test/java/time/TestOffsetDateTime.java ++java/time/test/java/time/TestOffsetDateTime_instants.java ++java/time/test/java/time/TestOffsetTime.java ++java/time/test/java/time/TestPeriod.java ++java/time/test/java/time/TestYear.java ++java/time/test/java/time/TestYearMonth.java ++java/time/test/java/time/TestZoneId.java ++java/time/test/java/time/TestZoneOffset.java ++java/time/test/java/time/TestZonedDateTime.java ++java/time/test/java/time/chrono/TestChronoLocalDate.java ++java/time/test/java/time/chrono/TestChronologyPerf.java ++java/time/test/java/time/chrono/TestEraDisplayName.java ++java/time/test/java/time/chrono/TestExampleCode.java ++java/time/test/java/time/chrono/TestIsoChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronology.java ++java/time/test/java/time/chrono/TestServiceLoader.java ++java/time/test/java/time/chrono/TestThaiBuddhistChronoImpl.java ++java/time/test/java/time/chrono/TestUmmAlQuraChronology.java ++java/time/test/java/time/format/AbstractTestPrinterParser.java ++java/time/test/java/time/format/MockIOExceptionAppendable.java ++java/time/test/java/time/format/TestCharLiteralParser.java ++java/time/test/java/time/format/TestCharLiteralPrinter.java ++java/time/test/java/time/format/TestDateTimeFormatter.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilder.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java ++java/time/test/java/time/format/TestDateTimeParsing.java ++java/time/test/java/time/format/TestDateTimeTextProvider.java ++java/time/test/java/time/format/TestDecimalStyle.java ++java/time/test/java/time/format/TestFractionPrinterParser.java ++java/time/test/java/time/format/TestNonIsoFormatter.java ++java/time/test/java/time/format/TestNumberParser.java ++java/time/test/java/time/format/TestNumberPrinter.java ++java/time/test/java/time/format/TestPadPrinterDecorator.java ++java/time/test/java/time/format/TestReducedParser.java ++java/time/test/java/time/format/TestReducedPrinter.java ++java/time/test/java/time/format/TestSettingsParser.java ++java/time/test/java/time/format/TestStringLiteralParser.java ++java/time/test/java/time/format/TestStringLiteralPrinter.java ++java/time/test/java/time/format/TestTextParser.java ++java/time/test/java/time/format/TestTextPrinter.java ++java/time/test/java/time/format/TestZoneOffsetParser.java ++java/time/test/java/time/format/TestZoneOffsetPrinter.java ++java/time/test/java/time/format/TestZoneTextPrinterParser.java ++java/time/test/java/time/format/ZoneName.java ++java/time/test/java/time/temporal/MockFieldNoValue.java ++java/time/test/java/time/temporal/MockFieldValue.java ++java/time/test/java/time/temporal/TestChronoField.java ++java/time/test/java/time/temporal/TestChronoUnit.java ++java/time/test/java/time/temporal/TestDateTimeBuilderCombinations.java ++java/time/test/java/time/temporal/TestDateTimeValueRange.java ++java/time/test/java/time/temporal/TestIsoWeekFields.java ++java/time/test/java/time/temporal/TestJulianFields.java ++java/time/test/java/time/zone/TestFixedZoneRules.java ++java/time/test/java/util/TestFormatter.java ++java/util/Arrays/ParallelPrefix.java ++java/util/Arrays/SetAllTest.java ++java/util/Arrays/StreamAndSpliterator.java ++java/util/BitSet/BitSetStreamTest.java ++java/util/Calendar/JapanEraNameCompatTest.java ++java/util/Calendar/JapaneseLenientEraTest.java ++java/util/Calendar/SupplementalJapaneseEraTest.java ++java/util/Collection/CollectionDefaults.java ++java/util/Collections/CheckedIdentityMap.java ++java/util/Collections/CheckedMapBash.java ++java/util/Collections/CheckedQueue.java ++java/util/Collections/CheckedSetBash.java ++java/util/Collections/EmptyCollectionSerialization.java ++java/util/Collections/EmptyNavigableMap.java ++java/util/Collections/EmptyNavigableSet.java ++java/util/Collections/SingletonIterator.java ++java/util/Collections/SyncSubMutexes.java ++java/util/Collections/UnmodifiableMapEntrySet.java ++java/util/Collections/Wrappers.java ++java/util/Comparator/BasicTest.java ++java/util/Comparator/TypeTest.java ++java/util/HashMap/Bug8186171Test.java ++java/util/HashMap/TreeBinAssert.java ++java/util/IdentityHashMap/Capacity.java ++java/util/Iterator/IteratorDefaults.java ++java/util/Iterator/PrimitiveIteratorDefaults.java ++java/util/List/ListDefaults.java ++java/util/Map/BasicSerialization.java ++java/util/Map/Defaults.java ++java/util/Map/EntryComparators.java ++java/util/Map/MapBinToFromTreeTest.java ++java/util/Objects/CheckIndex.java ++java/util/Optional/Basic.java ++java/util/Optional/BasicDouble.java ++java/util/Optional/BasicInt.java ++java/util/Optional/BasicLong.java ++java/util/Random/RandomStreamTest.java ++java/util/Random/RandomTest.java ++java/util/Spliterator/SpliteratorCharacteristics.java ++java/util/Spliterator/SpliteratorCollisions.java ++java/util/Spliterator/SpliteratorLateBindingFailFastTest.java ++java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ++java/util/SplittableRandom/SplittableRandomTest.java ++java/util/StringJoiner/MergeTest.java ++java/util/StringJoiner/StringJoinerTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++java/util/concurrent/CompletableFuture/ThenComposeAsyncTest.java ++java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentAssociateTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentContainsKeyTest.java ++java/util/concurrent/LinkedTransferQueue/SpliteratorTraverseAddRemoveTest.java ++java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ++java/util/concurrent/atomic/AtomicReferenceTest.java ++java/util/function/BiFunction/BiFunctionTest.java ++java/util/function/BinaryOperator/BasicTest.java ++java/util/logging/LoggerSupplierAPIsTest.java ++java/util/regex/PatternStreamTest.java ++java/util/stream/boottest/java/util/stream/DoubleNodeTest.java ++java/util/stream/boottest/java/util/stream/FlagOpTest.java ++java/util/stream/boottest/java/util/stream/IntNodeTest.java ++java/util/stream/boottest/java/util/stream/LongNodeTest.java ++java/util/stream/boottest/java/util/stream/NodeBuilderTest.java ++java/util/stream/boottest/java/util/stream/NodeTest.java ++java/util/stream/boottest/java/util/stream/SliceSpliteratorTest.java ++java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ++java/util/stream/boottest/java/util/stream/StreamFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamOpFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamReuseTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/DeserializeMethodTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/MHProxiesTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java ++java/util/stream/test/org/openjdk/tests/java/util/FillableStringTest.java ++java/util/stream/test/org/openjdk/tests/java/util/MapTest.java ++java/util/stream/test/org/openjdk/tests/java/util/NullArgsTestCase.java ++java/util/stream/test/org/openjdk/tests/java/util/SplittableRandomTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectionAndMapModifyStreamTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountLargeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CustomFJPoolTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DoublePrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FilterOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindAnyOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/GroupByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntUniqOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/LongPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MatchOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MinMaxTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveAverageOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveSumTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/RangeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SequentialOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamCloseTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamLinkTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamParSeqTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TeeOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java ++java/util/zip/ZipFile/StreamZipEntriesTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/PrintServiceLookup/CountPrintServices.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/script/SimpleScriptContextNameChecksTest.java ++javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/smartcardio/CommandAPDUTest.java ++javax/smartcardio/ResponseAPDUTest.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/sql/testng/test/rowset/BaseRowSetTests.java ++javax/sql/testng/test/rowset/CommonRowSetTests.java ++javax/sql/testng/test/rowset/RowSetFactoryTests.java ++javax/sql/testng/test/rowset/RowSetMetaDataTests.java ++javax/sql/testng/test/rowset/RowSetProviderTests.java ++javax/sql/testng/test/rowset/RowSetWarningTests.java ++javax/sql/testng/test/rowset/cachedrowset/CachedRowSetTests.java ++javax/sql/testng/test/rowset/cachedrowset/CommonCachedRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/CityFilter.java ++javax/sql/testng/test/rowset/filteredrowset/FilteredRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/PrimaryKeyFilter.java ++javax/sql/testng/test/rowset/joinrowset/JoinRowSetTests.java ++javax/sql/testng/test/rowset/serial/SQLInputImplTests.java ++javax/sql/testng/test/rowset/serial/SQLOutputImplTests.java ++javax/sql/testng/test/rowset/serial/SerialArrayTests.java ++javax/sql/testng/test/rowset/serial/SerialBlobTests.java ++javax/sql/testng/test/rowset/serial/SerialClobTests.java ++javax/sql/testng/test/rowset/serial/SerialDataLinkTests.java ++javax/sql/testng/test/rowset/serial/SerialExceptionTests.java ++javax/sql/testng/test/rowset/serial/SerialJavaObjectTests.java ++javax/sql/testng/test/rowset/serial/SerialRefTests.java ++javax/sql/testng/test/rowset/serial/SerialStructTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryExceptionTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryPermissionsTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryTests.java ++javax/sql/testng/test/rowset/spi/SyncProviderExceptionTests.java ++javax/sql/testng/test/rowset/webrowset/CommonWebRowSetTests.java ++javax/sql/testng/test/rowset/webrowset/WebRowSetTests.java ++javax/sql/testng/util/PropertyStubProvider.java ++javax/sql/testng/util/StubArray.java ++javax/sql/testng/util/StubBaseRowSet.java ++javax/sql/testng/util/StubBlob.java ++javax/sql/testng/util/StubCachedRowSetImpl.java ++javax/sql/testng/util/StubClob.java ++javax/sql/testng/util/StubContext.java ++javax/sql/testng/util/StubFilteredRowSetImpl.java ++javax/sql/testng/util/StubJdbcRowSetImpl.java ++javax/sql/testng/util/StubJoinRowSetImpl.java ++javax/sql/testng/util/StubNClob.java ++javax/sql/testng/util/StubRef.java ++javax/sql/testng/util/StubRowId.java ++javax/sql/testng/util/StubRowSetFactory.java ++javax/sql/testng/util/StubSQLXML.java ++javax/sql/testng/util/StubStruct.java ++javax/sql/testng/util/StubSyncProvider.java ++javax/sql/testng/util/StubSyncResolver.java ++javax/sql/testng/util/StubWebRowSetImpl.java ++javax/sql/testng/util/SuperHero.java ++javax/sql/testng/util/TestRowSetListener.java ++javax/sql/testng/util/TestSQLDataImpl.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++javax/xml/bind/jxc/8046817/GenerateEnumSchema.java ++javax/xml/bind/jxc/8073519/SchemagenErrorReporting.java ++javax/xml/bind/jxc/8073872/SchemagenStackOverflow.java ++javax/xml/bind/marshal/8134111/UnmarshalTest.java ++javax/xml/bind/xjc/8145039/JaxbMarshallTest.java ++javax/xml/bind/xsom/8159240/WhitespacesTest.java ++javax/xml/jaxp/common/8144593/TransformationWarningsTest.java ++javax/xml/jaxp/common/8144593/ValidationWarningsTest.java ++javax/xml/jaxp/parsers/8072081/SupplementaryChars.java ++javax/xml/jaxp/parsers/8073385/BadExceptionMessageTest.java ++javax/xml/jaxp/stream/8145974/SurrogatesTest.java ++javax/xml/jaxp/stream/8153781/SkipDTDTest.java ++javax/xml/jaxp/testng/parse/XMLEntityScannerLoad.java ++javax/xml/jaxp/testng/parse/jdk7156085/UTF8ReaderBug.java ++javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java ++javax/xml/jaxp/transform/8062923/XslSubstringTest.java ++javax/xml/jaxp/transform/8079323/TemplatesTest.java ++javax/xml/jaxp/transform/8150704/TransformerTest.java ++javax/xml/jaxp/transform/8162598/TransformerTest.java ++javax/xml/jaxp/transform/8167179/NamespacePrefixTest.java ++javax/xml/jaxp/transform/8169112/TransformerTest.java ++javax/xml/jaxp/transform/8207760/JDK8207760.java ++javax/xml/jaxp/transform/sort/SortTest.java ++javax/xml/jaxp/unittest/xpath/XPathExpTest.java ++javax/xml/jaxp/validation/8149915/SchemaTest.java ++javax/xml/ws/8159058/SaajEmptyNamespaceTest.java ++javax/xml/ws/8172297/Main.java ++jdk/java/dwarf/TestDwarf.java ++jdk/lambda/ArrayCtorRefTest.java ++jdk/lambda/FDTest.java ++jdk/lambda/LambdaTranslationCompoundSamTest.java ++jdk/lambda/LambdaTranslationInInterface.java ++jdk/lambda/LambdaTranslationInnerConstructor.java ++jdk/lambda/LambdaTranslationTest1.java ++jdk/lambda/LambdaTranslationTest2.java ++jdk/lambda/MethodReferenceTestCallerSensitive.java ++jdk/lambda/MethodReferenceTestFDCCE.java ++jdk/lambda/MethodReferenceTestInnerDefault.java ++jdk/lambda/MethodReferenceTestInnerInstance.java ++jdk/lambda/MethodReferenceTestInnerVarArgsThis.java ++jdk/lambda/MethodReferenceTestInstance.java ++jdk/lambda/MethodReferenceTestInstanceMethod.java ++jdk/lambda/MethodReferenceTestKinds.java ++jdk/lambda/MethodReferenceTestNew.java ++jdk/lambda/MethodReferenceTestNewInner.java ++jdk/lambda/MethodReferenceTestSueCase1.java ++jdk/lambda/MethodReferenceTestSueCase2.java ++jdk/lambda/MethodReferenceTestSueCase4.java ++jdk/lambda/MethodReferenceTestSuper.java ++jdk/lambda/MethodReferenceTestSuperDefault.java ++jdk/lambda/MethodReferenceTestTypeConversion.java ++jdk/lambda/MethodReferenceTestVarArgs.java ++jdk/lambda/MethodReferenceTestVarArgsExt.java ++jdk/lambda/MethodReferenceTestVarArgsSuper.java ++jdk/lambda/MethodReferenceTestVarArgsSuperDefault.java ++jdk/lambda/MethodReferenceTestVarArgsThis.java ++jdk/lambda/TestInnerCtorRef.java ++jdk/lambda/TestPrivateCtorRef.java ++jdk/lambda/separate/AttributeInjector.java ++jdk/lambda/separate/ClassFile.java ++jdk/lambda/separate/ClassFilePreprocessor.java ++jdk/lambda/separate/ClassToInterfaceConverter.java ++jdk/lambda/separate/Compiler.java ++jdk/lambda/separate/DirectedClassLoader.java ++jdk/lambda/separate/SourceModel.java ++jdk/lambda/separate/TestHarness.java ++jdk/lambda/shapegen/ClassCase.java ++jdk/lambda/shapegen/Hierarchy.java ++jdk/lambda/shapegen/HierarchyGenerator.java ++jdk/lambda/shapegen/Rule.java ++jdk/lambda/shapegen/RuleGroup.java ++jdk/lambda/shapegen/TTNode.java ++jdk/lambda/shapegen/TTParser.java ++jdk/lambda/shapegen/TTShape.java ++jdk/lambda/vm/DefaultMethodRegressionTests.java ++jdk/lambda/vm/InterfaceAccessFlagsTest.java ++jdk/lambda/vm/StrictfpDefault.java ++sample/chatserver/ChatTest.java ++sample/mergesort/MergeSortTest.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++serviceability/dcmd/gc/HeapDumpTest.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/net/www/http/RequestMethodCheck/RequestMethodEquality.java ++sun/reflect/ReflectionFactory/ReflectionFactoryTest.java ++sun/rmi/server/UnicastServerRef/FilterUSRTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/security/x509/GeneralName/DNSNameTest.java ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++sun/util/calendar/zi/Beyond2037.java ++sun/util/resources/TimeZone/Bug8139107.java ++tools/launcher/Settings.java ++lib/combo/tools/javac/combo/Diagnostics.java ++lib/combo/tools/javac/combo/JavacTemplateTestBase.java ++lib/combo/tools/javac/combo/Template.java ++lib/combo/tools/javac/combo/TemplateTest.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java ++tools/javac/lambda/lambdaExecution/InInterface.java ++tools/javac/lambda/lambdaExecution/InnerConstructor.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java ++tools/javac/lambdaShapes/org/openjdk/tests/javac/FDTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java ++tools/javac/tree/T8024415.java ++tools/jdeps/MRJarWarning.java ++src/jdk/nashorn/api/javaaccess/test/BooleanAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/MethodAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberBoxingTest.java ++src/jdk/nashorn/api/javaaccess/test/ObjectAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/StringAccessTest.java ++src/jdk/nashorn/api/scripting/test/MultipleEngineTest.java ++src/jdk/nashorn/api/scripting/test/ScriptEngineTest.java ++src/jdk/nashorn/internal/runtime/regexp/joni/test/JoniTest.java ++src/jdk/nashorn/internal/runtime/regexp/test/JdkRegExpTest.java ++src/jdk/nashorn/internal/runtime/test/ConsStringTest.java ++src/jdk/nashorn/internal/runtime/test/ContextTest.java ++src/jdk/nashorn/internal/runtime/test/ExceptionsNotSerializable.java ++src/jdk/nashorn/internal/runtime/test/JDK_8078414_Test.java ++src/jdk/nashorn/internal/runtime/test/JSTypeTest.java ++src/jdk/nashorn/internal/runtime/test/LexicalBindingTest.java ++src/jdk/nashorn/internal/runtime/test/NoPersistenceCachingTest.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++com/sun/nio/sctp/SctpMultiChannel/Send.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++runtime/containers/docker/TestNUMANodes.java ++java/net/MulticastSocket/JoinLeave.java ++java/net/MulticastSocket/SetGetNetworkInterfaceTest.java ++java/net/MulticastSocket/SetOutgoingIf.java ++java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ++sun/management/jmxremote/startstop/JMXStartStopTest.java ++java/awt/Graphics2D/WhiteTextColorTest.java ++jdk/jfr/event/compiler/TestCompilerInlining.java ++sun/net/www/http/ChunkedOutputStream/checkError.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/openEuler-2003.txt b/jdk/test/problemlist/openEuler-2003.txt +new file mode 100644 +index 000000000..7d584f445 +--- /dev/null ++++ b/jdk/test/problemlist/openEuler-2003.txt +@@ -0,0 +1,1860 @@ ++compiler/c2/TestNegativeStringBuilderCapacity.java ++gc/survivorAlignment/TestPromotionToSurvivor.java ++runtime/6929067/Test6929067.sh ++runtime/InitialThreadOverflow/testme.sh ++runtime/containers/docker/TestNUMANodes.java ++serviceability/dcmd/ClassLoaderHierarchyTest.java ++serviceability/dcmd/MallocInfoTest.java ++serviceability/dcmd/PerfMapTest.java ++serviceability/dcmd/TrimLibcHeapTest.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapTimeoutTest.java ++com/sun/jndi/ldap/NamingExceptionMessageTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ++com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java ++demo/zipfs/LargeCompressedEntrySizeTest.java ++demo/zipfs/ZipFSPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/Graphics2D/WhiteTextColorTest.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/io/BufferedReader/Lines.java ++java/io/LineNumberReader/MarkSplitCRLF.java ++java/io/Serializable/serialFilter/CheckArrayTest.java ++java/io/Serializable/serialFilter/CheckInputOrderTest.java ++java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java ++java/io/Serializable/serialFilter/GlobalFilterTest.java ++java/io/Serializable/serialFilter/MixedFiltersTest.java ++java/io/Serializable/serialFilter/SerialFilterTest.java ++java/lang/CharSequence/DefaultTest.java ++java/lang/IntegralPrimitiveToString.java ++java/lang/PrimitiveSumMinMaxTest.java ++java/lang/String/StringJoinTest.java ++java/lang/StringBuilder/Capacity.java ++java/lang/Thread/StopThrowable.java ++java/lang/ThreadLocal/ThreadLocalSupplierTest.java ++java/lang/annotation/AnnotationWithLambda.java ++java/lang/annotation/TypeVariableBounds.java ++java/lang/annotation/typeAnnotations/BadCPIndex.java ++java/lang/annotation/typeAnnotations/ConstructorReceiverTest.java ++java/lang/annotation/typeAnnotations/TestExecutableGetAnnotatedType.java ++java/lang/invoke/AccessControlTest.java ++java/lang/invoke/ArrayConstructorTest.java ++java/lang/invoke/ClassValueTest.java ++java/lang/invoke/InvokeGenericTest.java ++java/lang/invoke/JavaDocExamplesTest.java ++java/lang/invoke/MethodHandlesProxiesTest.java ++java/lang/invoke/MethodTypeTest.java ++java/lang/invoke/PermuteArgsReturnVoidTest.java ++java/lang/invoke/PermuteArgsTest.java ++java/lang/invoke/ThrowExceptionsTest.java ++java/lang/invoke/lambda/LogGeneratedClassesTest.java ++java/lang/invoke/lookup/TestDefenderMethodLookup.java ++java/lang/reflect/DefaultMethodMembers/FilterNotMostSpecific.java ++java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java ++java/lang/reflect/Generics/ThreadSafety.java ++java/lang/reflect/annotationSharing/AnnotationSharing.java ++java/math/BigDecimal/Constructor.java ++java/math/BigInteger/LargeValueExceptions.java ++java/net/SocketPermission/SocketPermissionTest.java ++java/net/Socks/SocksIPv6Test.java ++java/nio/Buffer/Chars.java ++java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java ++java/nio/channels/SocketChannel/AdaptSocketReadAfterClose.java ++java/nio/file/Files/BytesAndLines.java ++java/nio/file/Files/StreamTest.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/rmi/MarshalledObject/MOFilterTest.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/registry/serialFilter/RegistryFilterTest.java ++java/rmi/testlibrary/TestSocketFactory.java ++java/rmi/transport/dgcDeadLock/DGCDeadLock.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++java/security/AccessController/LimitedDoPrivilegedWithNullPerms.java ++java/sql/testng/test/sql/BatchUpdateExceptionTests.java ++java/sql/testng/test/sql/DataTruncationTests.java ++java/sql/testng/test/sql/DateTests.java ++java/sql/testng/test/sql/DriverManagerPermissionsTests.java ++java/sql/testng/test/sql/DriverManagerTests.java ++java/sql/testng/test/sql/SQLClientInfoExceptionTests.java ++java/sql/testng/test/sql/SQLDataExceptionTests.java ++java/sql/testng/test/sql/SQLExceptionTests.java ++java/sql/testng/test/sql/SQLFeatureNotSupportedExceptionTests.java ++java/sql/testng/test/sql/SQLIntegrityConstraintViolationExceptionTests.java ++java/sql/testng/test/sql/SQLInvalidAuthorizationSpecExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientExceptionTests.java ++java/sql/testng/test/sql/SQLRecoverableExceptionTests.java ++java/sql/testng/test/sql/SQLSyntaxErrorExceptionTests.java ++java/sql/testng/test/sql/SQLTimeoutExceptionTests.java ++java/sql/testng/test/sql/SQLTransactionRollbackExceptionTests.java ++java/sql/testng/test/sql/SQLTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLTransientExceptionTests.java ++java/sql/testng/test/sql/SQLWarningTests.java ++java/sql/testng/test/sql/TimeTests.java ++java/sql/testng/test/sql/TimestampTests.java ++java/sql/testng/util/BaseTest.java ++java/sql/testng/util/DriverActionImpl.java ++java/sql/testng/util/SerializedBatchUpdateException.java ++java/sql/testng/util/StubConnection.java ++java/sql/testng/util/StubDriver.java ++java/sql/testng/util/StubDriverDA.java ++java/sql/testng/util/TestPolicy.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/text/Format/DateFormat/LocaleDateFormats.java ++java/text/Format/DateFormat/SimpleDateFormatPatternTest.java ++java/time/tck/java/time/AbstractDateTimeTest.java ++java/time/tck/java/time/AbstractTCKTest.java ++java/time/tck/java/time/MockSimplePeriod.java ++java/time/tck/java/time/TCKClock.java ++java/time/tck/java/time/TCKClock_Fixed.java ++java/time/tck/java/time/TCKClock_Offset.java ++java/time/tck/java/time/TCKClock_System.java ++java/time/tck/java/time/TCKClock_Tick.java ++java/time/tck/java/time/TCKDayOfWeek.java ++java/time/tck/java/time/TCKDuration.java ++java/time/tck/java/time/TCKInstant.java ++java/time/tck/java/time/TCKLocalDate.java ++java/time/tck/java/time/TCKLocalDateTime.java ++java/time/tck/java/time/TCKLocalTime.java ++java/time/tck/java/time/TCKMonth.java ++java/time/tck/java/time/TCKMonthDay.java ++java/time/tck/java/time/TCKOffsetDateTime.java ++java/time/tck/java/time/TCKOffsetTime.java ++java/time/tck/java/time/TCKPeriod.java ++java/time/tck/java/time/TCKYear.java ++java/time/tck/java/time/TCKYearMonth.java ++java/time/tck/java/time/TCKZoneId.java ++java/time/tck/java/time/TCKZoneOffset.java ++java/time/tck/java/time/TCKZonedDateTime.java ++java/time/tck/java/time/TestIsoChronology.java ++java/time/tck/java/time/chrono/CopticChronology.java ++java/time/tck/java/time/chrono/CopticDate.java ++java/time/tck/java/time/chrono/CopticEra.java ++java/time/tck/java/time/chrono/TCKChronoLocalDate.java ++java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ++java/time/tck/java/time/chrono/TCKChronoPeriod.java ++java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ++java/time/tck/java/time/chrono/TCKChronology.java ++java/time/tck/java/time/chrono/TCKHijrahChronology.java ++java/time/tck/java/time/chrono/TCKHijrahEra.java ++java/time/tck/java/time/chrono/TCKIsoChronology.java ++java/time/tck/java/time/chrono/TCKIsoEra.java ++java/time/tck/java/time/chrono/TCKJapaneseChronology.java ++java/time/tck/java/time/chrono/TCKJapaneseEra.java ++java/time/tck/java/time/chrono/TCKMinguoChronology.java ++java/time/tck/java/time/chrono/TCKMinguoEra.java ++java/time/tck/java/time/chrono/TCKTestServiceLoader.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistEra.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoZonedDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java ++java/time/tck/java/time/chrono/serial/TCKCopticSerialization.java ++java/time/tck/java/time/chrono/serial/TCKEraSerialization.java ++java/time/tck/java/time/format/TCKChronoPrinterParser.java ++java/time/tck/java/time/format/TCKDateTimeFormatter.java ++java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ++java/time/tck/java/time/format/TCKDateTimeFormatters.java ++java/time/tck/java/time/format/TCKDateTimeParseResolver.java ++java/time/tck/java/time/format/TCKDateTimeTextPrinting.java ++java/time/tck/java/time/format/TCKDecimalStyle.java ++java/time/tck/java/time/format/TCKFormatStyle.java ++java/time/tck/java/time/format/TCKInstantPrinterParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldPrinter.java ++java/time/tck/java/time/format/TCKLocalizedPrinterParser.java ++java/time/tck/java/time/format/TCKOffsetPrinterParser.java ++java/time/tck/java/time/format/TCKPadPrinterParser.java ++java/time/tck/java/time/format/TCKResolverStyle.java ++java/time/tck/java/time/format/TCKSignStyle.java ++java/time/tck/java/time/format/TCKTextStyle.java ++java/time/tck/java/time/format/TCKZoneIdPrinterParser.java ++java/time/tck/java/time/serial/TCKClockSerialization.java ++java/time/tck/java/time/serial/TCKDurationSerialization.java ++java/time/tck/java/time/serial/TCKInstantSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKLocalTimeSerialization.java ++java/time/tck/java/time/serial/TCKMonthDaySerialization.java ++java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java ++java/time/tck/java/time/serial/TCKPeriodSerialization.java ++java/time/tck/java/time/serial/TCKYearMonthSerialization.java ++java/time/tck/java/time/serial/TCKYearSerialization.java ++java/time/tck/java/time/serial/TCKZoneIdSerialization.java ++java/time/tck/java/time/serial/TCKZoneOffsetSerialization.java ++java/time/tck/java/time/serial/TCKZonedDateTimeSerialization.java ++java/time/tck/java/time/temporal/TCKChronoField.java ++java/time/tck/java/time/temporal/TCKChronoUnit.java ++java/time/tck/java/time/temporal/TCKIsoFields.java ++java/time/tck/java/time/temporal/TCKJulianFields.java ++java/time/tck/java/time/temporal/TCKTemporalAdjusters.java ++java/time/tck/java/time/temporal/TCKWeekFields.java ++java/time/tck/java/time/temporal/serial/TCKChronoFieldSerialization.java ++java/time/tck/java/time/temporal/serial/TCKChronoUnitSerialization.java ++java/time/tck/java/time/temporal/serial/TCKJulianFieldsSerialization.java ++java/time/tck/java/time/temporal/serial/TCKValueRangeSerialization.java ++java/time/tck/java/time/temporal/serial/TCKWeekFieldsSerialization.java ++java/time/tck/java/time/zone/TCKFixedZoneRules.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ++java/time/tck/java/time/zone/TCKZoneRules.java ++java/time/tck/java/time/zone/TCKZoneRulesProvider.java ++java/time/tck/java/time/zone/serial/TCKFixedZoneRulesSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRuleSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneRulesSerialization.java ++java/time/test/java/time/AbstractTest.java ++java/time/test/java/time/MockSimplePeriod.java ++java/time/test/java/time/TestClock_Fixed.java ++java/time/test/java/time/TestClock_Offset.java ++java/time/test/java/time/TestClock_System.java ++java/time/test/java/time/TestClock_Tick.java ++java/time/test/java/time/TestDuration.java ++java/time/test/java/time/TestInstant.java ++java/time/test/java/time/TestLocalDate.java ++java/time/test/java/time/TestLocalDateTime.java ++java/time/test/java/time/TestLocalTime.java ++java/time/test/java/time/TestMonthDay.java ++java/time/test/java/time/TestOffsetDateTime.java ++java/time/test/java/time/TestOffsetDateTime_instants.java ++java/time/test/java/time/TestOffsetTime.java ++java/time/test/java/time/TestPeriod.java ++java/time/test/java/time/TestYear.java ++java/time/test/java/time/TestYearMonth.java ++java/time/test/java/time/TestZoneId.java ++java/time/test/java/time/TestZoneOffset.java ++java/time/test/java/time/TestZonedDateTime.java ++java/time/test/java/time/chrono/TestChronoLocalDate.java ++java/time/test/java/time/chrono/TestChronologyPerf.java ++java/time/test/java/time/chrono/TestEraDisplayName.java ++java/time/test/java/time/chrono/TestExampleCode.java ++java/time/test/java/time/chrono/TestIsoChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronology.java ++java/time/test/java/time/chrono/TestServiceLoader.java ++java/time/test/java/time/chrono/TestThaiBuddhistChronoImpl.java ++java/time/test/java/time/chrono/TestUmmAlQuraChronology.java ++java/time/test/java/time/format/AbstractTestPrinterParser.java ++java/time/test/java/time/format/MockIOExceptionAppendable.java ++java/time/test/java/time/format/TestCharLiteralParser.java ++java/time/test/java/time/format/TestCharLiteralPrinter.java ++java/time/test/java/time/format/TestDateTimeFormatter.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilder.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java ++java/time/test/java/time/format/TestDateTimeParsing.java ++java/time/test/java/time/format/TestDateTimeTextProvider.java ++java/time/test/java/time/format/TestDecimalStyle.java ++java/time/test/java/time/format/TestFractionPrinterParser.java ++java/time/test/java/time/format/TestNonIsoFormatter.java ++java/time/test/java/time/format/TestNumberParser.java ++java/time/test/java/time/format/TestNumberPrinter.java ++java/time/test/java/time/format/TestPadPrinterDecorator.java ++java/time/test/java/time/format/TestReducedParser.java ++java/time/test/java/time/format/TestReducedPrinter.java ++java/time/test/java/time/format/TestSettingsParser.java ++java/time/test/java/time/format/TestStringLiteralParser.java ++java/time/test/java/time/format/TestStringLiteralPrinter.java ++java/time/test/java/time/format/TestTextParser.java ++java/time/test/java/time/format/TestTextPrinter.java ++java/time/test/java/time/format/TestZoneOffsetParser.java ++java/time/test/java/time/format/TestZoneOffsetPrinter.java ++java/time/test/java/time/format/TestZoneTextPrinterParser.java ++java/time/test/java/time/format/ZoneName.java ++java/time/test/java/time/temporal/MockFieldNoValue.java ++java/time/test/java/time/temporal/MockFieldValue.java ++java/time/test/java/time/temporal/TestChronoField.java ++java/time/test/java/time/temporal/TestChronoUnit.java ++java/time/test/java/time/temporal/TestDateTimeBuilderCombinations.java ++java/time/test/java/time/temporal/TestDateTimeValueRange.java ++java/time/test/java/time/temporal/TestIsoWeekFields.java ++java/time/test/java/time/temporal/TestJulianFields.java ++java/time/test/java/time/zone/TestFixedZoneRules.java ++java/time/test/java/util/TestFormatter.java ++java/util/Arrays/ParallelPrefix.java ++java/util/Arrays/SetAllTest.java ++java/util/Arrays/StreamAndSpliterator.java ++java/util/BitSet/BitSetStreamTest.java ++java/util/Calendar/JapanEraNameCompatTest.java ++java/util/Calendar/JapaneseLenientEraTest.java ++java/util/Calendar/SupplementalJapaneseEraTest.java ++java/util/Collection/CollectionDefaults.java ++java/util/Collections/CheckedIdentityMap.java ++java/util/Collections/CheckedMapBash.java ++java/util/Collections/CheckedQueue.java ++java/util/Collections/CheckedSetBash.java ++java/util/Collections/EmptyCollectionSerialization.java ++java/util/Collections/EmptyNavigableMap.java ++java/util/Collections/EmptyNavigableSet.java ++java/util/Collections/SingletonIterator.java ++java/util/Collections/SyncSubMutexes.java ++java/util/Collections/UnmodifiableMapEntrySet.java ++java/util/Collections/Wrappers.java ++java/util/Comparator/BasicTest.java ++java/util/Comparator/TypeTest.java ++java/util/HashMap/Bug8186171Test.java ++java/util/HashMap/TreeBinAssert.java ++java/util/IdentityHashMap/Capacity.java ++java/util/Iterator/IteratorDefaults.java ++java/util/Iterator/PrimitiveIteratorDefaults.java ++java/util/List/ListDefaults.java ++java/util/Map/BasicSerialization.java ++java/util/Map/Defaults.java ++java/util/Map/EntryComparators.java ++java/util/Map/MapBinToFromTreeTest.java ++java/util/Objects/CheckIndex.java ++java/util/Optional/Basic.java ++java/util/Optional/BasicDouble.java ++java/util/Optional/BasicInt.java ++java/util/Optional/BasicLong.java ++java/util/Random/RandomStreamTest.java ++java/util/Random/RandomTest.java ++java/util/Spliterator/SpliteratorCharacteristics.java ++java/util/Spliterator/SpliteratorCollisions.java ++java/util/Spliterator/SpliteratorLateBindingFailFastTest.java ++java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ++java/util/SplittableRandom/SplittableRandomTest.java ++java/util/StringJoiner/MergeTest.java ++java/util/StringJoiner/StringJoinerTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++java/util/concurrent/CompletableFuture/ThenComposeAsyncTest.java ++java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentAssociateTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentContainsKeyTest.java ++java/util/concurrent/LinkedTransferQueue/SpliteratorTraverseAddRemoveTest.java ++java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ++java/util/concurrent/atomic/AtomicReferenceTest.java ++java/util/function/BiFunction/BiFunctionTest.java ++java/util/function/BinaryOperator/BasicTest.java ++java/util/logging/LoggerSupplierAPIsTest.java ++java/util/regex/PatternStreamTest.java ++java/util/stream/boottest/java/util/stream/DoubleNodeTest.java ++java/util/stream/boottest/java/util/stream/FlagOpTest.java ++java/util/stream/boottest/java/util/stream/IntNodeTest.java ++java/util/stream/boottest/java/util/stream/LongNodeTest.java ++java/util/stream/boottest/java/util/stream/NodeBuilderTest.java ++java/util/stream/boottest/java/util/stream/NodeTest.java ++java/util/stream/boottest/java/util/stream/SliceSpliteratorTest.java ++java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ++java/util/stream/boottest/java/util/stream/StreamFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamOpFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamReuseTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/DeserializeMethodTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/MHProxiesTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java ++java/util/stream/test/org/openjdk/tests/java/util/FillableStringTest.java ++java/util/stream/test/org/openjdk/tests/java/util/MapTest.java ++java/util/stream/test/org/openjdk/tests/java/util/NullArgsTestCase.java ++java/util/stream/test/org/openjdk/tests/java/util/SplittableRandomTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectionAndMapModifyStreamTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountLargeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CustomFJPoolTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DoublePrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FilterOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindAnyOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/GroupByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntUniqOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/LongPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MatchOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MinMaxTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveAverageOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveSumTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/RangeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SequentialOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamCloseTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamLinkTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamParSeqTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TeeOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java ++java/util/zip/ZipFile/StreamZipEntriesTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/management/remote/mandatory/connection/RMIConnector_NPETest.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/PrintServiceLookup/CountPrintServices.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/script/SimpleScriptContextNameChecksTest.java ++javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/smartcardio/CommandAPDUTest.java ++javax/smartcardio/ResponseAPDUTest.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/sql/testng/test/rowset/BaseRowSetTests.java ++javax/sql/testng/test/rowset/CommonRowSetTests.java ++javax/sql/testng/test/rowset/RowSetFactoryTests.java ++javax/sql/testng/test/rowset/RowSetMetaDataTests.java ++javax/sql/testng/test/rowset/RowSetProviderTests.java ++javax/sql/testng/test/rowset/RowSetWarningTests.java ++javax/sql/testng/test/rowset/cachedrowset/CachedRowSetTests.java ++javax/sql/testng/test/rowset/cachedrowset/CommonCachedRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/CityFilter.java ++javax/sql/testng/test/rowset/filteredrowset/FilteredRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/PrimaryKeyFilter.java ++javax/sql/testng/test/rowset/joinrowset/JoinRowSetTests.java ++javax/sql/testng/test/rowset/serial/SQLInputImplTests.java ++javax/sql/testng/test/rowset/serial/SQLOutputImplTests.java ++javax/sql/testng/test/rowset/serial/SerialArrayTests.java ++javax/sql/testng/test/rowset/serial/SerialBlobTests.java ++javax/sql/testng/test/rowset/serial/SerialClobTests.java ++javax/sql/testng/test/rowset/serial/SerialDataLinkTests.java ++javax/sql/testng/test/rowset/serial/SerialExceptionTests.java ++javax/sql/testng/test/rowset/serial/SerialJavaObjectTests.java ++javax/sql/testng/test/rowset/serial/SerialRefTests.java ++javax/sql/testng/test/rowset/serial/SerialStructTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryExceptionTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryPermissionsTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryTests.java ++javax/sql/testng/test/rowset/spi/SyncProviderExceptionTests.java ++javax/sql/testng/test/rowset/webrowset/CommonWebRowSetTests.java ++javax/sql/testng/test/rowset/webrowset/WebRowSetTests.java ++javax/sql/testng/util/PropertyStubProvider.java ++javax/sql/testng/util/StubArray.java ++javax/sql/testng/util/StubBaseRowSet.java ++javax/sql/testng/util/StubBlob.java ++javax/sql/testng/util/StubCachedRowSetImpl.java ++javax/sql/testng/util/StubClob.java ++javax/sql/testng/util/StubContext.java ++javax/sql/testng/util/StubFilteredRowSetImpl.java ++javax/sql/testng/util/StubJdbcRowSetImpl.java ++javax/sql/testng/util/StubJoinRowSetImpl.java ++javax/sql/testng/util/StubNClob.java ++javax/sql/testng/util/StubRef.java ++javax/sql/testng/util/StubRowId.java ++javax/sql/testng/util/StubRowSetFactory.java ++javax/sql/testng/util/StubSQLXML.java ++javax/sql/testng/util/StubStruct.java ++javax/sql/testng/util/StubSyncProvider.java ++javax/sql/testng/util/StubSyncResolver.java ++javax/sql/testng/util/StubWebRowSetImpl.java ++javax/sql/testng/util/SuperHero.java ++javax/sql/testng/util/TestRowSetListener.java ++javax/sql/testng/util/TestSQLDataImpl.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++javax/xml/bind/jxc/8046817/GenerateEnumSchema.java ++javax/xml/bind/jxc/8073519/SchemagenErrorReporting.java ++javax/xml/bind/jxc/8073872/SchemagenStackOverflow.java ++javax/xml/bind/marshal/8134111/UnmarshalTest.java ++javax/xml/bind/xjc/8145039/JaxbMarshallTest.java ++javax/xml/bind/xsom/8159240/WhitespacesTest.java ++javax/xml/jaxp/common/8144593/TransformationWarningsTest.java ++javax/xml/jaxp/common/8144593/ValidationWarningsTest.java ++javax/xml/jaxp/parsers/8072081/SupplementaryChars.java ++javax/xml/jaxp/parsers/8073385/BadExceptionMessageTest.java ++javax/xml/jaxp/stream/8145974/SurrogatesTest.java ++javax/xml/jaxp/stream/8153781/SkipDTDTest.java ++javax/xml/jaxp/testng/parse/XMLEntityScannerLoad.java ++javax/xml/jaxp/testng/parse/jdk7156085/UTF8ReaderBug.java ++javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java ++javax/xml/jaxp/transform/8062923/XslSubstringTest.java ++javax/xml/jaxp/transform/8079323/TemplatesTest.java ++javax/xml/jaxp/transform/8150704/TransformerTest.java ++javax/xml/jaxp/transform/8162598/TransformerTest.java ++javax/xml/jaxp/transform/8167179/NamespacePrefixTest.java ++javax/xml/jaxp/transform/8169112/TransformerTest.java ++javax/xml/jaxp/transform/8207760/JDK8207760.java ++javax/xml/jaxp/transform/sort/SortTest.java ++javax/xml/jaxp/unittest/xpath/XPathExpTest.java ++javax/xml/jaxp/validation/8149915/SchemaTest.java ++javax/xml/ws/8159058/SaajEmptyNamespaceTest.java ++javax/xml/ws/8172297/Main.java ++jdk/java/dwarf/TestDwarf.java ++jdk/lambda/ArrayCtorRefTest.java ++jdk/lambda/FDTest.java ++jdk/lambda/LambdaTranslationCompoundSamTest.java ++jdk/lambda/LambdaTranslationInInterface.java ++jdk/lambda/LambdaTranslationInnerConstructor.java ++jdk/lambda/LambdaTranslationTest1.java ++jdk/lambda/LambdaTranslationTest2.java ++jdk/lambda/MethodReferenceTestCallerSensitive.java ++jdk/lambda/MethodReferenceTestFDCCE.java ++jdk/lambda/MethodReferenceTestInnerDefault.java ++jdk/lambda/MethodReferenceTestInnerInstance.java ++jdk/lambda/MethodReferenceTestInnerVarArgsThis.java ++jdk/lambda/MethodReferenceTestInstance.java ++jdk/lambda/MethodReferenceTestInstanceMethod.java ++jdk/lambda/MethodReferenceTestKinds.java ++jdk/lambda/MethodReferenceTestNew.java ++jdk/lambda/MethodReferenceTestNewInner.java ++jdk/lambda/MethodReferenceTestSueCase1.java ++jdk/lambda/MethodReferenceTestSueCase2.java ++jdk/lambda/MethodReferenceTestSueCase4.java ++jdk/lambda/MethodReferenceTestSuper.java ++jdk/lambda/MethodReferenceTestSuperDefault.java ++jdk/lambda/MethodReferenceTestTypeConversion.java ++jdk/lambda/MethodReferenceTestVarArgs.java ++jdk/lambda/MethodReferenceTestVarArgsExt.java ++jdk/lambda/MethodReferenceTestVarArgsSuper.java ++jdk/lambda/MethodReferenceTestVarArgsSuperDefault.java ++jdk/lambda/MethodReferenceTestVarArgsThis.java ++jdk/lambda/TestInnerCtorRef.java ++jdk/lambda/TestPrivateCtorRef.java ++jdk/lambda/separate/AttributeInjector.java ++jdk/lambda/separate/ClassFile.java ++jdk/lambda/separate/ClassFilePreprocessor.java ++jdk/lambda/separate/ClassToInterfaceConverter.java ++jdk/lambda/separate/Compiler.java ++jdk/lambda/separate/DirectedClassLoader.java ++jdk/lambda/separate/SourceModel.java ++jdk/lambda/separate/TestHarness.java ++jdk/lambda/shapegen/ClassCase.java ++jdk/lambda/shapegen/Hierarchy.java ++jdk/lambda/shapegen/HierarchyGenerator.java ++jdk/lambda/shapegen/Rule.java ++jdk/lambda/shapegen/RuleGroup.java ++jdk/lambda/shapegen/TTNode.java ++jdk/lambda/shapegen/TTParser.java ++jdk/lambda/shapegen/TTShape.java ++jdk/lambda/vm/DefaultMethodRegressionTests.java ++jdk/lambda/vm/InterfaceAccessFlagsTest.java ++jdk/lambda/vm/StrictfpDefault.java ++sample/chatserver/ChatTest.java ++sample/mergesort/MergeSortTest.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++serviceability/dcmd/gc/HeapDumpTest.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/net/www/http/RequestMethodCheck/RequestMethodEquality.java ++sun/reflect/ReflectionFactory/ReflectionFactoryTest.java ++sun/rmi/server/UnicastServerRef/FilterUSRTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/security/x509/GeneralName/DNSNameTest.java ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++sun/util/calendar/zi/Beyond2037.java ++sun/util/resources/TimeZone/Bug8139107.java ++tools/launcher/Settings.java ++lib/combo/tools/javac/combo/Diagnostics.java ++lib/combo/tools/javac/combo/JavacTemplateTestBase.java ++lib/combo/tools/javac/combo/Template.java ++lib/combo/tools/javac/combo/TemplateTest.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java ++tools/javac/lambda/lambdaExecution/InInterface.java ++tools/javac/lambda/lambdaExecution/InnerConstructor.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java ++tools/javac/lambdaShapes/org/openjdk/tests/javac/FDTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java ++tools/javac/tree/T8024415.java ++tools/jdeps/MRJarWarning.java ++src/jdk/nashorn/api/javaaccess/test/BooleanAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/MethodAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberBoxingTest.java ++src/jdk/nashorn/api/javaaccess/test/ObjectAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/StringAccessTest.java ++src/jdk/nashorn/api/scripting/test/MultipleEngineTest.java ++src/jdk/nashorn/api/scripting/test/ScriptEngineTest.java ++src/jdk/nashorn/internal/runtime/regexp/joni/test/JoniTest.java ++src/jdk/nashorn/internal/runtime/regexp/test/JdkRegExpTest.java ++src/jdk/nashorn/internal/runtime/test/ConsStringTest.java ++src/jdk/nashorn/internal/runtime/test/ContextTest.java ++src/jdk/nashorn/internal/runtime/test/ExceptionsNotSerializable.java ++src/jdk/nashorn/internal/runtime/test/JDK_8078414_Test.java ++src/jdk/nashorn/internal/runtime/test/JSTypeTest.java ++src/jdk/nashorn/internal/runtime/test/LexicalBindingTest.java ++src/jdk/nashorn/internal/runtime/test/NoPersistenceCachingTest.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ++java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java ++java/nio/channels/AsyncCloseAndInterrupt.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/openEuler-2203.txt b/jdk/test/problemlist/openEuler-2203.txt +new file mode 100644 +index 000000000..c32f82891 +--- /dev/null ++++ b/jdk/test/problemlist/openEuler-2203.txt +@@ -0,0 +1,1271 @@ ++compiler/profiling/spectrapredefineclass/Launcher.java ++gc/survivorAlignment/TestPromotionToSurvivor.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapDnsProviderTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ++com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/FontMetrics/MaxAdvanceIsMax.java ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/lang/management/ThreadMXBean/AllThreadIds.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/nio/file/spi/SetDefaultProvider.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/imageio/plugins/png/ItxtUtf8Test.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++jdk/java/dwarf/TestDwarf.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/suse-15sp4.txt b/jdk/test/problemlist/suse-15sp4.txt +new file mode 100644 +index 000000000..f9084b3f7 +--- /dev/null ++++ b/jdk/test/problemlist/suse-15sp4.txt +@@ -0,0 +1,1271 @@ ++compiler/profiling/spectrapredefineclass/Launcher.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/FontMetrics/MaxAdvanceIsMax.java ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/RotTransText.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/Graphics2D/WhiteTextColorTest.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/RotatedTextTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/nio/file/spi/SetDefaultProvider.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/imageio/plugins/png/ItxtUtf8Test.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++jdk/java/dwarf/TestDwarf.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/jvmstat/monitor/MonitoredVm/CR6672135.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/UIDefaults/6795356/bug6795356.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/ubuntu-2004.txt b/jdk/test/problemlist/ubuntu-2004.txt +new file mode 100644 +index 000000000..11a2967f2 +--- /dev/null ++++ b/jdk/test/problemlist/ubuntu-2004.txt +@@ -0,0 +1,1851 @@ ++compiler/c2/TestNegativeStringBuilderCapacity.java ++compiler/profiling/spectrapredefineclass/Launcher.java ++gc/survivorAlignment/TestPromotionToSurvivor.java ++serviceability/dcmd/ClassLoaderHierarchyTest.java ++serviceability/dcmd/MallocInfoTest.java ++serviceability/dcmd/PerfMapTest.java ++serviceability/dcmd/TrimLibcHeapTest.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapTimeoutTest.java ++com/sun/jndi/ldap/NamingExceptionMessageTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++demo/zipfs/LargeCompressedEntrySizeTest.java ++demo/zipfs/ZipFSPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/io/BufferedReader/Lines.java ++java/io/LineNumberReader/MarkSplitCRLF.java ++java/io/Serializable/serialFilter/CheckArrayTest.java ++java/io/Serializable/serialFilter/CheckInputOrderTest.java ++java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java ++java/io/Serializable/serialFilter/GlobalFilterTest.java ++java/io/Serializable/serialFilter/MixedFiltersTest.java ++java/io/Serializable/serialFilter/SerialFilterTest.java ++java/lang/CharSequence/DefaultTest.java ++java/lang/IntegralPrimitiveToString.java ++java/lang/PrimitiveSumMinMaxTest.java ++java/lang/String/StringJoinTest.java ++java/lang/StringBuilder/Capacity.java ++java/lang/Thread/StopThrowable.java ++java/lang/ThreadLocal/ThreadLocalSupplierTest.java ++java/lang/annotation/AnnotationWithLambda.java ++java/lang/annotation/TypeVariableBounds.java ++java/lang/annotation/typeAnnotations/BadCPIndex.java ++java/lang/annotation/typeAnnotations/ConstructorReceiverTest.java ++java/lang/annotation/typeAnnotations/TestExecutableGetAnnotatedType.java ++java/lang/invoke/AccessControlTest.java ++java/lang/invoke/ArrayConstructorTest.java ++java/lang/invoke/ClassValueTest.java ++java/lang/invoke/InvokeGenericTest.java ++java/lang/invoke/JavaDocExamplesTest.java ++java/lang/invoke/MethodHandlesProxiesTest.java ++java/lang/invoke/MethodTypeTest.java ++java/lang/invoke/PermuteArgsReturnVoidTest.java ++java/lang/invoke/PermuteArgsTest.java ++java/lang/invoke/ThrowExceptionsTest.java ++java/lang/invoke/lambda/LogGeneratedClassesTest.java ++java/lang/invoke/lookup/TestDefenderMethodLookup.java ++java/lang/reflect/DefaultMethodMembers/FilterNotMostSpecific.java ++java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java ++java/lang/reflect/Generics/ThreadSafety.java ++java/lang/reflect/annotationSharing/AnnotationSharing.java ++java/math/BigDecimal/Constructor.java ++java/math/BigInteger/LargeValueExceptions.java ++java/net/SocketPermission/SocketPermissionTest.java ++java/net/Socks/SocksIPv6Test.java ++java/nio/Buffer/Chars.java ++java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java ++java/nio/channels/SocketChannel/AdaptSocketReadAfterClose.java ++java/nio/file/Files/BytesAndLines.java ++java/nio/file/Files/StreamTest.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/nio/file/spi/SetDefaultProvider.java ++java/rmi/MarshalledObject/MOFilterTest.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/registry/serialFilter/RegistryFilterTest.java ++java/rmi/testlibrary/TestSocketFactory.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++java/security/AccessController/LimitedDoPrivilegedWithNullPerms.java ++java/sql/testng/test/sql/BatchUpdateExceptionTests.java ++java/sql/testng/test/sql/DataTruncationTests.java ++java/sql/testng/test/sql/DateTests.java ++java/sql/testng/test/sql/DriverManagerPermissionsTests.java ++java/sql/testng/test/sql/DriverManagerTests.java ++java/sql/testng/test/sql/SQLClientInfoExceptionTests.java ++java/sql/testng/test/sql/SQLDataExceptionTests.java ++java/sql/testng/test/sql/SQLExceptionTests.java ++java/sql/testng/test/sql/SQLFeatureNotSupportedExceptionTests.java ++java/sql/testng/test/sql/SQLIntegrityConstraintViolationExceptionTests.java ++java/sql/testng/test/sql/SQLInvalidAuthorizationSpecExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientExceptionTests.java ++java/sql/testng/test/sql/SQLRecoverableExceptionTests.java ++java/sql/testng/test/sql/SQLSyntaxErrorExceptionTests.java ++java/sql/testng/test/sql/SQLTimeoutExceptionTests.java ++java/sql/testng/test/sql/SQLTransactionRollbackExceptionTests.java ++java/sql/testng/test/sql/SQLTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLTransientExceptionTests.java ++java/sql/testng/test/sql/SQLWarningTests.java ++java/sql/testng/test/sql/TimeTests.java ++java/sql/testng/test/sql/TimestampTests.java ++java/sql/testng/util/BaseTest.java ++java/sql/testng/util/DriverActionImpl.java ++java/sql/testng/util/SerializedBatchUpdateException.java ++java/sql/testng/util/StubConnection.java ++java/sql/testng/util/StubDriver.java ++java/sql/testng/util/StubDriverDA.java ++java/sql/testng/util/TestPolicy.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/text/Format/DateFormat/LocaleDateFormats.java ++java/text/Format/DateFormat/SimpleDateFormatPatternTest.java ++java/time/tck/java/time/AbstractDateTimeTest.java ++java/time/tck/java/time/AbstractTCKTest.java ++java/time/tck/java/time/MockSimplePeriod.java ++java/time/tck/java/time/TCKClock.java ++java/time/tck/java/time/TCKClock_Fixed.java ++java/time/tck/java/time/TCKClock_Offset.java ++java/time/tck/java/time/TCKClock_System.java ++java/time/tck/java/time/TCKClock_Tick.java ++java/time/tck/java/time/TCKDayOfWeek.java ++java/time/tck/java/time/TCKDuration.java ++java/time/tck/java/time/TCKInstant.java ++java/time/tck/java/time/TCKLocalDate.java ++java/time/tck/java/time/TCKLocalDateTime.java ++java/time/tck/java/time/TCKLocalTime.java ++java/time/tck/java/time/TCKMonth.java ++java/time/tck/java/time/TCKMonthDay.java ++java/time/tck/java/time/TCKOffsetDateTime.java ++java/time/tck/java/time/TCKOffsetTime.java ++java/time/tck/java/time/TCKPeriod.java ++java/time/tck/java/time/TCKYear.java ++java/time/tck/java/time/TCKYearMonth.java ++java/time/tck/java/time/TCKZoneId.java ++java/time/tck/java/time/TCKZoneOffset.java ++java/time/tck/java/time/TCKZonedDateTime.java ++java/time/tck/java/time/TestIsoChronology.java ++java/time/tck/java/time/chrono/CopticChronology.java ++java/time/tck/java/time/chrono/CopticDate.java ++java/time/tck/java/time/chrono/CopticEra.java ++java/time/tck/java/time/chrono/TCKChronoLocalDate.java ++java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ++java/time/tck/java/time/chrono/TCKChronoPeriod.java ++java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ++java/time/tck/java/time/chrono/TCKChronology.java ++java/time/tck/java/time/chrono/TCKHijrahChronology.java ++java/time/tck/java/time/chrono/TCKHijrahEra.java ++java/time/tck/java/time/chrono/TCKIsoChronology.java ++java/time/tck/java/time/chrono/TCKIsoEra.java ++java/time/tck/java/time/chrono/TCKJapaneseChronology.java ++java/time/tck/java/time/chrono/TCKJapaneseEra.java ++java/time/tck/java/time/chrono/TCKMinguoChronology.java ++java/time/tck/java/time/chrono/TCKMinguoEra.java ++java/time/tck/java/time/chrono/TCKTestServiceLoader.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistEra.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoZonedDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java ++java/time/tck/java/time/chrono/serial/TCKCopticSerialization.java ++java/time/tck/java/time/chrono/serial/TCKEraSerialization.java ++java/time/tck/java/time/format/TCKChronoPrinterParser.java ++java/time/tck/java/time/format/TCKDateTimeFormatter.java ++java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ++java/time/tck/java/time/format/TCKDateTimeFormatters.java ++java/time/tck/java/time/format/TCKDateTimeParseResolver.java ++java/time/tck/java/time/format/TCKDateTimeTextPrinting.java ++java/time/tck/java/time/format/TCKDecimalStyle.java ++java/time/tck/java/time/format/TCKFormatStyle.java ++java/time/tck/java/time/format/TCKInstantPrinterParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldPrinter.java ++java/time/tck/java/time/format/TCKLocalizedPrinterParser.java ++java/time/tck/java/time/format/TCKOffsetPrinterParser.java ++java/time/tck/java/time/format/TCKPadPrinterParser.java ++java/time/tck/java/time/format/TCKResolverStyle.java ++java/time/tck/java/time/format/TCKSignStyle.java ++java/time/tck/java/time/format/TCKTextStyle.java ++java/time/tck/java/time/format/TCKZoneIdPrinterParser.java ++java/time/tck/java/time/serial/TCKClockSerialization.java ++java/time/tck/java/time/serial/TCKDurationSerialization.java ++java/time/tck/java/time/serial/TCKInstantSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKLocalTimeSerialization.java ++java/time/tck/java/time/serial/TCKMonthDaySerialization.java ++java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java ++java/time/tck/java/time/serial/TCKPeriodSerialization.java ++java/time/tck/java/time/serial/TCKYearMonthSerialization.java ++java/time/tck/java/time/serial/TCKYearSerialization.java ++java/time/tck/java/time/serial/TCKZoneIdSerialization.java ++java/time/tck/java/time/serial/TCKZoneOffsetSerialization.java ++java/time/tck/java/time/serial/TCKZonedDateTimeSerialization.java ++java/time/tck/java/time/temporal/TCKChronoField.java ++java/time/tck/java/time/temporal/TCKChronoUnit.java ++java/time/tck/java/time/temporal/TCKIsoFields.java ++java/time/tck/java/time/temporal/TCKJulianFields.java ++java/time/tck/java/time/temporal/TCKTemporalAdjusters.java ++java/time/tck/java/time/temporal/TCKWeekFields.java ++java/time/tck/java/time/temporal/serial/TCKChronoFieldSerialization.java ++java/time/tck/java/time/temporal/serial/TCKChronoUnitSerialization.java ++java/time/tck/java/time/temporal/serial/TCKJulianFieldsSerialization.java ++java/time/tck/java/time/temporal/serial/TCKValueRangeSerialization.java ++java/time/tck/java/time/temporal/serial/TCKWeekFieldsSerialization.java ++java/time/tck/java/time/zone/TCKFixedZoneRules.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ++java/time/tck/java/time/zone/TCKZoneRules.java ++java/time/tck/java/time/zone/TCKZoneRulesProvider.java ++java/time/tck/java/time/zone/serial/TCKFixedZoneRulesSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRuleSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneRulesSerialization.java ++java/time/test/java/time/AbstractTest.java ++java/time/test/java/time/MockSimplePeriod.java ++java/time/test/java/time/TestClock_Fixed.java ++java/time/test/java/time/TestClock_Offset.java ++java/time/test/java/time/TestClock_System.java ++java/time/test/java/time/TestClock_Tick.java ++java/time/test/java/time/TestDuration.java ++java/time/test/java/time/TestInstant.java ++java/time/test/java/time/TestLocalDate.java ++java/time/test/java/time/TestLocalDateTime.java ++java/time/test/java/time/TestLocalTime.java ++java/time/test/java/time/TestMonthDay.java ++java/time/test/java/time/TestOffsetDateTime.java ++java/time/test/java/time/TestOffsetDateTime_instants.java ++java/time/test/java/time/TestOffsetTime.java ++java/time/test/java/time/TestPeriod.java ++java/time/test/java/time/TestYear.java ++java/time/test/java/time/TestYearMonth.java ++java/time/test/java/time/TestZoneId.java ++java/time/test/java/time/TestZoneOffset.java ++java/time/test/java/time/TestZonedDateTime.java ++java/time/test/java/time/chrono/TestChronoLocalDate.java ++java/time/test/java/time/chrono/TestChronologyPerf.java ++java/time/test/java/time/chrono/TestEraDisplayName.java ++java/time/test/java/time/chrono/TestExampleCode.java ++java/time/test/java/time/chrono/TestIsoChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronology.java ++java/time/test/java/time/chrono/TestServiceLoader.java ++java/time/test/java/time/chrono/TestThaiBuddhistChronoImpl.java ++java/time/test/java/time/chrono/TestUmmAlQuraChronology.java ++java/time/test/java/time/format/AbstractTestPrinterParser.java ++java/time/test/java/time/format/MockIOExceptionAppendable.java ++java/time/test/java/time/format/TestCharLiteralParser.java ++java/time/test/java/time/format/TestCharLiteralPrinter.java ++java/time/test/java/time/format/TestDateTimeFormatter.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilder.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java ++java/time/test/java/time/format/TestDateTimeParsing.java ++java/time/test/java/time/format/TestDateTimeTextProvider.java ++java/time/test/java/time/format/TestDecimalStyle.java ++java/time/test/java/time/format/TestFractionPrinterParser.java ++java/time/test/java/time/format/TestNonIsoFormatter.java ++java/time/test/java/time/format/TestNumberParser.java ++java/time/test/java/time/format/TestNumberPrinter.java ++java/time/test/java/time/format/TestPadPrinterDecorator.java ++java/time/test/java/time/format/TestReducedParser.java ++java/time/test/java/time/format/TestReducedPrinter.java ++java/time/test/java/time/format/TestSettingsParser.java ++java/time/test/java/time/format/TestStringLiteralParser.java ++java/time/test/java/time/format/TestStringLiteralPrinter.java ++java/time/test/java/time/format/TestTextParser.java ++java/time/test/java/time/format/TestTextPrinter.java ++java/time/test/java/time/format/TestZoneOffsetParser.java ++java/time/test/java/time/format/TestZoneOffsetPrinter.java ++java/time/test/java/time/format/TestZoneTextPrinterParser.java ++java/time/test/java/time/format/ZoneName.java ++java/time/test/java/time/temporal/MockFieldNoValue.java ++java/time/test/java/time/temporal/MockFieldValue.java ++java/time/test/java/time/temporal/TestChronoField.java ++java/time/test/java/time/temporal/TestChronoUnit.java ++java/time/test/java/time/temporal/TestDateTimeBuilderCombinations.java ++java/time/test/java/time/temporal/TestDateTimeValueRange.java ++java/time/test/java/time/temporal/TestIsoWeekFields.java ++java/time/test/java/time/temporal/TestJulianFields.java ++java/time/test/java/time/zone/TestFixedZoneRules.java ++java/time/test/java/util/TestFormatter.java ++java/util/Arrays/ParallelPrefix.java ++java/util/Arrays/SetAllTest.java ++java/util/Arrays/StreamAndSpliterator.java ++java/util/BitSet/BitSetStreamTest.java ++java/util/Calendar/JapanEraNameCompatTest.java ++java/util/Calendar/JapaneseLenientEraTest.java ++java/util/Calendar/SupplementalJapaneseEraTest.java ++java/util/Collection/CollectionDefaults.java ++java/util/Collections/CheckedIdentityMap.java ++java/util/Collections/CheckedMapBash.java ++java/util/Collections/CheckedQueue.java ++java/util/Collections/CheckedSetBash.java ++java/util/Collections/EmptyCollectionSerialization.java ++java/util/Collections/EmptyNavigableMap.java ++java/util/Collections/EmptyNavigableSet.java ++java/util/Collections/SingletonIterator.java ++java/util/Collections/SyncSubMutexes.java ++java/util/Collections/UnmodifiableMapEntrySet.java ++java/util/Collections/Wrappers.java ++java/util/Comparator/BasicTest.java ++java/util/Comparator/TypeTest.java ++java/util/HashMap/Bug8186171Test.java ++java/util/HashMap/TreeBinAssert.java ++java/util/IdentityHashMap/Capacity.java ++java/util/Iterator/IteratorDefaults.java ++java/util/Iterator/PrimitiveIteratorDefaults.java ++java/util/List/ListDefaults.java ++java/util/Map/BasicSerialization.java ++java/util/Map/Defaults.java ++java/util/Map/EntryComparators.java ++java/util/Map/MapBinToFromTreeTest.java ++java/util/Objects/CheckIndex.java ++java/util/Optional/Basic.java ++java/util/Optional/BasicDouble.java ++java/util/Optional/BasicInt.java ++java/util/Optional/BasicLong.java ++java/util/Random/RandomStreamTest.java ++java/util/Random/RandomTest.java ++java/util/Spliterator/SpliteratorCharacteristics.java ++java/util/Spliterator/SpliteratorCollisions.java ++java/util/Spliterator/SpliteratorLateBindingFailFastTest.java ++java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ++java/util/SplittableRandom/SplittableRandomTest.java ++java/util/StringJoiner/MergeTest.java ++java/util/StringJoiner/StringJoinerTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++java/util/concurrent/CompletableFuture/ThenComposeAsyncTest.java ++java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentAssociateTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentContainsKeyTest.java ++java/util/concurrent/LinkedTransferQueue/SpliteratorTraverseAddRemoveTest.java ++java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ++java/util/concurrent/atomic/AtomicReferenceTest.java ++java/util/function/BiFunction/BiFunctionTest.java ++java/util/function/BinaryOperator/BasicTest.java ++java/util/logging/LoggerSupplierAPIsTest.java ++java/util/regex/PatternStreamTest.java ++java/util/stream/boottest/java/util/stream/DoubleNodeTest.java ++java/util/stream/boottest/java/util/stream/FlagOpTest.java ++java/util/stream/boottest/java/util/stream/IntNodeTest.java ++java/util/stream/boottest/java/util/stream/LongNodeTest.java ++java/util/stream/boottest/java/util/stream/NodeBuilderTest.java ++java/util/stream/boottest/java/util/stream/NodeTest.java ++java/util/stream/boottest/java/util/stream/SliceSpliteratorTest.java ++java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ++java/util/stream/boottest/java/util/stream/StreamFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamOpFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamReuseTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/DeserializeMethodTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/MHProxiesTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java ++java/util/stream/test/org/openjdk/tests/java/util/FillableStringTest.java ++java/util/stream/test/org/openjdk/tests/java/util/MapTest.java ++java/util/stream/test/org/openjdk/tests/java/util/NullArgsTestCase.java ++java/util/stream/test/org/openjdk/tests/java/util/SplittableRandomTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectionAndMapModifyStreamTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountLargeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CustomFJPoolTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DoublePrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FilterOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindAnyOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/GroupByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntUniqOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/LongPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MatchOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MinMaxTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveAverageOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveSumTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/RangeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SequentialOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamCloseTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamLinkTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamParSeqTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TeeOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java ++java/util/zip/ZipFile/StreamZipEntriesTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/imageio/plugins/png/ItxtUtf8Test.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/PrintServiceLookup/CountPrintServices.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/script/SimpleScriptContextNameChecksTest.java ++javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/smartcardio/CommandAPDUTest.java ++javax/smartcardio/ResponseAPDUTest.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/sql/testng/test/rowset/BaseRowSetTests.java ++javax/sql/testng/test/rowset/CommonRowSetTests.java ++javax/sql/testng/test/rowset/RowSetFactoryTests.java ++javax/sql/testng/test/rowset/RowSetMetaDataTests.java ++javax/sql/testng/test/rowset/RowSetProviderTests.java ++javax/sql/testng/test/rowset/RowSetWarningTests.java ++javax/sql/testng/test/rowset/cachedrowset/CachedRowSetTests.java ++javax/sql/testng/test/rowset/cachedrowset/CommonCachedRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/CityFilter.java ++javax/sql/testng/test/rowset/filteredrowset/FilteredRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/PrimaryKeyFilter.java ++javax/sql/testng/test/rowset/joinrowset/JoinRowSetTests.java ++javax/sql/testng/test/rowset/serial/SQLInputImplTests.java ++javax/sql/testng/test/rowset/serial/SQLOutputImplTests.java ++javax/sql/testng/test/rowset/serial/SerialArrayTests.java ++javax/sql/testng/test/rowset/serial/SerialBlobTests.java ++javax/sql/testng/test/rowset/serial/SerialClobTests.java ++javax/sql/testng/test/rowset/serial/SerialDataLinkTests.java ++javax/sql/testng/test/rowset/serial/SerialExceptionTests.java ++javax/sql/testng/test/rowset/serial/SerialJavaObjectTests.java ++javax/sql/testng/test/rowset/serial/SerialRefTests.java ++javax/sql/testng/test/rowset/serial/SerialStructTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryExceptionTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryPermissionsTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryTests.java ++javax/sql/testng/test/rowset/spi/SyncProviderExceptionTests.java ++javax/sql/testng/test/rowset/webrowset/CommonWebRowSetTests.java ++javax/sql/testng/test/rowset/webrowset/WebRowSetTests.java ++javax/sql/testng/util/PropertyStubProvider.java ++javax/sql/testng/util/StubArray.java ++javax/sql/testng/util/StubBaseRowSet.java ++javax/sql/testng/util/StubBlob.java ++javax/sql/testng/util/StubCachedRowSetImpl.java ++javax/sql/testng/util/StubClob.java ++javax/sql/testng/util/StubContext.java ++javax/sql/testng/util/StubFilteredRowSetImpl.java ++javax/sql/testng/util/StubJdbcRowSetImpl.java ++javax/sql/testng/util/StubJoinRowSetImpl.java ++javax/sql/testng/util/StubNClob.java ++javax/sql/testng/util/StubRef.java ++javax/sql/testng/util/StubRowId.java ++javax/sql/testng/util/StubRowSetFactory.java ++javax/sql/testng/util/StubSQLXML.java ++javax/sql/testng/util/StubStruct.java ++javax/sql/testng/util/StubSyncProvider.java ++javax/sql/testng/util/StubSyncResolver.java ++javax/sql/testng/util/StubWebRowSetImpl.java ++javax/sql/testng/util/SuperHero.java ++javax/sql/testng/util/TestRowSetListener.java ++javax/sql/testng/util/TestSQLDataImpl.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++javax/xml/bind/jxc/8046817/GenerateEnumSchema.java ++javax/xml/bind/jxc/8073519/SchemagenErrorReporting.java ++javax/xml/bind/jxc/8073872/SchemagenStackOverflow.java ++javax/xml/bind/marshal/8134111/UnmarshalTest.java ++javax/xml/bind/xjc/8145039/JaxbMarshallTest.java ++javax/xml/bind/xsom/8159240/WhitespacesTest.java ++javax/xml/jaxp/common/8144593/TransformationWarningsTest.java ++javax/xml/jaxp/common/8144593/ValidationWarningsTest.java ++javax/xml/jaxp/parsers/8072081/SupplementaryChars.java ++javax/xml/jaxp/parsers/8073385/BadExceptionMessageTest.java ++javax/xml/jaxp/stream/8145974/SurrogatesTest.java ++javax/xml/jaxp/stream/8153781/SkipDTDTest.java ++javax/xml/jaxp/testng/parse/XMLEntityScannerLoad.java ++javax/xml/jaxp/testng/parse/jdk7156085/UTF8ReaderBug.java ++javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java ++javax/xml/jaxp/transform/8062923/XslSubstringTest.java ++javax/xml/jaxp/transform/8079323/TemplatesTest.java ++javax/xml/jaxp/transform/8150704/TransformerTest.java ++javax/xml/jaxp/transform/8162598/TransformerTest.java ++javax/xml/jaxp/transform/8167179/NamespacePrefixTest.java ++javax/xml/jaxp/transform/8169112/TransformerTest.java ++javax/xml/jaxp/transform/8207760/JDK8207760.java ++javax/xml/jaxp/transform/sort/SortTest.java ++javax/xml/jaxp/unittest/xpath/XPathExpTest.java ++javax/xml/jaxp/validation/8149915/SchemaTest.java ++javax/xml/ws/8159058/SaajEmptyNamespaceTest.java ++javax/xml/ws/8172297/Main.java ++jdk/java/dwarf/TestDwarf.java ++jdk/lambda/ArrayCtorRefTest.java ++jdk/lambda/FDTest.java ++jdk/lambda/LambdaTranslationCompoundSamTest.java ++jdk/lambda/LambdaTranslationInInterface.java ++jdk/lambda/LambdaTranslationInnerConstructor.java ++jdk/lambda/LambdaTranslationTest1.java ++jdk/lambda/LambdaTranslationTest2.java ++jdk/lambda/MethodReferenceTestCallerSensitive.java ++jdk/lambda/MethodReferenceTestFDCCE.java ++jdk/lambda/MethodReferenceTestInnerDefault.java ++jdk/lambda/MethodReferenceTestInnerInstance.java ++jdk/lambda/MethodReferenceTestInnerVarArgsThis.java ++jdk/lambda/MethodReferenceTestInstance.java ++jdk/lambda/MethodReferenceTestInstanceMethod.java ++jdk/lambda/MethodReferenceTestKinds.java ++jdk/lambda/MethodReferenceTestNew.java ++jdk/lambda/MethodReferenceTestNewInner.java ++jdk/lambda/MethodReferenceTestSueCase1.java ++jdk/lambda/MethodReferenceTestSueCase2.java ++jdk/lambda/MethodReferenceTestSueCase4.java ++jdk/lambda/MethodReferenceTestSuper.java ++jdk/lambda/MethodReferenceTestSuperDefault.java ++jdk/lambda/MethodReferenceTestTypeConversion.java ++jdk/lambda/MethodReferenceTestVarArgs.java ++jdk/lambda/MethodReferenceTestVarArgsExt.java ++jdk/lambda/MethodReferenceTestVarArgsSuper.java ++jdk/lambda/MethodReferenceTestVarArgsSuperDefault.java ++jdk/lambda/MethodReferenceTestVarArgsThis.java ++jdk/lambda/TestInnerCtorRef.java ++jdk/lambda/TestPrivateCtorRef.java ++jdk/lambda/separate/AttributeInjector.java ++jdk/lambda/separate/ClassFile.java ++jdk/lambda/separate/ClassFilePreprocessor.java ++jdk/lambda/separate/ClassToInterfaceConverter.java ++jdk/lambda/separate/Compiler.java ++jdk/lambda/separate/DirectedClassLoader.java ++jdk/lambda/separate/SourceModel.java ++jdk/lambda/separate/TestHarness.java ++jdk/lambda/shapegen/ClassCase.java ++jdk/lambda/shapegen/Hierarchy.java ++jdk/lambda/shapegen/HierarchyGenerator.java ++jdk/lambda/shapegen/Rule.java ++jdk/lambda/shapegen/RuleGroup.java ++jdk/lambda/shapegen/TTNode.java ++jdk/lambda/shapegen/TTParser.java ++jdk/lambda/shapegen/TTShape.java ++jdk/lambda/vm/DefaultMethodRegressionTests.java ++jdk/lambda/vm/InterfaceAccessFlagsTest.java ++jdk/lambda/vm/StrictfpDefault.java ++sample/chatserver/ChatTest.java ++sample/mergesort/MergeSortTest.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++serviceability/dcmd/gc/HeapDumpTest.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/net/www/http/RequestMethodCheck/RequestMethodEquality.java ++sun/reflect/ReflectionFactory/ReflectionFactoryTest.java ++sun/rmi/server/UnicastServerRef/FilterUSRTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/security/x509/GeneralName/DNSNameTest.java ++sun/tools/jps/TestJpsJarRelative.java ++sun/util/calendar/zi/Beyond2037.java ++sun/util/resources/TimeZone/Bug8139107.java ++lib/combo/tools/javac/combo/Diagnostics.java ++lib/combo/tools/javac/combo/JavacTemplateTestBase.java ++lib/combo/tools/javac/combo/Template.java ++lib/combo/tools/javac/combo/TemplateTest.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java ++tools/javac/lambda/lambdaExecution/InInterface.java ++tools/javac/lambda/lambdaExecution/InnerConstructor.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java ++tools/javac/lambdaShapes/org/openjdk/tests/javac/FDTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java ++tools/javac/tree/T8024415.java ++tools/jdeps/MRJarWarning.java ++src/jdk/nashorn/api/javaaccess/test/BooleanAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/MethodAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberBoxingTest.java ++src/jdk/nashorn/api/javaaccess/test/ObjectAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/StringAccessTest.java ++src/jdk/nashorn/api/scripting/test/MultipleEngineTest.java ++src/jdk/nashorn/api/scripting/test/ScriptEngineTest.java ++src/jdk/nashorn/internal/runtime/regexp/joni/test/JoniTest.java ++src/jdk/nashorn/internal/runtime/regexp/test/JdkRegExpTest.java ++src/jdk/nashorn/internal/runtime/test/ConsStringTest.java ++src/jdk/nashorn/internal/runtime/test/ContextTest.java ++src/jdk/nashorn/internal/runtime/test/ExceptionsNotSerializable.java ++src/jdk/nashorn/internal/runtime/test/JDK_8078414_Test.java ++src/jdk/nashorn/internal/runtime/test/JSTypeTest.java ++src/jdk/nashorn/internal/runtime/test/LexicalBindingTest.java ++src/jdk/nashorn/internal/runtime/test/NoPersistenceCachingTest.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++sun/tools/jps/TestJpsClass.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/ubuntu-2204.txt b/jdk/test/problemlist/ubuntu-2204.txt +new file mode 100644 +index 000000000..6686a0bb0 +--- /dev/null ++++ b/jdk/test/problemlist/ubuntu-2204.txt +@@ -0,0 +1,1857 @@ ++compiler/c2/TestNegativeStringBuilderCapacity.java ++gc/survivorAlignment/TestPromotionToSurvivor.java ++runtime/containers/docker/TestNUMANodes.java ++serviceability/dcmd/ClassLoaderHierarchyTest.java ++serviceability/dcmd/MallocInfoTest.java ++serviceability/dcmd/PerfMapTest.java ++serviceability/dcmd/TrimLibcHeapTest.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapTimeoutTest.java ++com/sun/jndi/ldap/NamingExceptionMessageTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++demo/zipfs/LargeCompressedEntrySizeTest.java ++demo/zipfs/ZipFSPermissionsTest.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/DialogCopies.java ++java/awt/print/Dialog/PaperSizeError.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PaintText.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/io/BufferedReader/Lines.java ++java/io/LineNumberReader/MarkSplitCRLF.java ++java/io/Serializable/serialFilter/CheckArrayTest.java ++java/io/Serializable/serialFilter/CheckInputOrderTest.java ++java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java ++java/io/Serializable/serialFilter/GlobalFilterTest.java ++java/io/Serializable/serialFilter/MixedFiltersTest.java ++java/io/Serializable/serialFilter/SerialFilterTest.java ++java/lang/CharSequence/DefaultTest.java ++java/lang/IntegralPrimitiveToString.java ++java/lang/PrimitiveSumMinMaxTest.java ++java/lang/String/StringJoinTest.java ++java/lang/StringBuilder/Capacity.java ++java/lang/Thread/StopThrowable.java ++java/lang/ThreadLocal/ThreadLocalSupplierTest.java ++java/lang/annotation/AnnotationWithLambda.java ++java/lang/annotation/TypeVariableBounds.java ++java/lang/annotation/typeAnnotations/BadCPIndex.java ++java/lang/annotation/typeAnnotations/ConstructorReceiverTest.java ++java/lang/annotation/typeAnnotations/TestExecutableGetAnnotatedType.java ++java/lang/invoke/AccessControlTest.java ++java/lang/invoke/ArrayConstructorTest.java ++java/lang/invoke/ClassValueTest.java ++java/lang/invoke/InvokeGenericTest.java ++java/lang/invoke/JavaDocExamplesTest.java ++java/lang/invoke/MethodHandlesProxiesTest.java ++java/lang/invoke/MethodTypeTest.java ++java/lang/invoke/PermuteArgsReturnVoidTest.java ++java/lang/invoke/PermuteArgsTest.java ++java/lang/invoke/ThrowExceptionsTest.java ++java/lang/invoke/lambda/LogGeneratedClassesTest.java ++java/lang/invoke/lookup/TestDefenderMethodLookup.java ++java/lang/reflect/DefaultMethodMembers/FilterNotMostSpecific.java ++java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java ++java/lang/reflect/Generics/ThreadSafety.java ++java/lang/reflect/annotationSharing/AnnotationSharing.java ++java/math/BigDecimal/Constructor.java ++java/math/BigInteger/LargeValueExceptions.java ++java/net/SocketPermission/SocketPermissionTest.java ++java/net/Socks/SocksIPv6Test.java ++java/nio/Buffer/Chars.java ++java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java ++java/nio/channels/SocketChannel/AdaptSocketReadAfterClose.java ++java/nio/file/Files/BytesAndLines.java ++java/nio/file/Files/StreamTest.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/rmi/MarshalledObject/MOFilterTest.java ++java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ++java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/rmi/registry/serialFilter/RegistryFilterTest.java ++java/rmi/testlibrary/TestSocketFactory.java ++java/security/AccessController/LimitedDoPrivilegedWithNullPerms.java ++java/sql/testng/test/sql/BatchUpdateExceptionTests.java ++java/sql/testng/test/sql/DataTruncationTests.java ++java/sql/testng/test/sql/DateTests.java ++java/sql/testng/test/sql/DriverManagerPermissionsTests.java ++java/sql/testng/test/sql/DriverManagerTests.java ++java/sql/testng/test/sql/SQLClientInfoExceptionTests.java ++java/sql/testng/test/sql/SQLDataExceptionTests.java ++java/sql/testng/test/sql/SQLExceptionTests.java ++java/sql/testng/test/sql/SQLFeatureNotSupportedExceptionTests.java ++java/sql/testng/test/sql/SQLIntegrityConstraintViolationExceptionTests.java ++java/sql/testng/test/sql/SQLInvalidAuthorizationSpecExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLNonTransientExceptionTests.java ++java/sql/testng/test/sql/SQLRecoverableExceptionTests.java ++java/sql/testng/test/sql/SQLSyntaxErrorExceptionTests.java ++java/sql/testng/test/sql/SQLTimeoutExceptionTests.java ++java/sql/testng/test/sql/SQLTransactionRollbackExceptionTests.java ++java/sql/testng/test/sql/SQLTransientConnectionExceptionTests.java ++java/sql/testng/test/sql/SQLTransientExceptionTests.java ++java/sql/testng/test/sql/SQLWarningTests.java ++java/sql/testng/test/sql/TimeTests.java ++java/sql/testng/test/sql/TimestampTests.java ++java/sql/testng/util/BaseTest.java ++java/sql/testng/util/DriverActionImpl.java ++java/sql/testng/util/SerializedBatchUpdateException.java ++java/sql/testng/util/StubConnection.java ++java/sql/testng/util/StubDriver.java ++java/sql/testng/util/StubDriverDA.java ++java/sql/testng/util/TestPolicy.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/text/Format/DateFormat/LocaleDateFormats.java ++java/text/Format/DateFormat/SimpleDateFormatPatternTest.java ++java/time/tck/java/time/AbstractDateTimeTest.java ++java/time/tck/java/time/AbstractTCKTest.java ++java/time/tck/java/time/MockSimplePeriod.java ++java/time/tck/java/time/TCKClock.java ++java/time/tck/java/time/TCKClock_Fixed.java ++java/time/tck/java/time/TCKClock_Offset.java ++java/time/tck/java/time/TCKClock_System.java ++java/time/tck/java/time/TCKClock_Tick.java ++java/time/tck/java/time/TCKDayOfWeek.java ++java/time/tck/java/time/TCKDuration.java ++java/time/tck/java/time/TCKInstant.java ++java/time/tck/java/time/TCKLocalDate.java ++java/time/tck/java/time/TCKLocalDateTime.java ++java/time/tck/java/time/TCKLocalTime.java ++java/time/tck/java/time/TCKMonth.java ++java/time/tck/java/time/TCKMonthDay.java ++java/time/tck/java/time/TCKOffsetDateTime.java ++java/time/tck/java/time/TCKOffsetTime.java ++java/time/tck/java/time/TCKPeriod.java ++java/time/tck/java/time/TCKYear.java ++java/time/tck/java/time/TCKYearMonth.java ++java/time/tck/java/time/TCKZoneId.java ++java/time/tck/java/time/TCKZoneOffset.java ++java/time/tck/java/time/TCKZonedDateTime.java ++java/time/tck/java/time/TestIsoChronology.java ++java/time/tck/java/time/chrono/CopticChronology.java ++java/time/tck/java/time/chrono/CopticDate.java ++java/time/tck/java/time/chrono/CopticEra.java ++java/time/tck/java/time/chrono/TCKChronoLocalDate.java ++java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ++java/time/tck/java/time/chrono/TCKChronoPeriod.java ++java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ++java/time/tck/java/time/chrono/TCKChronology.java ++java/time/tck/java/time/chrono/TCKHijrahChronology.java ++java/time/tck/java/time/chrono/TCKHijrahEra.java ++java/time/tck/java/time/chrono/TCKIsoChronology.java ++java/time/tck/java/time/chrono/TCKIsoEra.java ++java/time/tck/java/time/chrono/TCKJapaneseChronology.java ++java/time/tck/java/time/chrono/TCKJapaneseEra.java ++java/time/tck/java/time/chrono/TCKMinguoChronology.java ++java/time/tck/java/time/chrono/TCKMinguoEra.java ++java/time/tck/java/time/chrono/TCKTestServiceLoader.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ++java/time/tck/java/time/chrono/TCKThaiBuddhistEra.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronoZonedDateTimeSerialization.java ++java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java ++java/time/tck/java/time/chrono/serial/TCKCopticSerialization.java ++java/time/tck/java/time/chrono/serial/TCKEraSerialization.java ++java/time/tck/java/time/format/TCKChronoPrinterParser.java ++java/time/tck/java/time/format/TCKDateTimeFormatter.java ++java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ++java/time/tck/java/time/format/TCKDateTimeFormatters.java ++java/time/tck/java/time/format/TCKDateTimeParseResolver.java ++java/time/tck/java/time/format/TCKDateTimeTextPrinting.java ++java/time/tck/java/time/format/TCKDecimalStyle.java ++java/time/tck/java/time/format/TCKFormatStyle.java ++java/time/tck/java/time/format/TCKInstantPrinterParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldParser.java ++java/time/tck/java/time/format/TCKLocalizedFieldPrinter.java ++java/time/tck/java/time/format/TCKLocalizedPrinterParser.java ++java/time/tck/java/time/format/TCKOffsetPrinterParser.java ++java/time/tck/java/time/format/TCKPadPrinterParser.java ++java/time/tck/java/time/format/TCKResolverStyle.java ++java/time/tck/java/time/format/TCKSignStyle.java ++java/time/tck/java/time/format/TCKTextStyle.java ++java/time/tck/java/time/format/TCKZoneIdPrinterParser.java ++java/time/tck/java/time/serial/TCKClockSerialization.java ++java/time/tck/java/time/serial/TCKDurationSerialization.java ++java/time/tck/java/time/serial/TCKInstantSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateSerialization.java ++java/time/tck/java/time/serial/TCKLocalDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKLocalTimeSerialization.java ++java/time/tck/java/time/serial/TCKMonthDaySerialization.java ++java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java ++java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java ++java/time/tck/java/time/serial/TCKPeriodSerialization.java ++java/time/tck/java/time/serial/TCKYearMonthSerialization.java ++java/time/tck/java/time/serial/TCKYearSerialization.java ++java/time/tck/java/time/serial/TCKZoneIdSerialization.java ++java/time/tck/java/time/serial/TCKZoneOffsetSerialization.java ++java/time/tck/java/time/serial/TCKZonedDateTimeSerialization.java ++java/time/tck/java/time/temporal/TCKChronoField.java ++java/time/tck/java/time/temporal/TCKChronoUnit.java ++java/time/tck/java/time/temporal/TCKIsoFields.java ++java/time/tck/java/time/temporal/TCKJulianFields.java ++java/time/tck/java/time/temporal/TCKTemporalAdjusters.java ++java/time/tck/java/time/temporal/TCKWeekFields.java ++java/time/tck/java/time/temporal/serial/TCKChronoFieldSerialization.java ++java/time/tck/java/time/temporal/serial/TCKChronoUnitSerialization.java ++java/time/tck/java/time/temporal/serial/TCKJulianFieldsSerialization.java ++java/time/tck/java/time/temporal/serial/TCKValueRangeSerialization.java ++java/time/tck/java/time/temporal/serial/TCKWeekFieldsSerialization.java ++java/time/tck/java/time/zone/TCKFixedZoneRules.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ++java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ++java/time/tck/java/time/zone/TCKZoneRules.java ++java/time/tck/java/time/zone/TCKZoneRulesProvider.java ++java/time/tck/java/time/zone/serial/TCKFixedZoneRulesSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRuleSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionSerialization.java ++java/time/tck/java/time/zone/serial/TCKZoneRulesSerialization.java ++java/time/test/java/time/AbstractTest.java ++java/time/test/java/time/MockSimplePeriod.java ++java/time/test/java/time/TestClock_Fixed.java ++java/time/test/java/time/TestClock_Offset.java ++java/time/test/java/time/TestClock_System.java ++java/time/test/java/time/TestClock_Tick.java ++java/time/test/java/time/TestDuration.java ++java/time/test/java/time/TestInstant.java ++java/time/test/java/time/TestLocalDate.java ++java/time/test/java/time/TestLocalDateTime.java ++java/time/test/java/time/TestLocalTime.java ++java/time/test/java/time/TestMonthDay.java ++java/time/test/java/time/TestOffsetDateTime.java ++java/time/test/java/time/TestOffsetDateTime_instants.java ++java/time/test/java/time/TestOffsetTime.java ++java/time/test/java/time/TestPeriod.java ++java/time/test/java/time/TestYear.java ++java/time/test/java/time/TestYearMonth.java ++java/time/test/java/time/TestZoneId.java ++java/time/test/java/time/TestZoneOffset.java ++java/time/test/java/time/TestZonedDateTime.java ++java/time/test/java/time/chrono/TestChronoLocalDate.java ++java/time/test/java/time/chrono/TestChronologyPerf.java ++java/time/test/java/time/chrono/TestEraDisplayName.java ++java/time/test/java/time/chrono/TestExampleCode.java ++java/time/test/java/time/chrono/TestIsoChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronoImpl.java ++java/time/test/java/time/chrono/TestJapaneseChronology.java ++java/time/test/java/time/chrono/TestServiceLoader.java ++java/time/test/java/time/chrono/TestThaiBuddhistChronoImpl.java ++java/time/test/java/time/chrono/TestUmmAlQuraChronology.java ++java/time/test/java/time/format/AbstractTestPrinterParser.java ++java/time/test/java/time/format/MockIOExceptionAppendable.java ++java/time/test/java/time/format/TestCharLiteralParser.java ++java/time/test/java/time/format/TestCharLiteralPrinter.java ++java/time/test/java/time/format/TestDateTimeFormatter.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilder.java ++java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java ++java/time/test/java/time/format/TestDateTimeParsing.java ++java/time/test/java/time/format/TestDateTimeTextProvider.java ++java/time/test/java/time/format/TestDecimalStyle.java ++java/time/test/java/time/format/TestFractionPrinterParser.java ++java/time/test/java/time/format/TestNonIsoFormatter.java ++java/time/test/java/time/format/TestNumberParser.java ++java/time/test/java/time/format/TestNumberPrinter.java ++java/time/test/java/time/format/TestPadPrinterDecorator.java ++java/time/test/java/time/format/TestReducedParser.java ++java/time/test/java/time/format/TestReducedPrinter.java ++java/time/test/java/time/format/TestSettingsParser.java ++java/time/test/java/time/format/TestStringLiteralParser.java ++java/time/test/java/time/format/TestStringLiteralPrinter.java ++java/time/test/java/time/format/TestTextParser.java ++java/time/test/java/time/format/TestTextPrinter.java ++java/time/test/java/time/format/TestZoneOffsetParser.java ++java/time/test/java/time/format/TestZoneOffsetPrinter.java ++java/time/test/java/time/format/TestZoneTextPrinterParser.java ++java/time/test/java/time/format/ZoneName.java ++java/time/test/java/time/temporal/MockFieldNoValue.java ++java/time/test/java/time/temporal/MockFieldValue.java ++java/time/test/java/time/temporal/TestChronoField.java ++java/time/test/java/time/temporal/TestChronoUnit.java ++java/time/test/java/time/temporal/TestDateTimeBuilderCombinations.java ++java/time/test/java/time/temporal/TestDateTimeValueRange.java ++java/time/test/java/time/temporal/TestIsoWeekFields.java ++java/time/test/java/time/temporal/TestJulianFields.java ++java/time/test/java/time/zone/TestFixedZoneRules.java ++java/time/test/java/util/TestFormatter.java ++java/util/Arrays/ParallelPrefix.java ++java/util/Arrays/SetAllTest.java ++java/util/Arrays/StreamAndSpliterator.java ++java/util/BitSet/BitSetStreamTest.java ++java/util/Calendar/JapanEraNameCompatTest.java ++java/util/Calendar/JapaneseLenientEraTest.java ++java/util/Calendar/SupplementalJapaneseEraTest.java ++java/util/Collection/CollectionDefaults.java ++java/util/Collections/CheckedIdentityMap.java ++java/util/Collections/CheckedMapBash.java ++java/util/Collections/CheckedQueue.java ++java/util/Collections/CheckedSetBash.java ++java/util/Collections/EmptyCollectionSerialization.java ++java/util/Collections/EmptyNavigableMap.java ++java/util/Collections/EmptyNavigableSet.java ++java/util/Collections/SingletonIterator.java ++java/util/Collections/SyncSubMutexes.java ++java/util/Collections/UnmodifiableMapEntrySet.java ++java/util/Collections/Wrappers.java ++java/util/Comparator/BasicTest.java ++java/util/Comparator/TypeTest.java ++java/util/HashMap/Bug8186171Test.java ++java/util/HashMap/TreeBinAssert.java ++java/util/IdentityHashMap/Capacity.java ++java/util/Iterator/IteratorDefaults.java ++java/util/Iterator/PrimitiveIteratorDefaults.java ++java/util/List/ListDefaults.java ++java/util/Map/BasicSerialization.java ++java/util/Map/Defaults.java ++java/util/Map/EntryComparators.java ++java/util/Map/MapBinToFromTreeTest.java ++java/util/Objects/CheckIndex.java ++java/util/Optional/Basic.java ++java/util/Optional/BasicDouble.java ++java/util/Optional/BasicInt.java ++java/util/Optional/BasicLong.java ++java/util/Random/RandomStreamTest.java ++java/util/Random/RandomTest.java ++java/util/Spliterator/SpliteratorCharacteristics.java ++java/util/Spliterator/SpliteratorCollisions.java ++java/util/Spliterator/SpliteratorLateBindingFailFastTest.java ++java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ++java/util/SplittableRandom/SplittableRandomTest.java ++java/util/StringJoiner/MergeTest.java ++java/util/StringJoiner/StringJoinerTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++java/util/concurrent/CompletableFuture/ThenComposeAsyncTest.java ++java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentAssociateTest.java ++java/util/concurrent/ConcurrentHashMap/ConcurrentContainsKeyTest.java ++java/util/concurrent/LinkedTransferQueue/SpliteratorTraverseAddRemoveTest.java ++java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ++java/util/concurrent/atomic/AtomicReferenceTest.java ++java/util/function/BiFunction/BiFunctionTest.java ++java/util/function/BinaryOperator/BasicTest.java ++java/util/logging/LoggerSupplierAPIsTest.java ++java/util/regex/PatternStreamTest.java ++java/util/stream/boottest/java/util/stream/DoubleNodeTest.java ++java/util/stream/boottest/java/util/stream/FlagOpTest.java ++java/util/stream/boottest/java/util/stream/IntNodeTest.java ++java/util/stream/boottest/java/util/stream/LongNodeTest.java ++java/util/stream/boottest/java/util/stream/NodeBuilderTest.java ++java/util/stream/boottest/java/util/stream/NodeTest.java ++java/util/stream/boottest/java/util/stream/SliceSpliteratorTest.java ++java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ++java/util/stream/boottest/java/util/stream/StreamFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamOpFlagsTest.java ++java/util/stream/boottest/java/util/stream/StreamReuseTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/DeserializeMethodTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/MHProxiesTest.java ++java/util/stream/test/org/openjdk/tests/java/lang/invoke/SerializedLambdaTest.java ++java/util/stream/test/org/openjdk/tests/java/util/FillableStringTest.java ++java/util/stream/test/org/openjdk/tests/java/util/MapTest.java ++java/util/stream/test/org/openjdk/tests/java/util/NullArgsTestCase.java ++java/util/stream/test/org/openjdk/tests/java/util/SplittableRandomTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CollectionAndMapModifyStreamTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ConcatTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountLargeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CountTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/CustomFJPoolTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DistinctOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/DoublePrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FilterOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindAnyOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FindFirstOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/GroupByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/IntUniqOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/LongPrimitiveOpsTests.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MapOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MatchOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/MinMaxTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveAverageOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/PrimitiveSumTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/RangeTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceByOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ReduceTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SequentialOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/SpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamCloseTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamLinkTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamParSeqTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/TeeOpTest.java ++java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java ++java/util/zip/ZipFile/StreamZipEntriesTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/DialogMargins.java ++javax/print/applet/AppletPrintLookup.sh ++javax/script/SimpleScriptContextNameChecksTest.java ++javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java ++javax/smartcardio/CommandAPDUTest.java ++javax/smartcardio/ResponseAPDUTest.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/sql/testng/test/rowset/BaseRowSetTests.java ++javax/sql/testng/test/rowset/CommonRowSetTests.java ++javax/sql/testng/test/rowset/RowSetFactoryTests.java ++javax/sql/testng/test/rowset/RowSetMetaDataTests.java ++javax/sql/testng/test/rowset/RowSetProviderTests.java ++javax/sql/testng/test/rowset/RowSetWarningTests.java ++javax/sql/testng/test/rowset/cachedrowset/CachedRowSetTests.java ++javax/sql/testng/test/rowset/cachedrowset/CommonCachedRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/CityFilter.java ++javax/sql/testng/test/rowset/filteredrowset/FilteredRowSetTests.java ++javax/sql/testng/test/rowset/filteredrowset/PrimaryKeyFilter.java ++javax/sql/testng/test/rowset/joinrowset/JoinRowSetTests.java ++javax/sql/testng/test/rowset/serial/SQLInputImplTests.java ++javax/sql/testng/test/rowset/serial/SQLOutputImplTests.java ++javax/sql/testng/test/rowset/serial/SerialArrayTests.java ++javax/sql/testng/test/rowset/serial/SerialBlobTests.java ++javax/sql/testng/test/rowset/serial/SerialClobTests.java ++javax/sql/testng/test/rowset/serial/SerialDataLinkTests.java ++javax/sql/testng/test/rowset/serial/SerialExceptionTests.java ++javax/sql/testng/test/rowset/serial/SerialJavaObjectTests.java ++javax/sql/testng/test/rowset/serial/SerialRefTests.java ++javax/sql/testng/test/rowset/serial/SerialStructTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryExceptionTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryPermissionsTests.java ++javax/sql/testng/test/rowset/spi/SyncFactoryTests.java ++javax/sql/testng/test/rowset/spi/SyncProviderExceptionTests.java ++javax/sql/testng/test/rowset/webrowset/CommonWebRowSetTests.java ++javax/sql/testng/test/rowset/webrowset/WebRowSetTests.java ++javax/sql/testng/util/PropertyStubProvider.java ++javax/sql/testng/util/StubArray.java ++javax/sql/testng/util/StubBaseRowSet.java ++javax/sql/testng/util/StubBlob.java ++javax/sql/testng/util/StubCachedRowSetImpl.java ++javax/sql/testng/util/StubClob.java ++javax/sql/testng/util/StubContext.java ++javax/sql/testng/util/StubFilteredRowSetImpl.java ++javax/sql/testng/util/StubJdbcRowSetImpl.java ++javax/sql/testng/util/StubJoinRowSetImpl.java ++javax/sql/testng/util/StubNClob.java ++javax/sql/testng/util/StubRef.java ++javax/sql/testng/util/StubRowId.java ++javax/sql/testng/util/StubRowSetFactory.java ++javax/sql/testng/util/StubSQLXML.java ++javax/sql/testng/util/StubStruct.java ++javax/sql/testng/util/StubSyncProvider.java ++javax/sql/testng/util/StubSyncResolver.java ++javax/sql/testng/util/StubWebRowSetImpl.java ++javax/sql/testng/util/SuperHero.java ++javax/sql/testng/util/TestRowSetListener.java ++javax/sql/testng/util/TestSQLDataImpl.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/SwingUtilities/TestTextPosInPrint.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++javax/xml/bind/jxc/8046817/GenerateEnumSchema.java ++javax/xml/bind/jxc/8073519/SchemagenErrorReporting.java ++javax/xml/bind/jxc/8073872/SchemagenStackOverflow.java ++javax/xml/bind/marshal/8134111/UnmarshalTest.java ++javax/xml/bind/xjc/8145039/JaxbMarshallTest.java ++javax/xml/bind/xsom/8159240/WhitespacesTest.java ++javax/xml/jaxp/common/8144593/TransformationWarningsTest.java ++javax/xml/jaxp/common/8144593/ValidationWarningsTest.java ++javax/xml/jaxp/parsers/8072081/SupplementaryChars.java ++javax/xml/jaxp/parsers/8073385/BadExceptionMessageTest.java ++javax/xml/jaxp/stream/8145974/SurrogatesTest.java ++javax/xml/jaxp/stream/8153781/SkipDTDTest.java ++javax/xml/jaxp/testng/parse/XMLEntityScannerLoad.java ++javax/xml/jaxp/testng/parse/jdk7156085/UTF8ReaderBug.java ++javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java ++javax/xml/jaxp/transform/8062923/XslSubstringTest.java ++javax/xml/jaxp/transform/8079323/TemplatesTest.java ++javax/xml/jaxp/transform/8150704/TransformerTest.java ++javax/xml/jaxp/transform/8162598/TransformerTest.java ++javax/xml/jaxp/transform/8167179/NamespacePrefixTest.java ++javax/xml/jaxp/transform/8169112/TransformerTest.java ++javax/xml/jaxp/transform/8207760/JDK8207760.java ++javax/xml/jaxp/transform/sort/SortTest.java ++javax/xml/jaxp/unittest/xpath/XPathExpTest.java ++javax/xml/jaxp/validation/8149915/SchemaTest.java ++javax/xml/ws/8159058/SaajEmptyNamespaceTest.java ++javax/xml/ws/8172297/Main.java ++jdk/java/dwarf/TestDwarf.java ++jdk/lambda/ArrayCtorRefTest.java ++jdk/lambda/FDTest.java ++jdk/lambda/LambdaTranslationCompoundSamTest.java ++jdk/lambda/LambdaTranslationInInterface.java ++jdk/lambda/LambdaTranslationInnerConstructor.java ++jdk/lambda/LambdaTranslationTest1.java ++jdk/lambda/LambdaTranslationTest2.java ++jdk/lambda/MethodReferenceTestCallerSensitive.java ++jdk/lambda/MethodReferenceTestFDCCE.java ++jdk/lambda/MethodReferenceTestInnerDefault.java ++jdk/lambda/MethodReferenceTestInnerInstance.java ++jdk/lambda/MethodReferenceTestInnerVarArgsThis.java ++jdk/lambda/MethodReferenceTestInstance.java ++jdk/lambda/MethodReferenceTestInstanceMethod.java ++jdk/lambda/MethodReferenceTestKinds.java ++jdk/lambda/MethodReferenceTestNew.java ++jdk/lambda/MethodReferenceTestNewInner.java ++jdk/lambda/MethodReferenceTestSueCase1.java ++jdk/lambda/MethodReferenceTestSueCase2.java ++jdk/lambda/MethodReferenceTestSueCase4.java ++jdk/lambda/MethodReferenceTestSuper.java ++jdk/lambda/MethodReferenceTestSuperDefault.java ++jdk/lambda/MethodReferenceTestTypeConversion.java ++jdk/lambda/MethodReferenceTestVarArgs.java ++jdk/lambda/MethodReferenceTestVarArgsExt.java ++jdk/lambda/MethodReferenceTestVarArgsSuper.java ++jdk/lambda/MethodReferenceTestVarArgsSuperDefault.java ++jdk/lambda/MethodReferenceTestVarArgsThis.java ++jdk/lambda/TestInnerCtorRef.java ++jdk/lambda/TestPrivateCtorRef.java ++jdk/lambda/separate/AttributeInjector.java ++jdk/lambda/separate/ClassFile.java ++jdk/lambda/separate/ClassFilePreprocessor.java ++jdk/lambda/separate/ClassToInterfaceConverter.java ++jdk/lambda/separate/Compiler.java ++jdk/lambda/separate/DirectedClassLoader.java ++jdk/lambda/separate/SourceModel.java ++jdk/lambda/separate/TestHarness.java ++jdk/lambda/shapegen/ClassCase.java ++jdk/lambda/shapegen/Hierarchy.java ++jdk/lambda/shapegen/HierarchyGenerator.java ++jdk/lambda/shapegen/Rule.java ++jdk/lambda/shapegen/RuleGroup.java ++jdk/lambda/shapegen/TTNode.java ++jdk/lambda/shapegen/TTParser.java ++jdk/lambda/shapegen/TTShape.java ++jdk/lambda/vm/DefaultMethodRegressionTests.java ++jdk/lambda/vm/InterfaceAccessFlagsTest.java ++jdk/lambda/vm/StrictfpDefault.java ++org/openeuler/security/openssl/AESTest.java ++org/openeuler/security/openssl/DHTest.java ++org/openeuler/security/openssl/DigestTest.java ++org/openeuler/security/openssl/ECDHTest.java ++org/openeuler/security/openssl/HmacTest.java ++org/openeuler/security/openssl/KAEConfTest.java ++org/openeuler/security/openssl/KAELogTest.java ++org/openeuler/security/openssl/KaeDebugLogTest.java ++org/openeuler/security/openssl/KaeProviderTest.java ++org/openeuler/security/openssl/RSATest.java ++org/openeuler/security/openssl/SM4Test.java ++sample/chatserver/ChatTest.java ++sample/mergesort/MergeSortTest.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++serviceability/dcmd/gc/HeapDumpTest.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/net/www/http/RequestMethodCheck/RequestMethodEquality.java ++sun/reflect/ReflectionFactory/ReflectionFactoryTest.java ++sun/rmi/server/UnicastServerRef/FilterUSRTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/security/x509/GeneralName/DNSNameTest.java ++sun/tools/jps/TestJpsJarRelative.java ++sun/util/calendar/zi/Beyond2037.java ++sun/util/resources/TimeZone/Bug8139107.java ++lib/combo/tools/javac/combo/Diagnostics.java ++lib/combo/tools/javac/combo/JavacTemplateTestBase.java ++lib/combo/tools/javac/combo/Template.java ++lib/combo/tools/javac/combo/TemplateTest.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ++tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java ++tools/javac/lambda/lambdaExecution/InInterface.java ++tools/javac/lambda/lambdaExecution/InnerConstructor.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java ++tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java ++tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java ++tools/javac/lambdaShapes/org/openjdk/tests/javac/FDTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java ++tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java ++tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java ++tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java ++tools/javac/tree/T8024415.java ++tools/jdeps/MRJarWarning.java ++src/jdk/nashorn/api/javaaccess/test/BooleanAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/MethodAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/NumberBoxingTest.java ++src/jdk/nashorn/api/javaaccess/test/ObjectAccessTest.java ++src/jdk/nashorn/api/javaaccess/test/StringAccessTest.java ++src/jdk/nashorn/api/scripting/test/MultipleEngineTest.java ++src/jdk/nashorn/api/scripting/test/ScriptEngineTest.java ++src/jdk/nashorn/internal/runtime/regexp/joni/test/JoniTest.java ++src/jdk/nashorn/internal/runtime/regexp/test/JdkRegExpTest.java ++src/jdk/nashorn/internal/runtime/test/ConsStringTest.java ++src/jdk/nashorn/internal/runtime/test/ContextTest.java ++src/jdk/nashorn/internal/runtime/test/ExceptionsNotSerializable.java ++src/jdk/nashorn/internal/runtime/test/JDK_8078414_Test.java ++src/jdk/nashorn/internal/runtime/test/JSTypeTest.java ++src/jdk/nashorn/internal/runtime/test/LexicalBindingTest.java ++src/jdk/nashorn/internal/runtime/test/NoPersistenceCachingTest.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ++sun/net/www/http/ChunkedOutputStream/checkError.java +\ No newline at end of file +diff --git a/jdk/test/problemlist/uos.txt b/jdk/test/problemlist/uos.txt +new file mode 100644 +index 000000000..c32f82891 +--- /dev/null ++++ b/jdk/test/problemlist/uos.txt +@@ -0,0 +1,1271 @@ ++compiler/profiling/spectrapredefineclass/Launcher.java ++gc/survivorAlignment/TestPromotionToSurvivor.java ++testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java ++com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ++com/sun/awt/Translucency/WindowOpacity.java ++com/sun/java/swing/plaf/windows/8016551/bug8016551.java ++com/sun/jndi/dns/IPv6NameserverPlatformParsingTest.java ++com/sun/jndi/ldap/LdapDnsProviderTest.java ++com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java ++com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ++com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java ++java/awt/BasicStroke/DashOffset.java ++java/awt/BasicStroke/DashScaleMinWidth.java ++java/awt/BasicStroke/DashZeroWidth.java ++java/awt/Checkbox/SetStateExcessEvent/SetStateExcessEvent.java ++java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html ++java/awt/Choice/ChoiceLocationTest/ChoiceLocationTest.java ++java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java ++java/awt/Choice/DragMouseOutAndRelease/DragMouseOutAndRelease.java ++java/awt/Choice/GetSizeTest/GetSizeTest.java ++java/awt/Choice/GrabLockTest/GrabLockTest.java ++java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ++java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.html ++java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.html ++java/awt/Choice/PopupPosTest/PopupPosTest.html ++java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java ++java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ++java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html ++java/awt/Choice/UnfocusableCB_ERR/UnfocusableCB_ERR.java ++java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ++java/awt/Component/7097771/bug7097771.java ++java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java ++java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java ++java/awt/Component/F10TopToplevel/F10TopToplevel.html ++java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java ++java/awt/Component/NativeInLightShow/NativeInLightShow.java ++java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ++java/awt/Component/PaintAll/PaintAll.java ++java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ++java/awt/Component/Revalidate/Revalidate.java ++java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java ++java/awt/Component/TreeLockDeadlock/TreeLockDeadlock.java ++java/awt/Component/UpdatingBootTime/UpdatingBootTime.html ++java/awt/Component/isLightweightCrash/IsLightweightCrash.java ++java/awt/ComponentOrientation/BorderTest.java ++java/awt/ComponentOrientation/FlowTest.java ++java/awt/ComponentOrientation/WindowTest.java ++java/awt/Container/CheckZOrderChange/CheckZOrderChange.java ++java/awt/Container/ContainerAIOOBE/ContainerAIOOBE.java ++java/awt/Container/MoveToOtherScreenTest/MoveToOtherScreenTest.java ++java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ++java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ++java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java ++java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ++java/awt/Desktop/DesktopGtkLoadTest/DesktopGtkLoadTest.java ++java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ++java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ++java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ++java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java ++java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java ++java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ++java/awt/Dialog/ValidateOnShow/ValidateOnShow.java ++java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java ++java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.html ++java/awt/EventDispatchThread/PreserveDispathThread/PreserveDispatchThread.java ++java/awt/EventQueue/6980209/bug6980209.java ++java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ++java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ++java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ++java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ++java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.html ++java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html ++java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html ++java/awt/FileDialog/MultipleMode/MultipleMode.html ++java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.html ++java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html ++java/awt/Focus/6378278/InputVerifierTest.java ++java/awt/Focus/6382144/EndlessLoopTest.java ++java/awt/Focus/6401036/InputVerifierTest2.java ++java/awt/Focus/6981400/Test1.java ++java/awt/Focus/6981400/Test2.java ++java/awt/Focus/6981400/Test3.java ++java/awt/Focus/8013611/JDK8013611.java ++java/awt/Focus/8044614/bug8044614.java ++java/awt/Focus/8073453/AWTFocusTransitionTest.java ++java/awt/Focus/8073453/SwingFocusTransitionTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ++java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.html ++java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.html ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ++java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ++java/awt/Focus/ChildWindowFocusTest/ChildWindowFocusTest.html ++java/awt/Focus/ChoiceFocus/ChoiceFocus.java ++java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ++java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ++java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ++java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ++java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ++java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html ++java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.html ++java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ++java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java ++java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.html ++java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java ++java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ++java/awt/Focus/FocusTraversalPolicy/InitialFTP.java ++java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ++java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ++java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ++java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ++java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ++java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java ++java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html ++java/awt/Focus/ModalDialogActivationTest/ModalDialogActivationTest.java ++java/awt/Focus/ModalDialogInitialFocusTest/ModalDialogInitialFocusTest.html ++java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.html ++java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.html ++java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ++java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html ++java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ++java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ++java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ++java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java ++java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ++java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ++java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ++java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ++java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ++java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java ++java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ++java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java ++java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ++java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java ++java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html ++java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ++java/awt/Focus/TypeAhead/TestFocusFreeze.java ++java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html ++java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java ++java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html ++java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ++java/awt/FontClass/CreateFont/bigfont.html ++java/awt/FontMetrics/MaxAdvanceIsMax.java ++java/awt/Frame/7024749/bug7024749.java ++java/awt/Frame/DecoratedExceptions/DecoratedExceptions.java ++java/awt/Frame/DisposeParentGC/DisposeParentGC.java ++java/awt/Frame/DynamicLayout/DynamicLayout.java ++java/awt/Frame/FrameLocation/FrameLocation.java ++java/awt/Frame/FrameResize/ShowChildWhileResizingTest.java ++java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java ++java/awt/Frame/FrameSize/TestFrameSize.java ++java/awt/Frame/FrameStateTest/FrameStateTest.html ++java/awt/Frame/FramesGC/FramesGC.java ++java/awt/Frame/GetBoundsResizeTest/GetBoundsResizeTest.java ++java/awt/Frame/HideMaximized/HideMaximized.java ++java/awt/Frame/HugeFrame/HugeFrame.java ++java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.html ++java/awt/Frame/InvisibleOwner/InvisibleOwner.java ++java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ++java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java ++java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ++java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java ++java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java ++java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java ++java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java ++java/awt/Frame/MiscUndecorated/FrameCloseTest.java ++java/awt/Frame/MiscUndecorated/RepaintTest.java ++java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java ++java/awt/Frame/NormalToIconified/NormalToIconifiedTest.java ++java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ++java/awt/Frame/ResizeAfterSetFont/ResizeAfterSetFont.java ++java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java ++java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ++java/awt/Frame/ShownOnPack/ShownOnPack.html ++java/awt/Frame/SlideNotResizableTest/SlideNotResizableTest.java ++java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ++java/awt/Frame/WindowDragTest/WindowDragTest.java ++java/awt/FullScreen/8013581/bug8013581.java ++java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java ++java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ++java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java ++java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java ++java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ++java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ++java/awt/FullScreen/NonExistentDisplayModeTest/NonExistentDisplayModeTest.java ++java/awt/FullScreen/SetFSWindow/FSFrame.java ++java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ++java/awt/GradientPaint/GradientTransformTest.java ++java/awt/GradientPaint/LinearColorSpaceGradientTest.java ++java/awt/Graphics/DrawLineTest.java ++java/awt/Graphics/LineClipTest.java ++java/awt/Graphics2D/DrawString/DrawStrSuper.java ++java/awt/Graphics2D/DrawString/LCDTextSrcEa.java ++java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ++java/awt/Graphics2D/DrawString/TextRenderingTest.java ++java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ++java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java ++java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java ++java/awt/Graphics2D/TransformSetGet/TransformSetGet.java ++java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java ++java/awt/GraphicsDevice/CheckDisplayModes.java ++java/awt/GraphicsDevice/CloneConfigsTest.java ++java/awt/GraphicsDevice/IncorrectDisplayModeExitFullscreen.java ++java/awt/GraphicsEnvironment/LoadLock/GE_init3.java ++java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ++java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java ++java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java ++java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ++java/awt/Gtk/GtkVersionTest/GtkVersionTest.java ++java/awt/InputMethods/DiacriticsTest/DiacriticsTest.java ++java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java ++java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java ++java/awt/InputMethods/SpanishDiacriticsTest/SpanishDiacriticsTest.java ++java/awt/Insets/CombinedTestApp1.java ++java/awt/JAWT/JAWT.sh ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.html ++java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ++java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_AWT.java ++java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/FreezeTest/FreezeTest.java ++java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ++java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html ++java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java ++java/awt/List/ActionAfterRemove/ActionAfterRemove.java ++java/awt/List/EmptyListEventTest/EmptyListEventTest.java ++java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ++java/awt/List/FocusEmptyListTest/FocusEmptyListTest.html ++java/awt/List/KeyEventsTest/KeyEventsTest.html ++java/awt/List/ListFlickers/ListFlickers.java ++java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java ++java/awt/List/ListPeer/R2303044ListSelection.java ++java/awt/List/MouseDraggedOutCauseScrollingTest/MouseDraggedOutCauseScrollingTest.html ++java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java ++java/awt/List/ScrollOutside/ScrollOut.java ++java/awt/List/SetFontTest/SetFontTest.html ++java/awt/List/SingleModeDeselect/SingleModeDeselect.java ++java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java ++java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ++java/awt/MenuBar/DeadlockTest1/DeadlockTest1.java ++java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ++java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java ++java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java ++java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java ++java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java ++java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JListOverlapping.java ++java/awt/Mixing/AWT_Mixing/JMenuBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java ++java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java ++java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java ++java/awt/Mixing/AWT_Mixing/JSplitPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTableOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java ++java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java ++java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java ++java/awt/Mixing/AWT_Mixing/MixingPanelsResizing.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java ++java/awt/Mixing/AWT_Mixing/OpaqueOverlappingChoice.java ++java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java ++java/awt/Mixing/HWDisappear.java ++java/awt/Mixing/JButtonInGlassPane.java ++java/awt/Mixing/LWComboBox.java ++java/awt/Mixing/LWPopupMenu.java ++java/awt/Mixing/MixingInHwPanel.java ++java/awt/Mixing/MixingOnDialog.java ++java/awt/Mixing/MixingOnShrinkingHWButton.java ++java/awt/Mixing/NonOpaqueInternalFrame.java ++java/awt/Mixing/OpaqueTest.java ++java/awt/Mixing/OverlappingButtons.java ++java/awt/Mixing/ValidBounds.java ++java/awt/Mixing/Validating.java ++java/awt/Mixing/setComponentZOrder.java ++java/awt/Modal/FileDialog/FileDialogAppModal1Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal2Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal3Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal4Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal5Test.java ++java/awt/Modal/FileDialog/FileDialogAppModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal1Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal2Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal3Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal4Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal5Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal6Test.java ++java/awt/Modal/FileDialog/FileDialogDocModal7Test.java ++java/awt/Modal/FileDialog/FileDialogModal1Test.java ++java/awt/Modal/FileDialog/FileDialogModal2Test.java ++java/awt/Modal/FileDialog/FileDialogModal3Test.java ++java/awt/Modal/FileDialog/FileDialogModal4Test.java ++java/awt/Modal/FileDialog/FileDialogModal5Test.java ++java/awt/Modal/FileDialog/FileDialogModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal1Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal2Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal3Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal4Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal5Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal6Test.java ++java/awt/Modal/FileDialog/FileDialogNonModal7Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal1Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal2Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal3Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal4Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal5Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal6Test.java ++java/awt/Modal/FileDialog/FileDialogTKModal7Test.java ++java/awt/Modal/LWModalTest/LWModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java ++java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java ++java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java ++java/awt/Modal/ModalDialogMultiscreenTest/ModalDialogMultiscreenTest.java ++java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java ++java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java ++java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java ++java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ++java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java ++java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java ++java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ++java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java ++java/awt/Modal/OnTop/OnTopAppModal1Test.java ++java/awt/Modal/OnTop/OnTopAppModal2Test.java ++java/awt/Modal/OnTop/OnTopAppModal3Test.java ++java/awt/Modal/OnTop/OnTopAppModal4Test.java ++java/awt/Modal/OnTop/OnTopAppModal5Test.java ++java/awt/Modal/OnTop/OnTopAppModal6Test.java ++java/awt/Modal/OnTop/OnTopDocModal1Test.java ++java/awt/Modal/OnTop/OnTopDocModal2Test.java ++java/awt/Modal/OnTop/OnTopDocModal3Test.java ++java/awt/Modal/OnTop/OnTopDocModal4Test.java ++java/awt/Modal/OnTop/OnTopDocModal5Test.java ++java/awt/Modal/OnTop/OnTopDocModal6Test.java ++java/awt/Modal/OnTop/OnTopModal1Test.java ++java/awt/Modal/OnTop/OnTopModal2Test.java ++java/awt/Modal/OnTop/OnTopModal3Test.java ++java/awt/Modal/OnTop/OnTopModal4Test.java ++java/awt/Modal/OnTop/OnTopModal5Test.java ++java/awt/Modal/OnTop/OnTopModal6Test.java ++java/awt/Modal/OnTop/OnTopModeless1Test.java ++java/awt/Modal/OnTop/OnTopModeless2Test.java ++java/awt/Modal/OnTop/OnTopModeless3Test.java ++java/awt/Modal/OnTop/OnTopModeless4Test.java ++java/awt/Modal/OnTop/OnTopModeless5Test.java ++java/awt/Modal/OnTop/OnTopModeless6Test.java ++java/awt/Modal/OnTop/OnTopTKModal1Test.java ++java/awt/Modal/OnTop/OnTopTKModal2Test.java ++java/awt/Modal/OnTop/OnTopTKModal3Test.java ++java/awt/Modal/OnTop/OnTopTKModal4Test.java ++java/awt/Modal/OnTop/OnTopTKModal5Test.java ++java/awt/Modal/OnTop/OnTopTKModal6Test.java ++java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java ++java/awt/Modal/SupportedTest/SupportedTest.java ++java/awt/Modal/ToBack/ToBackAppModal1Test.java ++java/awt/Modal/ToBack/ToBackAppModal2Test.java ++java/awt/Modal/ToBack/ToBackAppModal3Test.java ++java/awt/Modal/ToBack/ToBackAppModal4Test.java ++java/awt/Modal/ToBack/ToBackAppModal5Test.java ++java/awt/Modal/ToBack/ToBackAppModal6Test.java ++java/awt/Modal/ToBack/ToBackDocModal1Test.java ++java/awt/Modal/ToBack/ToBackDocModal2Test.java ++java/awt/Modal/ToBack/ToBackDocModal3Test.java ++java/awt/Modal/ToBack/ToBackDocModal4Test.java ++java/awt/Modal/ToBack/ToBackDocModal5Test.java ++java/awt/Modal/ToBack/ToBackDocModal6Test.java ++java/awt/Modal/ToBack/ToBackModal1Test.java ++java/awt/Modal/ToBack/ToBackModal2Test.java ++java/awt/Modal/ToBack/ToBackModal3Test.java ++java/awt/Modal/ToBack/ToBackModal4Test.java ++java/awt/Modal/ToBack/ToBackModal5Test.java ++java/awt/Modal/ToBack/ToBackModal6Test.java ++java/awt/Modal/ToBack/ToBackModeless1Test.java ++java/awt/Modal/ToBack/ToBackModeless2Test.java ++java/awt/Modal/ToBack/ToBackModeless3Test.java ++java/awt/Modal/ToBack/ToBackModeless4Test.java ++java/awt/Modal/ToBack/ToBackModeless5Test.java ++java/awt/Modal/ToBack/ToBackModeless6Test.java ++java/awt/Modal/ToBack/ToBackNonModal1Test.java ++java/awt/Modal/ToBack/ToBackNonModal2Test.java ++java/awt/Modal/ToBack/ToBackNonModal3Test.java ++java/awt/Modal/ToBack/ToBackNonModal4Test.java ++java/awt/Modal/ToBack/ToBackNonModal5Test.java ++java/awt/Modal/ToBack/ToBackNonModal6Test.java ++java/awt/Modal/ToBack/ToBackTKModal1Test.java ++java/awt/Modal/ToBack/ToBackTKModal2Test.java ++java/awt/Modal/ToBack/ToBackTKModal3Test.java ++java/awt/Modal/ToBack/ToBackTKModal4Test.java ++java/awt/Modal/ToBack/ToBackTKModal5Test.java ++java/awt/Modal/ToBack/ToBackTKModal6Test.java ++java/awt/Modal/ToFront/DialogToFrontAppModalTest.java ++java/awt/Modal/ToFront/DialogToFrontDocModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModalTest.java ++java/awt/Modal/ToFront/DialogToFrontModeless1Test.java ++java/awt/Modal/ToFront/DialogToFrontNonModalTest.java ++java/awt/Modal/ToFront/DialogToFrontTKModalTest.java ++java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontModal5Test.java ++java/awt/Modal/ToFront/FrameToFrontModeless1Test.java ++java/awt/Modal/ToFront/FrameToFrontNonModalTest.java ++java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java ++java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java ++java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ++java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ++java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ++java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java ++java/awt/Mouse/EnterExitEvents/DragWindowTest.java ++java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java ++java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java ++java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java ++java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java ++java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ++java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java ++java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java ++java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ++java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java ++java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java ++java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html ++java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ++java/awt/MouseInfo/GetPointerInfoTest.java ++java/awt/MouseInfo/JContainerMousePositionTest.java ++java/awt/MouseInfo/MultiscreenPointerInfo.java ++java/awt/MultipleGradientPaint/MultiGradientTest.java ++java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ++java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ++java/awt/Multiscreen/MouseEventTest/MouseEventTest.java ++java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ++java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java ++java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java ++java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ++java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ++java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html ++java/awt/Paint/ButtonRepaint.java ++java/awt/Paint/CheckboxRepaint.java ++java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java ++java/awt/Paint/ExposeOnEDT.java ++java/awt/Paint/LabelRepaint.java ++java/awt/Paint/ListRepaint.java ++java/awt/Paint/PaintNativeOnUpdate.java ++java/awt/Paint/RepaintOnAWTShutdown.java ++java/awt/Paint/bug8024864.java ++java/awt/PrintJob/EdgeTest/EdgeTest.java ++java/awt/PrintJob/MultipleEnd/MultipleEnd.java ++java/awt/PrintJob/PrintArcTest/PrintArcTest.java ++java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ++java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ++java/awt/PrintJob/Security/SecurityDialogTest.java ++java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java ++java/awt/Robot/CheckCommonColors/CheckCommonColors.java ++java/awt/Robot/CtorTest/CtorTest.java ++java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java ++java/awt/Robot/NonEmptyErrorStream.java ++java/awt/Robot/RobotExtraButton/RobotExtraButton.java ++java/awt/Robot/RobotWheelTest/RobotWheelTest.java ++java/awt/Robot/WaitForIdleSyncroizedOnString/WaitForIdleSyncroizedOnString.java ++java/awt/ScrollPane/ScrollPanePreferredSize/ScrollPanePreferredSize.java ++java/awt/ScrollPane/ScrollPaneValidateTest.java ++java/awt/ScrollPane/bug8077409Test.java ++java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java ++java/awt/TextArea/Mixing/TextAreaMixing.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test.java ++java/awt/TextArea/MouseOverScrollbarWhenTyping/Test1.java ++java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ++java/awt/TextArea/SelectionVisible/SelectionVisible.html ++java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java ++java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.html ++java/awt/TextArea/TextAreaEditing/TextAreaEditing.java ++java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java ++java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ++java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.html ++java/awt/TextField/SelectionInvisibleTest/SelectionInvisibleTest.java ++java/awt/TextField/SelectionVisible/SelectionVisible.html ++java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ++java/awt/Toolkit/DisplayChangesException/DisplayChangesException.java ++java/awt/Toolkit/DynamicLayout/bug7172833.java ++java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java ++java/awt/Toolkit/RealSync/RealSyncOnEDT.java ++java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ++java/awt/Toolkit/SecurityTest/SecurityTest2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java ++java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java ++java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java ++java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html ++java/awt/TrayIcon/DragEventSource/DragEventSource.java ++java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java ++java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java ++java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html ++java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java ++java/awt/Window/8027025/Test8027025.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ++java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/AutoTestOnTop.java ++java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java ++java/awt/Window/AlwaysOnTop/TestAlwaysOnTopBeforeShow.java ++java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java ++java/awt/Window/GetWindowsTest/GetWindowsTest.java ++java/awt/Window/Grab/GrabTest.java ++java/awt/Window/GrabSequence/GrabSequence.java ++java/awt/Window/HandleWindowDestroyTest/HandleWindowDestroyTest.html ++java/awt/Window/LocationByPlatform/LocationByPlatformTest.java ++java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java ++java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ++java/awt/Window/OwnedWindowsSerialization/OwnedWindowsSerialization.java ++java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ++java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ++java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShape.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/SetShapeDynamicallyAndClick.java ++java/awt/Window/ShapedAndTranslucentWindows/Shaped.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedByAPI.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucent.java ++java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java ++java/awt/Window/ShapedAndTranslucentWindows/StaticallyShaped.java ++java/awt/Window/ShapedAndTranslucentWindows/Translucent.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java ++java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java ++java/awt/Window/TopLevelLocation/TopLevelLocation.java ++java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ++java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ++java/awt/Window/WindowClosedEvents/WindowClosedEventOnDispose.java ++java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ++java/awt/Window/WindowGCInFullScreen/WindowGCInFullScreen.java ++java/awt/Window/WindowJumpingTest/WindowJumpingTest.java ++java/awt/Window/WindowType/WindowType.java ++java/awt/Window/WindowsLeak/WindowsLeak.java ++java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java ++java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ++java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java ++java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ++java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java ++java/awt/datatransfer/DataFlavor/NullDataFlavorTest.java ++java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java ++java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.html ++java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.html ++java/awt/datatransfer/ImageTransfer/ImageTransferTest.java ++java/awt/datatransfer/Independence/IndependenceAWTTest.java ++java/awt/datatransfer/Independence/IndependenceSwingTest.java ++java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ++java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionAWTTest.java ++java/awt/datatransfer/SystemSelection/SystemSelectionSwingTest.java ++java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java ++java/awt/dnd/Button2DragTest/Button2DragTest.java ++java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java ++java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.html ++java/awt/dnd/DragInterceptorAppletTest/DragInterceptorAppletTest.html ++java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java ++java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java ++java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java ++java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html ++java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.html ++java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.html ++java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.html ++java/awt/dnd/ImageTransferTest/ImageTransferTest.java ++java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.html ++java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java ++java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java ++java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html ++java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html ++java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html ++java/awt/dnd/URLDragTest/URLDragTest.html ++java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html ++java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java ++java/awt/event/ComponentEvent/TextAreaTextEventTest.java ++java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ++java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java ++java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java ++java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html ++java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java ++java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ++java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java ++java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java ++java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java ++java/awt/event/KeyEvent/KeyChar/KeyCharTest.java ++java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java ++java/awt/event/KeyEvent/KeyReleasedInAppletTest/KeyReleasedInAppletTest.html ++java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html ++java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ++java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html ++java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java ++java/awt/event/MouseEvent/AltGraphModifierTest/AltGraphModifierTest.java ++java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java ++java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java ++java/awt/event/MouseEvent/DisabledComponents/DisabledComponentsTest.java ++java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java ++java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ++java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java ++java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java ++java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html ++java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html ++java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java ++java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html ++java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ++java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ++java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html ++java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ++java/awt/event/MouseWheelEvent/WheelModifier/MouseWheelOnBackgroundComponent.java ++java/awt/event/MouseWheelEvent/WheelModifier/WheelModifier.java ++java/awt/event/OtherEvents/UngrabID/UngrabID.java ++java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java ++java/awt/event/TextEvent/TextEventSequenceTest/TextEventSequenceTest.java ++java/awt/font/Rotate/Shear.java ++java/awt/font/TextLayout/CombiningPerf.java ++java/awt/font/TextLayout/DiacriticsDrawingTest.java ++java/awt/font/Underline/UnderlineTest.java ++java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ++java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ++java/awt/grab/MenuDragEvents/MenuDragEvents.html ++java/awt/im/4959409/bug4959409.html ++java/awt/im/8132503/bug8132503.java ++java/awt/im/8148984/bug8148984.java ++java/awt/im/8154816/bug8154816.java ++java/awt/im/InputContext/InputContextTest.java ++java/awt/im/InputContext/ReconnectTest.java ++java/awt/im/InputContext/bug4625203.java ++java/awt/im/JTextFieldTest.java ++java/awt/im/memoryleak/InputContextMemoryLeakTest.java ++java/awt/image/DrawImage/EABlitTest.java ++java/awt/image/DrawImage/IncorrectAlphaConversionBicubic.java ++java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java ++java/awt/image/DrawImage/IncorrectBounds.java ++java/awt/image/DrawImage/IncorrectClipSurface2SW.java ++java/awt/image/DrawImage/IncorrectClipXorModeSW2Surface.java ++java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java ++java/awt/image/DrawImage/IncorrectDestinationOffset.java ++java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ++java/awt/image/DrawImage/IncorrectOffset.java ++java/awt/image/DrawImage/IncorrectSourceOffset.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageRotatedClip.java ++java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java ++java/awt/image/DrawImage/SimpleManagedImage.java ++java/awt/image/DrawImage/SimpleUnmanagedImage.java ++java/awt/image/DrawImage/UnmanagedDrawImagePerformance.java ++java/awt/image/MemoryLeakTest/MemoryLeakTest.java ++java/awt/image/VolatileImage/BitmaskVolatileImage.java ++java/awt/image/VolatileImage/VolatileImageBug.java ++java/awt/print/Dialog/DestinationTest.java ++java/awt/print/Dialog/PrintApplet.java ++java/awt/print/Dialog/PrintDialog.java ++java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.html ++java/awt/print/PageFormat/CustomPaper.java ++java/awt/print/PageFormat/ImageableAreaTest.java ++java/awt/print/PageFormat/NullPaper.java ++java/awt/print/PageFormat/Orient.java ++java/awt/print/PageFormat/PageSetupDialog.java ++java/awt/print/PageFormat/ReverseLandscapeTest.java ++java/awt/print/PageFormat/SetOrient.html ++java/awt/print/PageFormat/WrongPaperForBookPrintingTest.java ++java/awt/print/PageFormat/WrongPaperPrintingTest.java ++java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java ++java/awt/print/PrinterJob/Cancel/PrinterJobCancel.java ++java/awt/print/PrinterJob/Collate2DPrintingTest.java ++java/awt/print/PrinterJob/CompareImageable.java ++java/awt/print/PrinterJob/CustomFont/CustomFont.java ++java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java ++java/awt/print/PrinterJob/DlgAttrsBug.java ++java/awt/print/PrinterJob/DrawImage.java ++java/awt/print/PrinterJob/DrawStringMethods.java ++java/awt/print/PrinterJob/ExceptionTest.java ++java/awt/print/PrinterJob/ImagePrinting/NullClipARGB.java ++java/awt/print/PrinterJob/InvalidPage.java ++java/awt/print/PrinterJob/JobName/PrinterJobName.java ++java/awt/print/PrinterJob/Legal/PrintTest.java ++java/awt/print/PrinterJob/LinearGradientPrintingTest.java ++java/awt/print/PrinterJob/Margins.java ++java/awt/print/PrinterJob/NumCopies.java ++java/awt/print/PrinterJob/PageDialogMarginTest.java ++java/awt/print/PrinterJob/PageDlgApp.java ++java/awt/print/PrinterJob/PageDlgPrnButton.java ++java/awt/print/PrinterJob/PageDlgStackOverflowTest.java ++java/awt/print/PrinterJob/PrintAWTImage.java ++java/awt/print/PrinterJob/PrintAttributeUpdateTest.java ++java/awt/print/PrinterJob/PrintCompoundString.java ++java/awt/print/PrinterJob/PrintCrashTest.java ++java/awt/print/PrinterJob/PrintDialog.java ++java/awt/print/PrinterJob/PrintDialogCancel.java ++java/awt/print/PrinterJob/PrintImage.java ++java/awt/print/PrinterJob/PrintNullString.java ++java/awt/print/PrinterJob/PrintParenString.java ++java/awt/print/PrinterJob/PrintRotatedText.java ++java/awt/print/PrinterJob/PrintToDir.java ++java/awt/print/PrinterJob/PrintTranslatedFont.java ++java/awt/print/PrinterJob/PrintVolatileImage.java ++java/awt/print/PrinterJob/PrinterDialogsModalityTest/PrinterDialogsModalityTest.html ++java/awt/print/PrinterJob/PrinterJobDialogBugDemo.java ++java/awt/print/PrinterJob/PrtException.java ++java/awt/print/PrinterJob/RadialGradientPrintingTest.java ++java/awt/print/PrinterJob/ScaledText/ScaledText.java ++java/awt/print/PrinterJob/SecurityDialogTest.java ++java/awt/print/PrinterJob/SetCopies/Test.java ++java/awt/print/PrinterJob/TexturePaintPrintingTest.java ++java/awt/print/PrinterJob/ThinLines.java ++java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ++java/awt/print/PrinterJob/raster/RasterTest.java ++java/awt/print/bug8023392/bug8023392.html ++java/awt/security/Permissions.java ++java/awt/xembed/server/TestXEmbedServerJava.java ++java/beans/PropertyEditor/6380849/TestPropertyEditor.java ++java/beans/PropertyEditor/TestColorClass.java ++java/beans/PropertyEditor/TestColorClassJava.java ++java/beans/PropertyEditor/TestColorClassNull.java ++java/beans/PropertyEditor/TestColorClassValue.java ++java/beans/PropertyEditor/TestFontClass.java ++java/beans/PropertyEditor/TestFontClassJava.java ++java/beans/PropertyEditor/TestFontClassNull.java ++java/beans/PropertyEditor/TestFontClassValue.java ++java/beans/XMLEncoder/java_awt_ScrollPane.java ++java/lang/management/ThreadMXBean/AllThreadIds.java ++java/nio/file/Files/probeContentType/ForceLoad.java ++java/nio/file/Files/probeContentType/ParallelProbes.java ++java/nio/file/spi/SetDefaultProvider.java ++java/rmi/activation/nonLocalActivation/NonLocalActivationTest.java ++java/rmi/registry/nonLocalRegistry/NonLocalRegistryTest.java ++java/text/BreakIterator/BreakIteratorTest.java ++java/util/TimeZone/DefaultTimeZoneTest.java ++javax/accessibility/6192422/bug6192422.java ++javax/accessibility/JList/AccessibleJListChildNPETest.java ++javax/accessibility/SlowPanelIteration/SlowPanelIteration.java ++javax/imageio/AppletResourceTest.java ++javax/imageio/plugins/jpeg/JPEGsNotAcceleratedTest.java ++javax/imageio/plugins/png/ItxtUtf8Test.java ++javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java ++javax/print/CheckDupFlavor.java ++javax/print/DialogMargins.java ++javax/print/applet/AppletPrintLookup.sh ++javax/print/attribute/AttributeTest.java ++javax/print/attribute/GetCopiesSupported.java ++javax/print/attribute/SidesPageRangesTest.java ++javax/print/attribute/SupportedPrintableAreas.java ++javax/sound/midi/MidiSystem/6411624/Test6411624.java ++javax/sound/sampled/DirectAudio/TickAtEndOfPlay.java ++javax/sound/sampled/Lines/ClickInPlay/Test4218609.java ++javax/sound/sampled/Mixers/DirectSoundRepeatingBuffer/Test4997635.java ++javax/sound/sampled/Mixers/DirectSoundUnderrunSilence/Test5032020.java ++javax/swing/AbstractButton/6711682/bug6711682.java ++javax/swing/AncestorNotifier/7193219/bug7193219.java ++javax/swing/JButton/4368790/bug4368790.java ++javax/swing/JButton/JButtonPaintNPE/JButtonPaintNPE.java ++javax/swing/JCheckBox/4449413/bug4449413.java ++javax/swing/JCheckBox/8032667/bug8032667.java ++javax/swing/JColorChooser/8065098/bug8065098.java ++javax/swing/JColorChooser/Test4177735.java ++javax/swing/JColorChooser/Test4222508.java ++javax/swing/JColorChooser/Test4234761.java ++javax/swing/JColorChooser/Test4319113.java ++javax/swing/JColorChooser/Test4759306.java ++javax/swing/JColorChooser/Test4759934.java ++javax/swing/JColorChooser/Test4887836.java ++javax/swing/JColorChooser/Test6348456.java ++javax/swing/JColorChooser/Test6524757.java ++javax/swing/JColorChooser/Test6541987.java ++javax/swing/JColorChooser/Test6559154.java ++javax/swing/JColorChooser/Test6707406.java ++javax/swing/JColorChooser/Test6827032.java ++javax/swing/JColorChooser/Test6977726.java ++javax/swing/JColorChooser/Test7194184.java ++javax/swing/JComboBox/4199622/bug4199622.java ++javax/swing/JComboBox/4515752/DefaultButtonTest.java ++javax/swing/JComboBox/4523758/bug4523758.java ++javax/swing/JComboBox/4743225/bug4743225.java ++javax/swing/JComboBox/6236162/bug6236162.java ++javax/swing/JComboBox/6406264/bug6406264.java ++javax/swing/JComboBox/6559152/bug6559152.java ++javax/swing/JComboBox/6607130/bug6607130.java ++javax/swing/JComboBox/7195179/Test7195179.java ++javax/swing/JComboBox/8015300/Test8015300.java ++javax/swing/JComboBox/8019180/Test8019180.java ++javax/swing/JComboBox/8032878/bug8032878.java ++javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java ++javax/swing/JComboBox/8033069/bug8033069ScrollBar.java ++javax/swing/JComboBox/8057893/bug8057893.java ++javax/swing/JComboBox/8072767/bug8072767.java ++javax/swing/JComboBox/8136998/bug8136998.java ++javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java ++javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java ++javax/swing/JComponent/4337267/bug4337267.java ++javax/swing/JComponent/6683775/bug6683775.java ++javax/swing/JComponent/6989617/bug6989617.java ++javax/swing/JComponent/7154030/bug7154030.java ++javax/swing/JDialog/WrongBackgroundColor/WrongBackgroundColor.java ++javax/swing/JEditorPane/4492274/bug4492274.java ++javax/swing/JEditorPane/5076514/bug5076514.java ++javax/swing/JEditorPane/6917744/bug6917744.java ++javax/swing/JEditorPane/8195095/ImageViewTest.java ++javax/swing/JFileChooser/4150029/bug4150029.html ++javax/swing/JFileChooser/4524490/bug4524490.java ++javax/swing/JFileChooser/6396844/TwentyThousandTest.java ++javax/swing/JFileChooser/6489130/bug6489130.java ++javax/swing/JFileChooser/6520101/bug6520101.java ++javax/swing/JFileChooser/6698013/bug6698013.java ++javax/swing/JFileChooser/6738668/bug6738668.java ++javax/swing/JFileChooser/6798062/bug6798062.java ++javax/swing/JFileChooser/7199708/bug7199708.java ++javax/swing/JFileChooser/8002077/bug8002077.java ++javax/swing/JFileChooser/8013442/Test8013442.java ++javax/swing/JFileChooser/8021253/bug8021253.java ++javax/swing/JFileChooser/8062561/bug8062561.java ++javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.html ++javax/swing/JFrame/4962534/bug4962534.html ++javax/swing/JFrame/8255880/RepaintOnFrameIconifiedStateChangeTest.java ++javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ++javax/swing/JFrame/HangNonVolatileBuffer/HangNonVolatileBuffer.java ++javax/swing/JInternalFrame/4193219/IconCoord.java ++javax/swing/JInternalFrame/4251301/bug4251301.java ++javax/swing/JInternalFrame/5066752/bug5066752.java ++javax/swing/JInternalFrame/6647340/bug6647340.java ++javax/swing/JInternalFrame/6725409/bug6725409.java ++javax/swing/JInternalFrame/6726866/bug6726866.java ++javax/swing/JInternalFrame/8020708/bug8020708.java ++javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java ++javax/swing/JInternalFrame/Test6325652.java ++javax/swing/JInternalFrame/Test6505027.java ++javax/swing/JInternalFrame/Test6802868.java ++javax/swing/JLabel/6596966/bug6596966.java ++javax/swing/JLabel/7004134/bug7004134.java ++javax/swing/JLayer/6824395/bug6824395.java ++javax/swing/JLayer/6872503/bug6872503.java ++javax/swing/JList/6462008/bug6462008.java ++javax/swing/JList/6510999/bug6510999.java ++javax/swing/JMenu/4417601/bug4417601.java ++javax/swing/JMenu/4515762/bug4515762.java ++javax/swing/JMenu/4692443/bug4692443.java ++javax/swing/JMenu/6359669/bug6359669.java ++javax/swing/JMenu/6470128/bug6470128.java ++javax/swing/JMenu/8071705/bug8071705.java ++javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java ++javax/swing/JMenuBar/4750590/bug4750590.java ++javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java ++javax/swing/JMenuItem/4171437/bug4171437.java ++javax/swing/JMenuItem/4654927/bug4654927.java ++javax/swing/JMenuItem/6209975/bug6209975.java ++javax/swing/JMenuItem/6249972/bug6249972.java ++javax/swing/JMenuItem/7036148/bug7036148.java ++javax/swing/JMenuItem/8031573/bug8031573.java ++javax/swing/JOptionPane/4174551/bug4174551.java ++javax/swing/JOptionPane/6428694/bug6428694.java ++javax/swing/JOptionPane/6464022/bug6464022.java ++javax/swing/JOptionPane/7138665/bug7138665.java ++javax/swing/JOptionPane/8024926/bug8024926.java ++javax/swing/JPopupMenu/4458079/bug4458079.java ++javax/swing/JPopupMenu/4634626/bug4634626.java ++javax/swing/JPopupMenu/4966112/bug4966112.java ++javax/swing/JPopupMenu/6415145/bug6415145.java ++javax/swing/JPopupMenu/6495920/bug6495920.java ++javax/swing/JPopupMenu/6515446/bug6515446.java ++javax/swing/JPopupMenu/6544309/bug6544309.java ++javax/swing/JPopupMenu/6580930/bug6580930.java ++javax/swing/JPopupMenu/6583251/bug6583251.java ++javax/swing/JPopupMenu/6691503/bug6691503.java ++javax/swing/JPopupMenu/6694823/bug6694823.java ++javax/swing/JPopupMenu/6800513/bug6800513.java ++javax/swing/JPopupMenu/6827786/bug6827786.java ++javax/swing/JPopupMenu/6987844/bug6987844.java ++javax/swing/JPopupMenu/7156657/bug7156657.java ++javax/swing/JPopupMenu/7160604/bug7160604.java ++javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java ++javax/swing/JRadioButton/8033699/bug8033699.java ++javax/swing/JRadioButton/8041561/bug8041561.java ++javax/swing/JRadioButton/8075609/bug8075609.java ++javax/swing/JRootPane/4670486/bug4670486.java ++javax/swing/JScrollBar/4708809/bug4708809.java ++javax/swing/JScrollBar/4865918/bug4865918.java ++javax/swing/JScrollBar/6542335/bug6542335.java ++javax/swing/JScrollBar/7163696/Test7163696.java ++javax/swing/JScrollBar/8039464/Test8039464.java ++javax/swing/JScrollBar/bug4202954/bug4202954.java ++javax/swing/JScrollPane/6274267/bug6274267.java ++javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ++javax/swing/JScrollPane/Test6526631.java ++javax/swing/JSlider/4987336/bug4987336.java ++javax/swing/JSlider/6348946/bug6348946.java ++javax/swing/JSlider/6401380/bug6401380.java ++javax/swing/JSlider/6524424/bug6524424.java ++javax/swing/JSlider/6587742/bug6587742.java ++javax/swing/JSlider/6742358/bug6742358.java ++javax/swing/JSlider/6794831/bug6794831.java ++javax/swing/JSlider/6848475/bug6848475.java ++javax/swing/JSlider/6918861/bug6918861.java ++javax/swing/JSlider/6923305/bug6923305.java ++javax/swing/JSpinner/4973721/bug4973721.java ++javax/swing/JSpinner/5012888/bug5012888.java ++javax/swing/JSpinner/6532833/bug6532833.java ++javax/swing/JSpinner/8008657/bug8008657.java ++javax/swing/JSplitPane/4514858/bug4514858.java ++javax/swing/JSplitPane/4816114/bug4816114.java ++javax/swing/JSplitPane/4885629/bug4885629.java ++javax/swing/JTabbedPane/4310381/bug4310381.java ++javax/swing/JTabbedPane/4361477/bug4361477.java ++javax/swing/JTabbedPane/4624207/bug4624207.java ++javax/swing/JTabbedPane/4666224/bug4666224.html ++javax/swing/JTabbedPane/6495408/bug6495408.java ++javax/swing/JTabbedPane/7024235/Test7024235.java ++javax/swing/JTabbedPane/7161568/bug7161568.java ++javax/swing/JTabbedPane/7170310/bug7170310.java ++javax/swing/JTabbedPane/8007563/Test8007563.java ++javax/swing/JTable/4220171/bug4220171.java ++javax/swing/JTable/6263446/bug6263446.java ++javax/swing/JTable/6777378/bug6777378.java ++javax/swing/JTable/6913768/bug6913768.java ++javax/swing/JTable/7055065/bug7055065.java ++javax/swing/JTable/7068740/bug7068740.java ++javax/swing/JTable/7124218/SelectEditTableCell.java ++javax/swing/JTable/7188612/JTableAccessibleGetLocationOnScreen.java ++javax/swing/JTable/8032874/bug8032874.java ++javax/swing/JTableHeader/6884066/bug6884066.java ++javax/swing/JTableHeader/6889007/bug6889007.java ++javax/swing/JTextArea/4697612/bug4697612.java ++javax/swing/JTextArea/7049024/bug7049024.java ++javax/swing/JTextArea/Test6593649.java ++javax/swing/JTextArea/TextViewOOM/TextViewOOM.java ++javax/swing/JTextField/8036819/bug8036819.java ++javax/swing/JTextPane/JTextPaneDocumentAlignment.java ++javax/swing/JTextPane/JTextPaneDocumentWrapping.java ++javax/swing/JTextPane/TestJTextPaneHTMLRendering.java ++javax/swing/JToolBar/4247996/bug4247996.java ++javax/swing/JToolBar/4529206/bug4529206.java ++javax/swing/JToolTip/4644444/bug4644444.html ++javax/swing/JToolTip/4846413/bug4846413.java ++javax/swing/JTree/4314199/bug4314199.java ++javax/swing/JTree/4330357/bug4330357.java ++javax/swing/JTree/4633594/JTreeFocusTest.java ++javax/swing/JTree/4908142/bug4908142.java ++javax/swing/JTree/4927934/bug4927934.java ++javax/swing/JTree/6263446/bug6263446.java ++javax/swing/JTree/6505523/bug6505523.java ++javax/swing/JTree/6578666/bug6578666.java ++javax/swing/JTree/8003400/Test8003400.java ++javax/swing/JTree/8004298/bug8004298.java ++javax/swing/JTree/8038113/bug8038113.java ++javax/swing/JViewport/7107099/bug7107099.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java ++javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java ++javax/swing/KeyboardManager/8013370/Test8013370.java ++javax/swing/LookAndFeel/8145547/DemandGTK.java ++javax/swing/LookAndFeel/8145547/DemandGTK2.sh ++javax/swing/LookAndFeel/8145547/DemandGTK3.sh ++javax/swing/MultiUIDefaults/4300666/bug4300666.java ++javax/swing/Popup/6514582/bug6514582.java ++javax/swing/Popup/TaskbarPositionTest.java ++javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java ++javax/swing/PopupFactory/8048506/bug8048506.java ++javax/swing/RepaintManager/6608456/bug6608456.java ++javax/swing/RepaintManager/IconifyTest/IconifyTest.java ++javax/swing/Security/6657138/ComponentTest.java ++javax/swing/SwingUtilities/4917669/bug4917669.java ++javax/swing/SwingUtilities/7088744/bug7088744.java ++javax/swing/SwingUtilities/7146377/bug7146377.java ++javax/swing/SwingUtilities/7170657/bug7170657.java ++javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java ++javax/swing/ToolTipManager/7123767/bug7123767.java ++javax/swing/ToolTipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java ++javax/swing/ToolTipManager/Test6256140.java ++javax/swing/border/Test4129681.java ++javax/swing/border/Test4243289.java ++javax/swing/border/Test4247606.java ++javax/swing/border/Test4252164.java ++javax/swing/border/Test4760089.java ++javax/swing/border/Test6910490.java ++javax/swing/dnd/7171812/bug7171812.java ++javax/swing/plaf/basic/BasicComboPopup/8154069/Bug8154069.java ++javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java ++javax/swing/plaf/basic/BasicHTML/4960629/bug4960629.java ++javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java ++javax/swing/plaf/basic/BasicScrollPaneUI/8166591/TooMuchWheelRotationEventsTest.java ++javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java ++javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java ++javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java ++javax/swing/plaf/nimbus/8041642/bug8041642.java ++javax/swing/plaf/nimbus/8041725/bug8041725.java ++javax/swing/plaf/nimbus/8057791/bug8057791.java ++javax/swing/plaf/nimbus/Test6919629.java ++javax/swing/plaf/synth/7158712/bug7158712.java ++javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java ++javax/swing/plaf/synth/Test8015926.java ++javax/swing/reliability/TaskUndJFrameProperties.java ++javax/swing/reliability/TaskZoomJFrameChangeState.java ++javax/swing/reliability/TaskZoomJFrameRepaint.java ++javax/swing/text/AbstractDocument/6968363/Test6968363.java ++javax/swing/text/CSSBorder/6796710/bug6796710.java ++javax/swing/text/DefaultEditorKit/4278839/bug4278839.java ++javax/swing/text/DefaultStyledDocument/6636983/bug6636983.java ++javax/swing/text/FlowView/LayoutTest.java ++javax/swing/text/GlyphView/4984669/bug4984669.java ++javax/swing/text/JTextComponent/5074573/bug5074573.java ++javax/swing/text/NavigationFilter/6735293/bug6735293.java ++javax/swing/text/StyledEditorKit/4506788/bug4506788.java ++javax/swing/text/Utilities/bug7045593.java ++javax/swing/text/View/8014863/bug8014863.java ++javax/swing/text/View/8015853/bug8015853.java ++javax/swing/text/View/8048110/bug8048110.java ++javax/swing/text/html/7189299/bug7189299.java ++javax/swing/text/html/8034955/bug8034955.java ++javax/swing/text/html/CSS/4530474/bug4530474.java ++javax/swing/text/html/HTMLDocument/8058120/bug8058120.java ++javax/swing/text/html/HTMLEditorKit/4242228/bug4242228.java ++javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java ++javax/swing/text/html/TableView/7030332/bug7030332.java ++javax/swing/text/html/parser/Parser/7165725/bug7165725.java ++jdk/java/dwarf/TestDwarf.java ++security/infra/java/security/cert/CertPathValidator/certification/ActalisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java ++security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java ++security/infra/java/security/cert/CertPathValidator/certification/CertignaRoots.java ++security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java ++security/infra/java/security/cert/CertPathValidator/certification/DTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GlobalSignR6CA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoDaddyCA.java ++security/infra/java/security/cert/CertPathValidator/certification/GoogleCA.java ++security/infra/java/security/cert/CertPathValidator/certification/HaricaCA.java ++security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java ++security/infra/java/security/cert/CertPathValidator/certification/MicrosoftTLS.java ++security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java ++security/infra/java/security/cert/CertPathValidator/certification/SSLCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TWCAGlobalCA.java ++security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java ++sun/awt/datatransfer/SuplementaryCharactersTransferTest.java ++sun/awt/dnd/8024061/bug8024061.java ++sun/java2d/AcceleratedXORModeTest.java ++sun/java2d/ClassCastExceptionForInvalidSurface.java ++sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ++sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ++sun/java2d/DirectX/DrawBitmaskToSurfaceTest.java ++sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ++sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ++sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ++sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ++sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ++sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ++sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ++sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ++sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ++sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ++sun/java2d/DrawCachedImageAndTransform.java ++sun/java2d/DrawXORModeTest.java ++sun/java2d/GdiRendering/InsetClipping.java ++sun/java2d/OpenGL/CopyAreaOOB.java ++sun/java2d/OpenGL/CustomCompositeTest.java ++sun/java2d/OpenGL/DrawBufImgOp.java ++sun/java2d/OpenGL/DrawHugeImageTest.java ++sun/java2d/OpenGL/GradientPaints.java ++sun/java2d/OpenGL/bug7181438.java ++sun/java2d/SunGraphics2D/CoordinateTruncationBug.java ++sun/java2d/SunGraphics2D/DrawImageBilinear.java ++sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java ++sun/java2d/SunGraphics2D/PolyVertTest.java ++sun/java2d/SunGraphics2D/SimplePrimQuality.java ++sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ++sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ++sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ++sun/java2d/XRenderBlitsTest.java ++sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.html ++sun/java2d/pipe/InterpolationQualityTest.java ++sun/java2d/pipe/MutableColorTest/MutableColorTest.java ++sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ++sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ++sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ++sun/management/jmxremote/bootstrap/CustomLauncherTest.java ++sun/rmi/transport/proxy/EagerHttpFallback.java ++sun/security/krb5/auto/ReplayCacheTestProc.java ++sun/security/pkcs11/Secmod/TestNssDbSqlite.java ++sun/security/tools/policytool/Alias.sh ++sun/security/tools/policytool/ChangeUI.sh ++sun/security/tools/policytool/OpenPolicy.sh ++sun/security/tools/policytool/SaveAs.sh ++sun/security/tools/policytool/UpdatePermissions.sh ++sun/security/tools/policytool/UsePolicy.sh ++sun/security/tools/policytool/i18n.sh ++sun/tools/jinfo/Basic.sh ++sun/tools/jps/TestJpsJarRelative.java ++vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java ++java/awt/Dialog/CloseDialog/CloseDialogTest.java ++java/awt/Graphics/LCDTextAndGraphicsState.java ++java/awt/Graphics/TextAAHintsTest.java ++java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ++java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ++java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ++java/awt/PrintJob/SaveDialogTitleTest.java ++java/awt/im/8041990/bug8041990.java ++java/awt/print/Dialog/DialogOrient.java ++java/awt/print/Dialog/DialogType.java ++java/awt/print/Dialog/PrintDlgApp.java ++java/awt/print/Dialog/PrintDlgPageable.java ++java/awt/print/PrinterJob/ExceptionFromPrintableIsIgnoredTest.java ++java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ++java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java ++java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ++java/awt/print/PrinterJob/PageDialogTest.java ++java/awt/print/PrinterJob/PageRanges.java ++java/awt/print/PrinterJob/PrintGlyphVectorTest.java ++java/awt/print/PrinterJob/PrintLatinCJKTest.java ++java/awt/print/PrinterJob/PrintTextTest.java ++java/awt/print/PrinterJob/SwingUIText.java ++javax/net/ssl/compatibility/Compatibility.java ++javax/print/StreamPrintingOrientation.java ++javax/sound/midi/Synthesizer/Receiver/bug6186488.java ++javax/swing/JComponent/8043610/bug8043610.java ++javax/swing/system/6799345/TestShutdown.java ++jdk/jfr/event/oldobject/TestObjectDescription.java ++sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java ++javax/security/auth/callback/PasswordCallback/CheckCleanerBound.java +\ No newline at end of file +-- +2.39.0 + diff --git a/Add-ability-to-configure-third-port-for-remote-JMX.patch b/Add-ability-to-configure-third-port-for-remote-JMX.patch deleted file mode 100644 index 190f09447d2079bc947e60f799c2d91e4e2ea471..0000000000000000000000000000000000000000 --- a/Add-ability-to-configure-third-port-for-remote-JMX.patch +++ /dev/null @@ -1,67 +0,0 @@ -From e389786d6785852bf8fedb9ff24294a1518d9bed Mon Sep 17 00:00:00 2001 -Date: Fri, 22 Jan 2021 15:27:51 +0800 -Subject: Add ability to configure third port for remote JMX - -Summary: : -LLT: NA -Bug url: NA ---- - .../management/AgentConfigurationError.java | 2 ++ - .../jmxremote/ConnectorBootstrap.java | 19 ++++++++++++++++++- - 2 files changed, 20 insertions(+), 1 deletion(-) - -diff --git a/jdk/src/share/classes/sun/management/AgentConfigurationError.java b/jdk/src/share/classes/sun/management/AgentConfigurationError.java -index 56c430161..d3d67ff31 100644 ---- a/jdk/src/share/classes/sun/management/AgentConfigurationError.java -+++ b/jdk/src/share/classes/sun/management/AgentConfigurationError.java -@@ -55,6 +55,8 @@ public class AgentConfigurationError extends Error { - "agent.err.invalid.jmxremote.port"; - public static final String INVALID_JMXREMOTE_RMI_PORT = - "agent.err.invalid.jmxremote.rmi.port"; -+ public static final String INVALID_JMXLOCAL_PORT = -+ "agent.err.invalid.jmxlocal.port"; - public static final String PASSWORD_FILE_NOT_SET = - "agent.err.password.file.notset"; - public static final String PASSWORD_FILE_NOT_READABLE = -diff --git a/jdk/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java b/jdk/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java -index 56287edbd..0a82c65d1 100644 ---- a/jdk/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java -+++ b/jdk/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java -@@ -117,6 +117,8 @@ public final class ConnectorBootstrap { - "com.sun.management.jmxremote.host"; - public static final String RMI_PORT = - "com.sun.management.jmxremote.rmi.port"; -+ public static final String LOCAL_PORT = -+ "com.sun.management.jmxlocal.port"; - public static final String CONFIG_FILE_NAME = - "com.sun.management.config.file"; - public static final String USE_LOCAL_ONLY = -@@ -530,9 +532,24 @@ public final class ConnectorBootstrap { - localhost = "127.0.0.1"; - } - -+ // User can specify a port to be used to start Local Connector Server, -+ // if port is not specified random one will be allocated. -+ int localPort = 0; -+ String localPortStr = System.getProperty(PropertyNames.LOCAL_PORT); -+ try { -+ if (localPortStr != null) { -+ localPort = Integer.parseInt(localPortStr); -+ } -+ } catch (NumberFormatException x) { -+ throw new AgentConfigurationError(INVALID_JMXLOCAL_PORT, x, localPortStr); -+ } -+ if (localPort < 0) { -+ throw new AgentConfigurationError(INVALID_JMXLOCAL_PORT, localPortStr); -+ } -+ - MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); - try { -- JMXServiceURL url = new JMXServiceURL("rmi", localhost, 0); -+ JMXServiceURL url = new JMXServiceURL("rmi", localhost, localPort); - // Do we accept connections from local interfaces only? - Properties props = Agent.getManagementProperties(); - if (props == null) { --- -2.19.0 - diff --git a/Add-compiling-option-GS-when-building-windows-JDK.patch b/Add-compiling-option-GS-when-building-windows-JDK.patch new file mode 100644 index 0000000000000000000000000000000000000000..04480d79789ed773053ccc52b1ec9ddeb105e2d3 --- /dev/null +++ b/Add-compiling-option-GS-when-building-windows-JDK.patch @@ -0,0 +1,38 @@ +From 73ef8a1178d64c213de7f02c007fa35db391dac3 Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Sun, 12 Nov 2023 13:04:57 +0000 +Subject: [PATCH] [Huawei]Add compiling option /GS when building windows JDK +--- + common/autoconf/flags.m4 | 2 +- + common/autoconf/generated-configure.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 +index 71703a155..6474a0a47 100644 +--- a/common/autoconf/flags.m4 ++++ b/common/autoconf/flags.m4 +@@ -566,7 +566,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK], + CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" + elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then + CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK \ +- -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ ++ -GS -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ + -DWIN32_LEAN_AND_MEAN \ + -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ + -DWIN32 -DIAL" +diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh +index 8fa28b61f..b296f81c2 100644 +--- a/common/autoconf/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -43598,7 +43598,7 @@ $as_echo "$supports" >&6; } + CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" + elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then + CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK \ +- -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ ++ -GS -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ + -DWIN32_LEAN_AND_MEAN \ + -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ + -DWIN32 -DIAL" +-- +2.12.3 + diff --git a/Add-metaspace-memory-allocation-failure-validation.patch b/Add-metaspace-memory-allocation-failure-validation.patch new file mode 100644 index 0000000000000000000000000000000000000000..9f0a82e84d9ed3e1b49973fc2414af21fac23a1d --- /dev/null +++ b/Add-metaspace-memory-allocation-failure-validation.patch @@ -0,0 +1,39 @@ +From 0778f0119083ae33aea5ce9b5a1b44f565f45397 Mon Sep 17 00:00:00 2001 +Date: Thu, 19 Oct 2023 15:25:43 +0800 +Subject: [PATCH 4/5] Add metaspace memory allocation failure validation + +--- + hotspot/src/share/vm/memory/metaspace.cpp | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/hotspot/src/share/vm/memory/metaspace.cpp b/hotspot/src/share/vm/memory/metaspace.cpp +index 0569500c1..f39ae41f3 100644 +--- a/hotspot/src/share/vm/memory/metaspace.cpp ++++ b/hotspot/src/share/vm/memory/metaspace.cpp +@@ -571,7 +571,7 @@ class OccupancyMap : public CHeapObj { + assert(_map_size * 8 >= num_bits, "sanity"); + _map[0] = (uint8_t*) os::malloc(_map_size, mtInternal); + _map[1] = (uint8_t*) os::malloc(_map_size, mtInternal); +- assert(_map[0] != NULL && _map[1] != NULL, "Occupancy Map: allocation failed."); ++ guarantee(_map[0] != NULL && _map[1] != NULL, "Metaspace Occupancy Map: allocation failed."); + memset(_map[1], 0, _map_size); + memset(_map[0], 0, _map_size); + // Sanity test: the first respectively last possible chunk start address in +@@ -918,6 +918,14 @@ void VirtualSpaceNode::print_map(outputStream* st, bool is_class) const { + char* lines[NUM_LINES]; + for (int i = 0; i < NUM_LINES; i ++) { + lines[i] = (char*)os::malloc(line_len, mtInternal); ++ // Only print the VirtualSpaceNode memory layout during metaspace OOM. ++ // If it fails,we should return instead of hanging the VM. ++ if (lines[i] == NULL) { ++ for (int j = 0; j < i; j ++) { ++ os::free(lines[j]); ++ } ++ return; ++ } + } + int pos = 0; + const MetaWord* p = bottom(); +-- +2.19.1 + diff --git a/Disable-cds-on-x86-32.patch b/Disable-cds-on-x86-32.patch new file mode 100644 index 0000000000000000000000000000000000000000..5f0e220b3a17bf695096e89ca252774f1acb3335 --- /dev/null +++ b/Disable-cds-on-x86-32.patch @@ -0,0 +1,47 @@ +From d7ff4af3e604f4763815fde1753b38c115b23beb Mon Sep 17 00:00:00 2001 +From: hedongbo +Date: Thu, 2 Feb 2023 11:53:48 +0000 +Subject: [PATCH 4/6] Disable cds on x86-32 + +DTS/AR: DTS2023020203620 +Summary: :Disable cds on x86-32 +LLT: NA +Patch Type: huawei +Bug url: NA +--- + common/autoconf/generated-configure.sh | 4 ++++ + common/autoconf/jdk-options.m4 | 3 +++ + 2 files changed, 7 insertions(+) + +diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh +index a6ba1ac93..b3a9640f1 100644 +--- a/common/autoconf/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -14729,6 +14729,10 @@ $as_echo_n "checking if a default CDS archive should be generated... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with cross compilation" >&5 + $as_echo "no, not possible with cross compilation" >&6; } + BUILD_CDS_ARCHIVE="false" ++ elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with x32" >&5 ++$as_echo "no, not possible with x32" >&6; } ++ BUILD_CDS_ARCHIVE="false" + elif test "x$enable_cds_archive" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5 + $as_echo "yes, forced" >&6; } +diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4 +index b9f251750..e2f7dc907 100644 +--- a/common/autoconf/jdk-options.m4 ++++ b/common/autoconf/jdk-options.m4 +@@ -814,6 +814,9 @@ AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE], + if test "x$COMPILE_TYPE" = "xcross"; then + AC_MSG_RESULT([no, not possible with cross compilation]) + BUILD_CDS_ARCHIVE="false" ++ elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then ++ AC_MSG_RESULT([no, not possible with cross x32]) ++ BUILD_CDS_ARCHIVE="false" + elif test "x$enable_cds_archive" = "xyes"; then + AC_MSG_RESULT([yes, forced]) + BUILD_CDS_ARCHIVE="true" +-- +2.22.0 + diff --git a/Disable-no-compressedOop-cds-on-x86-32.patch b/Disable-no-compressedOop-cds-on-x86-32.patch new file mode 100644 index 0000000000000000000000000000000000000000..47f5eaa105f4ec4ac6e74697a03c3ecd715d15fb --- /dev/null +++ b/Disable-no-compressedOop-cds-on-x86-32.patch @@ -0,0 +1,67 @@ +From dd8c7151af05146c8fbc2b5d0dd94e38db6129e9 Mon Sep 17 00:00:00 2001 +From: xiezhaokun +Date: Thu, 2 Feb 2023 15:52:21 +0800 +Subject: [PATCH 5/6] Disable no compressedOop cds on x86-32 + +DTS/AR: DTS2023020203620 +Summary: : Disable no compressedOop cds on x86-32 +LLT: NA +Patch Type:Huawei +Bug url: NA +--- + common/autoconf/generated-configure.sh | 4 ---- + common/autoconf/jdk-options.m4 | 3 --- + jdk/make/BuildJdk.gmk | 4 ++++ + 3 files changed, 4 insertions(+), 7 deletions(-) + +diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh +index b3a9640f1..a6ba1ac93 100644 +--- a/common/autoconf/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -14729,10 +14729,6 @@ $as_echo_n "checking if a default CDS archive should be generated... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with cross compilation" >&5 + $as_echo "no, not possible with cross compilation" >&6; } + BUILD_CDS_ARCHIVE="false" +- elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not possible with x32" >&5 +-$as_echo "no, not possible with x32" >&6; } +- BUILD_CDS_ARCHIVE="false" + elif test "x$enable_cds_archive" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5 + $as_echo "yes, forced" >&6; } +diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4 +index e2f7dc907..b9f251750 100644 +--- a/common/autoconf/jdk-options.m4 ++++ b/common/autoconf/jdk-options.m4 +@@ -814,9 +814,6 @@ AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE], + if test "x$COMPILE_TYPE" = "xcross"; then + AC_MSG_RESULT([no, not possible with cross compilation]) + BUILD_CDS_ARCHIVE="false" +- elif test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then +- AC_MSG_RESULT([no, not possible with cross x32]) +- BUILD_CDS_ARCHIVE="false" + elif test "x$enable_cds_archive" = "xyes"; then + AC_MSG_RESULT([yes, forced]) + BUILD_CDS_ARCHIVE="true" +diff --git a/jdk/make/BuildJdk.gmk b/jdk/make/BuildJdk.gmk +index 67074568d..ac87d42cd 100644 +--- a/jdk/make/BuildJdk.gmk ++++ b/jdk/make/BuildJdk.gmk +@@ -106,10 +106,14 @@ images: + ifeq ($(BUILD_CDS_ARCHIVE), true) + echo Creating CDS archive for jdk image + $(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint $(LOG_INFO) ++ ifeq ($(OPENJDK_TARGET_CPU_BITS), 64) + $(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint -XX:-UseCompressedOops $(LOG_INFO) ++ endif + echo Creating CDS archive for jre image + $(JRE_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint $(LOG_INFO) ++ ifeq ($(OPENJDK_TARGET_CPU_BITS), 64) + $(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M -XX:ParallelGCThreads=1 -Xint -XX:-UseCompressedOops $(LOG_INFO) ++ endif + endif + + +-- +2.22.0 + diff --git a/Dynamic-CDS-Archive.patch b/Dynamic-CDS-Archive.patch index edccdea2d34992af8b341928e6630b677a2897e3..30a6ff8169def8d3ed47633f5431a0b3a19d72dd 100644 --- a/Dynamic-CDS-Archive.patch +++ b/Dynamic-CDS-Archive.patch @@ -3047,12 +3047,8 @@ index 8dd4e6b21..6a2d8077f 100644 void SymbolTable::buckets_unlink(int start_idx, int end_idx, BucketUnlinkContext* context, size_t* memory_total) { for (int i = start_idx; i < end_idx; ++i) { -@@ -225,10 +241,25 @@ Symbol* SymbolTable::lookup(int index, const char* name, - unsigned int SymbolTable::hash_symbol(const char* s, int len) { - return use_alternate_hashcode() ? - AltHashing::halfsiphash_32(seed(), (const uint8_t*)s, len) : -- java_lang_String::hash_code(s, len); -+ java_lang_String::hash_code((const jbyte*)s, len); +@@ -228,7 +244,22 @@ Symbol* SymbolTable::lookup(int index, const char* name, + java_lang_String::hash_code((const jbyte*)s, len); } +#if INCLUDE_CDS diff --git a/Fix-CVE-2023-21930.patch b/Fix-CVE-2023-21930.patch deleted file mode 100644 index 655891e99be05da36c9889dd29d147b1c25ffce9..0000000000000000000000000000000000000000 --- a/Fix-CVE-2023-21930.patch +++ /dev/null @@ -1,125 +0,0 @@ -From d12de47b54eee411e7f41b2066fea15b1b93c51e Mon Sep 17 00:00:00 2001 -From: justinwm -Date: Tue, 13 Jun 2023 10:34:31 +0800 -Subject: fix-CVE-2023-21930 - ---- - .../share/classes/sun/security/ssl/KeyUpdate.java | 6 ++++-- - .../classes/sun/security/ssl/SSLEngineImpl.java | 8 ++++---- - .../classes/sun/security/ssl/SSLSocketImpl.java | 8 ++++---- - .../classes/sun/security/ssl/TransportContext.java | 13 ++++++++++--- - 4 files changed, 22 insertions(+), 13 deletions(-) - -diff --git a/jdk/src/share/classes/sun/security/ssl/KeyUpdate.java b/jdk/src/share/classes/sun/security/ssl/KeyUpdate.java -index 1306344..9e921e6 100644 ---- a/jdk/src/share/classes/sun/security/ssl/KeyUpdate.java -+++ b/jdk/src/share/classes/sun/security/ssl/KeyUpdate.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2018, 2023, 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 -@@ -169,7 +169,9 @@ final class KeyUpdate { - public byte[] produce(ConnectionContext context) throws IOException { - PostHandshakeContext hc = (PostHandshakeContext)context; - return handshakeProducer.produce(context, -- new KeyUpdateMessage(hc, KeyUpdateRequest.REQUESTED)); -+ new KeyUpdateMessage(hc, hc.conContext.isInboundClosed() ? -+ KeyUpdateRequest.NOTREQUESTED : -+ KeyUpdateRequest.REQUESTED)); - } - } - -diff --git a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java -index ef64c7b..05ffb8a 100644 ---- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java -+++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2023, 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 -@@ -325,11 +325,11 @@ final class SSLEngineImpl extends SSLEngine implements SSLTransport { - */ - private HandshakeStatus tryKeyUpdate( - HandshakeStatus currentHandshakeStatus) throws IOException { -- // Don't bother to kickstart if handshaking is in progress, or if the -- // connection is not duplex-open. -+ // Don't bother to kickstart if handshaking is in progress, or if -+ // the write side of the connection is not open. We allow a half- -+ // duplex write-only connection for key updates. - if ((conContext.handshakeContext == null) && - !conContext.isOutboundClosed() && -- !conContext.isInboundClosed() && - !conContext.isBroken) { - if (SSLLogger.isOn && SSLLogger.isOn("ssl")) { - SSLLogger.finest("trigger key update"); -diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java -index ab93e30..b2ded0e 100644 ---- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java -+++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2023, 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 -@@ -1428,11 +1428,11 @@ public final class SSLSocketImpl - * wrapped. - */ - private void tryKeyUpdate() throws IOException { -- // Don't bother to kickstart if handshaking is in progress, or if the -- // connection is not duplex-open. -+ // Don't bother to kickstart if handshaking is in progress, or if -+ // the write side of the connection is not open. We allow a half- -+ // duplex write-only connection for key updates. - if ((conContext.handshakeContext == null) && - !conContext.isOutboundClosed() && -- !conContext.isInboundClosed() && - !conContext.isBroken) { - if (SSLLogger.isOn && SSLLogger.isOn("ssl")) { - SSLLogger.finest("trigger key update"); -diff --git a/jdk/src/share/classes/sun/security/ssl/TransportContext.java b/jdk/src/share/classes/sun/security/ssl/TransportContext.java -index 416113e..9427ed7 100644 ---- a/jdk/src/share/classes/sun/security/ssl/TransportContext.java -+++ b/jdk/src/share/classes/sun/security/ssl/TransportContext.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2018, 2023, 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 -@@ -200,7 +200,14 @@ class TransportContext implements ConnectionContext { - throw new IllegalStateException("Client/Server mode not yet set."); - } - -- if (outputRecord.isClosed() || inputRecord.isClosed() || isBroken) { -+ // The threshold for allowing the method to continue processing -+ // depends on whether we are doing a key update or kickstarting -+ // a handshake. In the former case, we only require the write-side -+ // to be open where a handshake would require a full duplex connection. -+ boolean isNotUsable = outputRecord.writeCipher.atKeyLimit() ? -+ (outputRecord.isClosed() || isBroken) : -+ (outputRecord.isClosed() || inputRecord.isClosed() || isBroken); -+ if (isNotUsable) { - if (closeReason != null) { - throw new SSLException( - "Cannot kickstart, the connection is broken or closed", -@@ -227,7 +234,7 @@ class TransportContext implements ConnectionContext { - // - // Need no kickstart message on server side unless the connection - // has been established. -- if(isNegotiated || sslConfig.isClientMode) { -+ if (isNegotiated || sslConfig.isClientMode) { - handshakeContext.kickstart(); - } - } --- -2.39.2 (Apple Git-143) - diff --git a/Fix-an-error-caused-by-anonymous-when-AppCDS-generat.patch b/Fix-an-error-caused-by-anonymous-when-AppCDS-generat.patch new file mode 100644 index 0000000000000000000000000000000000000000..6b88b2b17df46014c1c22b81c9b6b7f9d47e9a20 --- /dev/null +++ b/Fix-an-error-caused-by-anonymous-when-AppCDS-generat.patch @@ -0,0 +1,111 @@ +From: l00803608 +Subject: Fix an error caused by anonymous when AppCDS generates jsa +--- + hotspot/src/share/vm/classfile/dictionary.hpp | 1 + + hotspot/src/share/vm/classfile/systemDictionary.cpp | 13 ++++++++++++- + hotspot/src/share/vm/classfile/systemDictionary.hpp | 1 + + hotspot/src/share/vm/memory/metaspaceShared.cpp | 8 ++++---- + hotspot/src/share/vm/prims/unsafe.cpp | 6 ------ + 5 files changed, 18 insertions(+), 11 deletions(-) + +diff --git a/hotspot/src/share/vm/classfile/dictionary.hpp b/hotspot/src/share/vm/classfile/dictionary.hpp +index 8a88fa2e4..e5d98184b 100644 +--- a/hotspot/src/share/vm/classfile/dictionary.hpp ++++ b/hotspot/src/share/vm/classfile/dictionary.hpp +@@ -394,6 +394,7 @@ class SymbolPropertyEntry : public HashtableEntry { + // MethodHandle.invoke(S)T, for all signatures (S)T. + class SymbolPropertyTable : public Hashtable { + friend class VMStructs; ++ friend class SystemDictionary; + private: + SymbolPropertyEntry* bucket(int i) { + return (SymbolPropertyEntry*) Hashtable::bucket(i); +diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp +index c8f66e830..59ab829c7 100644 +--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp ++++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp +@@ -1031,7 +1031,6 @@ Klass* SystemDictionary::parse_stream(Symbol* class_name, + // as the host_klass + assert(EnableInvokeDynamic, ""); + guarantee(host_klass->class_loader() == class_loader(), "should be the same"); +- guarantee(!DumpSharedSpaces, "must not create anonymous classes when dumping"); + loader_data = ClassLoaderData::anonymous_class_loader_data(class_loader(), CHECK_NULL); + loader_data->record_dependency(host_klass(), CHECK_NULL); + } else { +@@ -1498,6 +1497,18 @@ instanceKlassHandle SystemDictionary::load_shared_class(instanceKlassHandle ik, + } + return ik; + } ++ ++void SystemDictionary::clear_invoke_method_table() { ++ SymbolPropertyEntry* spe = NULL; ++ for (int index = 0; index < _invoke_method_table->table_size(); index++) { ++ SymbolPropertyEntry* p = _invoke_method_table->bucket(index); ++ while (p != NULL) { ++ spe = p; ++ p = p->next(); ++ _invoke_method_table->free_entry(spe); ++ } ++ } ++} + #endif // INCLUDE_CDS + + instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class_name, Handle class_loader, TRAPS) { +diff --git a/hotspot/src/share/vm/classfile/systemDictionary.hpp b/hotspot/src/share/vm/classfile/systemDictionary.hpp +index e39c1de62..83ca3794b 100644 +--- a/hotspot/src/share/vm/classfile/systemDictionary.hpp ++++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp +@@ -652,6 +652,7 @@ public: + static bool is_ext_class_loader(Handle class_loader); + static bool is_app_class_loader(Handle class_loader); + static bool is_builtin_loader(Handle class_loader); ++ static void clear_invoke_method_table(); + + protected: + static Klass* find_shared_class(Symbol* class_name); +diff --git a/hotspot/src/share/vm/memory/metaspaceShared.cpp b/hotspot/src/share/vm/memory/metaspaceShared.cpp +index eea79cc09..1576f4fbc 100644 +--- a/hotspot/src/share/vm/memory/metaspaceShared.cpp ++++ b/hotspot/src/share/vm/memory/metaspaceShared.cpp +@@ -793,6 +793,10 @@ void MetaspaceShared::preload_and_dump(TRAPS) { + link_and_cleanup_shared_classes(CATCH); + tty->print_cr("Rewriting and linking classes: done"); + ++ tty->print("clear _invoke_method_table ..."); ++ SystemDictionary::clear_invoke_method_table(); ++ tty->print_cr(" done"); ++ + // At this point, many classes have been loaded. + // Gather systemDictionary classes in a global array and do everything to + // that so we don't have to walk the SystemDictionary again. +@@ -829,10 +833,6 @@ int MetaspaceShared::preload_and_dump(const char * class_list_path, + TempNewSymbol class_name_symbol = SymbolTable::new_permanent_symbol(class_name, THREAD); + guarantee(!HAS_PENDING_EXCEPTION, "Exception creating a symbol."); + +- // If preload_and_dump has anonymous class failed ,pls del this class_name in classlist +- if (TraceClassLoading) { +- tty->print_cr("preload_and_dump start: %s", class_name); +- } + Handle loader = UseAppCDS ? SystemDictionary::java_system_loader() : Handle(); + Klass* klass = SystemDictionary::resolve_or_null(class_name_symbol, + loader, +diff --git a/hotspot/src/share/vm/prims/unsafe.cpp b/hotspot/src/share/vm/prims/unsafe.cpp +index d6c33dd33..f1bd5799d 100644 +--- a/hotspot/src/share/vm/prims/unsafe.cpp ++++ b/hotspot/src/share/vm/prims/unsafe.cpp +@@ -1040,12 +1040,6 @@ Unsafe_DefineAnonymousClass_impl(JNIEnv *env, + HeapWord* *temp_alloc, + TRAPS) { + +- if (DumpSharedSpaces) { +- tty->print_cr("failed: must not create anonymous classes when dumping."); +- tty->print_cr("Please delete the last class_name prefixed with \"preload_and_dump start\" from -XX:SharedClassListFile to avoid anonymous classes."); +- JVM_Halt(0); +- } +- + if (UsePerfData) { + ClassLoader::unsafe_defineClassCallCounter()->inc(); + } +-- +2.19.1 + diff --git a/Fix-crash-in-JNI-s-GetDoubleArrayRegion-and-SetDoubl.patch b/Fix-crash-in-JNI-s-GetDoubleArrayRegion-and-SetDoubl.patch new file mode 100644 index 0000000000000000000000000000000000000000..a625db8c3c81921bd665a3ac156ae4957bd06dfe --- /dev/null +++ b/Fix-crash-in-JNI-s-GetDoubleArrayRegion-and-SetDoubl.patch @@ -0,0 +1,53 @@ +From ff782010bb5610fb9bb9e9ebbf131ba71124d299 Mon Sep 17 00:00:00 2001 +Subject: Fix crash in JNI's GetDoubleArrayRegion and SetDoubleArrayRegion +--- + hotspot/src/share/vm/prims/jni.cpp | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp +index 953300ebc..c0d789b42 100644 +--- a/hotspot/src/share/vm/prims/jni.cpp ++++ b/hotspot/src/share/vm/prims/jni.cpp +@@ -3805,7 +3805,7 @@ jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, + int sc = TypeArrayKlass::cast(src->klass())->log2_element_size(); \ + memcpy((u_char*) buf, \ + (u_char*) src->Tag##_at_addr(start), \ +- len << sc); \ ++ (size_t)len << sc); \ + } \ + } \ + JNI_END +@@ -3840,7 +3840,7 @@ jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, + int sc = TypeArrayKlass::cast(src->klass())->log2_element_size(); \ + memcpy((u_char*) buf, \ + (u_char*) src->Tag##_at_addr(start), \ +- len << sc); \ ++ (size_t)len << sc); \ + } \ + } \ + JNI_END +@@ -3888,8 +3888,8 @@ jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, + if (len > 0) { \ + int sc = TypeArrayKlass::cast(dst->klass())->log2_element_size(); \ + memcpy((u_char*) dst->Tag##_at_addr(start), \ +- (u_char*) buf, \ +- len << sc); \ ++ (u_char*) buf, \ ++ (size_t)len << sc); \ + } \ + } \ + JNI_END +@@ -3923,8 +3923,8 @@ jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, + if (len > 0) { \ + int sc = TypeArrayKlass::cast(dst->klass())->log2_element_size(); \ + memcpy((u_char*) dst->Tag##_at_addr(start), \ +- (u_char*) buf, \ +- len << sc); \ ++ (u_char*) buf, \ ++ (size_t)len << sc); \ + } \ + } \ + JNI_END +-- +2.22.0 + diff --git a/Fix-for-JDK-8137099-for-G1-is-to-not-return-null-unt.patch b/Fix-for-JDK-8137099-for-G1-is-to-not-return-null-unt.patch new file mode 100644 index 0000000000000000000000000000000000000000..eedab379f9f5147b65790936e8c09fbfa718231c --- /dev/null +++ b/Fix-for-JDK-8137099-for-G1-is-to-not-return-null-unt.patch @@ -0,0 +1,30 @@ +From ee7c3b3d5baee0a4d2de273c753e0b6b4a8b9b42 Mon Sep 17 00:00:00 2001 +From: zhangyipeng +Date: Fri, 12 Jan 2024 10:53:02 +0800 +Subject: [PATCH] [Huawei]Fix for JDK-8137099 for G1 is to not return null until full + GC has happened +--- + hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +index 1ce641cae..84d5d4d8b 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +@@ -876,9 +876,10 @@ G1CollectedHeap::mem_allocate(size_t word_size, + } + return result; + } else { +- if (gclocker_retry_count > GCLockerRetryAllocationCount) { +- return NULL; +- } ++ // Fix for JDK-8137099 for G1 is to not return null until full GC has happened ++ // if (gclocker_retry_count > GCLockerRetryAllocationCount) { ++ // return NULL; ++ // } + assert(op.result() == NULL, + "the result should be NULL if the VM op did not succeed"); + } +-- +2.12.3 + diff --git a/Fix-localtime_r-not-defined-on-windows.patch b/Fix-localtime_r-not-defined-on-windows.patch new file mode 100644 index 0000000000000000000000000000000000000000..04fc76de12d07c6d209b83f1727e2ca0123fec24 --- /dev/null +++ b/Fix-localtime_r-not-defined-on-windows.patch @@ -0,0 +1,44 @@ +From 2b0e2ff142de992d943a0df1aca605283f3449ab Mon Sep 17 00:00:00 2001 +From: z30010524 +Date: Thu, 16 Mar 2023 11:06:12 +0800 +Subject: [PATCH 09/15] Fix localtime_r() not defined on windows + +DTS/AR: DTS2023031516597 +Summary: :Fix localtime_r() not defined on windows, get system time by os::localtime_pd() +LLT: NA +Patch Type: huawei +Bug url: NA +--- + hotspot/src/share/vm/services/memReporter.cpp | 2 +- + hotspot/src/share/vm/services/nmtDCmd.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hotspot/src/share/vm/services/memReporter.cpp b/hotspot/src/share/vm/services/memReporter.cpp +index 8ea363805..9fc309c74 100644 +--- a/hotspot/src/share/vm/services/memReporter.cpp ++++ b/hotspot/src/share/vm/services/memReporter.cpp +@@ -298,7 +298,7 @@ void MemSummaryDiffReporter::report_diff() { + time_t startTime = NMTDCmd::get_start_time(); + time_t endTime = time(0); + struct tm endTimeTm = {0}; +- if (localtime_r(&endTime, &endTimeTm) == NULL) { ++ if (os::localtime_pd(&endTime, &endTimeTm) == NULL) { + out->print_cr("\nNative Memory Tracking:\n"); + } else { + out->print_cr("\nNative Memory Tracking: end time is %d-%02d-%02d %02d:%02d:%02d, elapsed time is %d secs\n", +diff --git a/hotspot/src/share/vm/services/nmtDCmd.cpp b/hotspot/src/share/vm/services/nmtDCmd.cpp +index 417a58c59..5f6842a99 100644 +--- a/hotspot/src/share/vm/services/nmtDCmd.cpp ++++ b/hotspot/src/share/vm/services/nmtDCmd.cpp +@@ -132,7 +132,7 @@ void NMTDCmd::execute(DCmdSource source, TRAPS) { + NMTDCmd::set_start_time(time(0)); + time_t startTime = NMTDCmd::get_start_time(); + struct tm startTimeTm = {0}; +- if (localtime_r(&startTime, &startTimeTm) == NULL) { ++ if (os::localtime_pd(&startTime, &startTimeTm) == NULL) { + output()->print_cr("Baseline succeeded"); + } else { + output()->print_cr("Baseline succeeded, start time is %d-%02d-%02d %02d:%02d:%02d", +-- +2.19.0 + diff --git a/Fix-the-crash-that-occurs-when-the-process-exits-due.patch b/Fix-the-crash-that-occurs-when-the-process-exits-due.patch index 47904e80d237b7002ef06289a92d927e23e067a5..8e9520190234a15b57f76abb75fc28ecc6259d04 100644 --- a/Fix-the-crash-that-occurs-when-the-process-exits-due.patch +++ b/Fix-the-crash-that-occurs-when-the-process-exits-due.patch @@ -46,18 +46,19 @@ index 750a23f..7722020 100644 _buffer_max_size(AsyncLogBufferSize / sizeof(AsyncLogMessage)) { if (os::create_thread(this, os::asynclog_thread)) { _initialized = true; -@@ -124,6 +124,10 @@ void AsyncLogWriter::run() { +@@ -124,6 +124,11 @@ void AsyncLogWriter::run() { // The value of a semphore cannot be negative. Therefore, the current thread falls asleep // when its value is zero. It will be waken up when new messages are enqueued. _sem.wait(); + if (_should_terminate) { ++ write(); + terminate(); + break; + } write(); } } -@@ -162,3 +166,32 @@ void AsyncLogWriter::print_on(outputStream* st) const{ +@@ -162,3 +167,32 @@ void AsyncLogWriter::print_on(outputStream* st) const{ Thread::print_on(st); st->cr(); } diff --git a/Fix-the-memory-leak-of-MetaspaceAllocationTest.patch b/Fix-the-memory-leak-of-MetaspaceAllocationTest.patch new file mode 100644 index 0000000000000000000000000000000000000000..896d6f9a06bee9526d65267a4425205a3f07fc72 --- /dev/null +++ b/Fix-the-memory-leak-of-MetaspaceAllocationTest.patch @@ -0,0 +1,24 @@ +From 1c55195c050d26f7c3ef53ed8f4ff25f398cfa1e Mon Sep 17 00:00:00 2001 +Date: Thu, 19 Oct 2023 11:24:12 +0800 +Subject: [PATCH 2/5] Fix the memory leak of MetaspaceAllocationTest + +--- + hotspot/src/share/vm/memory/metaspace.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/hotspot/src/share/vm/memory/metaspace.cpp b/hotspot/src/share/vm/memory/metaspace.cpp +index 0569500c1..847af1ce9 100644 +--- a/hotspot/src/share/vm/memory/metaspace.cpp ++++ b/hotspot/src/share/vm/memory/metaspace.cpp +@@ -5712,6 +5712,8 @@ public: + for (int i = 0; i < NUM_PARALLEL_METASPACES; i ++) { + if (_spaces[i].space != NULL) { + delete _spaces[i].space; ++ } ++ if (_spaces[i].lock != NULL) { + delete _spaces[i].lock; + } + } +-- +2.19.1 + diff --git a/Improve_AlgorithmConstraints_checkAlgorithm_performance.patch b/Improve_AlgorithmConstraints_checkAlgorithm_performance.patch index cf5c5e4aec61758983d6babbaea063ed07d2f9ae..aa252e4726c72c0d352f4c5ff2b59077619228db 100644 --- a/Improve_AlgorithmConstraints_checkAlgorithm_performance.patch +++ b/Improve_AlgorithmConstraints_checkAlgorithm_performance.patch @@ -64,15 +64,15 @@ diff --git a/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraint index 51e62563..6ff26bf2 100644 --- a/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java +++ b/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java -@@ -96,7 +96,7 @@ public class DisabledAlgorithmConstraints extends AbstractAlgorithmConstraints { +@@ -99,7 +99,7 @@ public class DisabledAlgorithmConstraints extends AbstractAlgorithmConstraints { new DisabledAlgorithmConstraints(PROPERTY_JAR_DISABLED_ALGS); } - private final List disabledAlgorithms; + private final Set disabledAlgorithms; private final Constraints algorithmConstraints; - - public static DisabledAlgorithmConstraints certPathConstraints() { + private volatile SoftReference> cacheRef = + new SoftReference<>(null); @@ -128,11 +128,11 @@ public class DisabledAlgorithmConstraints extends AbstractAlgorithmConstraints { public DisabledAlgorithmConstraints(String propertyName, AlgorithmDecomposer decomposer) { diff --git a/Record-the-number-of-processes-to-errlog-file.patch.patch b/Record-the-number-of-processes-to-errlog-file.patch.patch new file mode 100644 index 0000000000000000000000000000000000000000..5e6e66b8a0630faa695e67ebd6ff81e4192c5bf0 --- /dev/null +++ b/Record-the-number-of-processes-to-errlog-file.patch.patch @@ -0,0 +1,66 @@ +From 752494be2626cb819c92269e26f53833b2538160 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 14:46:56 +0800 +Subject: Record-the-number-of-processes-to-errlog-file.patch + +--- + hotspot/src/os/linux/vm/os_linux.cpp | 24 ++++++++++++++++++++++++ + hotspot/src/os/linux/vm/os_linux.hpp | 1 + + 2 files changed, 25 insertions(+) + +diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp +index 72839eb5a..a1cc85ca3 100644 +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -2256,6 +2256,10 @@ void os::print_os_info(outputStream* st) { + + os::Posix::print_load_average(st); + ++ if (ExtensiveErrorReports) { ++ os::Linux::print_system_process_count(st); ++ } ++ + os::Linux::print_system_memory_info(st); + st->cr(); + +@@ -2323,6 +2327,26 @@ void os::Linux::print_libversion_info(outputStream* st) { + st->cr(); + } + ++void os::Linux::print_system_process_count(outputStream* st) { ++ // system process count ++ DIR *dir = opendir("/proc"); ++ if (dir == NULL) { ++ return; ++ } ++ ++ st->print("system process count:"); ++ uint count = 0; ++ struct dirent *ptr; ++ while ((ptr = readdir(dir)) != NULL) { ++ if(ptr->d_type == DT_DIR && isdigit((ptr->d_name)[0])) { ++ count++; ++ } ++ } ++ (void) closedir(dir); ++ st->print("%u", count); ++ st->cr(); ++} ++ + void os::Linux::print_system_memory_info(outputStream* st) { + st->print("\n/proc/meminfo:\n"); + _print_ascii_file("/proc/meminfo", st); +diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp +index a516335d2..19dde2e58 100644 +--- a/hotspot/src/os/linux/vm/os_linux.hpp ++++ b/hotspot/src/os/linux/vm/os_linux.hpp +@@ -124,6 +124,7 @@ class Linux { + static void print_container_info(outputStream* st); + static void print_distro_info(outputStream* st); + static void print_libversion_info(outputStream* st); ++ static void print_system_process_count(outputStream* st); + static void print_proc_sys_info(outputStream* st); + + public: +-- +2.22.0 + diff --git a/Revert-backport-8035986-KerberosKey-algorithm-names-are-not-specified.patch b/Revert-backport-8035986-KerberosKey-algorithm-names-are-not-specified.patch new file mode 100644 index 0000000000000000000000000000000000000000..c14207f1e335598529781560398881ec779bcbcb --- /dev/null +++ b/Revert-backport-8035986-KerberosKey-algorithm-names-are-not-specified.patch @@ -0,0 +1,319 @@ +From 46b7cb7838a2de1a6463ddf17edefef73ec1217f Mon Sep 17 00:00:00 2001 +Date: Thu, 3 Aug 2023 10:03:27 +0800 +Subject: [PATCH] Revert-backport-8035986-KerberosKey-algorithm-names-are-not-specified + +--- + .../security/auth/kerberos/KerberosKey.java | 46 ++------ + .../javax/security/auth/kerberos/KeyImpl.java | 26 ++--- + .../sun/security/krb5/EncryptionKey.java | 17 +-- + .../security/auth/kerberos/StandardNames.java | 108 ------------------ + 4 files changed, 28 insertions(+), 169 deletions(-) + delete mode 100644 jdk/test/javax/security/auth/kerberos/StandardNames.java + +diff --git a/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java b/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java +index a8d12131a..5c8b65f27 100644 +--- a/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java ++++ b/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java +@@ -52,20 +52,7 @@ import javax.security.auth.DestroyFailedException; + * application depends on the default JGSS Kerberos mechanism to access the + * KerberosKey. In that case, however, the application will need an + * appropriate +- * {@link javax.security.auth.kerberos.ServicePermission ServicePermission}.

+- * +- * When creating a {@code KerberosKey} using the +- * {@link #KerberosKey(KerberosPrincipal, char[], String)} constructor, +- * an implementation may accept non-IANA algorithm names (For example, +- * "ArcFourMac" for "rc4-hmac"), but the {@link #getAlgorithm} method +- * must always return the IANA algorithm name.

+- * +- * @implNote Old algorithm names used before JDK 9 are supported in the +- * {@link #KerberosKey(KerberosPrincipal, char[], String)} constructor in this +- * implementation for compatibility reasons, which are "DES" (and null) for +- * "des-cbc-md5", "DESede" for "des3-cbc-sha1-kd", "ArcFourHmac" for "rc4-hmac", +- * "AES128" for "aes128-cts-hmac-sha1-96", and "AES256" for +- * "aes256-cts-hmac-sha1-96". ++ * {@link javax.security.auth.kerberos.ServicePermission ServicePermission}. + * + * @author Mayank Upadhyay + * @since 1.4 +@@ -86,7 +73,7 @@ public class KerberosKey implements SecretKey, Destroyable { + * + * @serial + */ +- private final int versionNum; ++ private int versionNum; + + /** + * {@code KeyImpl} is serialized by writing out the ASN1 Encoded bytes +@@ -126,16 +113,13 @@ public class KerberosKey implements SecretKey, Destroyable { + } + + /** +- * Constructs a KerberosKey from a principal's password using the specified +- * algorithm name. The algorithm name (case insensitive) should be provided +- * as the encryption type string defined on the IANA +- * Kerberos Encryption Type Numbers +- * page. The version number of the key generated will be 0. ++ * Constructs a KerberosKey from a principal's password. + * + * @param principal the principal that this password belongs to + * @param password the password that should be used to compute the key + * @param algorithm the name for the algorithm that this key will be +- * used for ++ * used for. This parameter may be null in which case the default ++ * algorithm "DES" will be assumed. + * @throws IllegalArgumentException if the name of the + * algorithm passed is unsupported. + */ +@@ -144,7 +128,6 @@ public class KerberosKey implements SecretKey, Destroyable { + String algorithm) { + + this.principal = principal; +- this.versionNum = 0; + // Pass principal in for salt + key = new KeyImpl(principal, password, algorithm); + } +@@ -187,18 +170,13 @@ public class KerberosKey implements SecretKey, Destroyable { + */ + + /** +- * Returns the standard algorithm name for this key. The algorithm names +- * are the encryption type string defined on the IANA +- * Kerberos Encryption Type Numbers +- * page. +- *

+- * This method can return the following value not defined on the IANA page: +- *

    +- *
  1. none: for etype equal to 0
  2. +- *
  3. unknown: for etype greater than 0 but unsupported by +- * the implementation
  4. +- *
  5. private: for etype smaller than 0
  6. +- *
++ * Returns the standard algorithm name for this key. For ++ * example, "DES" would indicate that this key is a DES key. ++ * See Appendix A in the ++ * Java Cryptography Architecture API Specification & Reference ++ * ++ * for information about standard algorithm names. + * + * @return the name of the algorithm associated with this key. + */ +diff --git a/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java b/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java +index 571387e0c..6791c42f0 100644 +--- a/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java ++++ b/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java +@@ -36,6 +36,7 @@ import sun.security.krb5.PrincipalName; + import sun.security.krb5.EncryptionKey; + import sun.security.krb5.EncryptedData; + import sun.security.krb5.KrbException; ++import sun.security.krb5.KrbCryptoException; + import sun.security.util.DerValue; + + /** +@@ -85,12 +86,8 @@ class KeyImpl implements SecretKey, Destroyable, Serializable { + + try { + PrincipalName princ = new PrincipalName(principal.getName()); +- EncryptionKey key; +- if ("none".equalsIgnoreCase(algorithm)) { +- key = EncryptionKey.NULL_KEY; +- } else { +- key = new EncryptionKey(password, princ.getSalt(), algorithm); +- } ++ EncryptionKey key = ++ new EncryptionKey(password, princ.getSalt(), algorithm); + this.keyBytes = key.getBytes(); + this.keyType = key.getEType(); + } catch (KrbException e) { +@@ -121,22 +118,20 @@ class KeyImpl implements SecretKey, Destroyable, Serializable { + + switch (eType) { + case EncryptedData.ETYPE_DES_CBC_CRC: +- return "des-cbc-crc"; +- + case EncryptedData.ETYPE_DES_CBC_MD5: +- return "des-cbc-md5"; ++ return "DES"; + + case EncryptedData.ETYPE_DES3_CBC_HMAC_SHA1_KD: +- return "des3-cbc-sha1-kd"; ++ return "DESede"; + + case EncryptedData.ETYPE_ARCFOUR_HMAC: +- return "rc4-hmac"; ++ return "ArcFourHmac"; + + case EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96: +- return "aes128-cts-hmac-sha1-96"; ++ return "AES128"; + + case EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96: +- return "aes256-cts-hmac-sha1-96"; ++ return "AES256"; + + case EncryptedData.ETYPE_AES128_CTS_HMAC_SHA256_128: + return "aes128-cts-hmac-sha256-128"; +@@ -145,10 +140,11 @@ class KeyImpl implements SecretKey, Destroyable, Serializable { + return "aes256-cts-hmac-sha384-192"; + + case EncryptedData.ETYPE_NULL: +- return "none"; ++ return "NULL"; + + default: +- return eType > 0 ? "unknown" : "private"; ++ throw new IllegalArgumentException( ++ "Unsupported encryption type: " + eType); + } + } + +diff --git a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java +index 627168e70..71e667028 100644 +--- a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java ++++ b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java +@@ -277,22 +277,15 @@ public class EncryptionKey + String salt, + String algorithm) throws KrbCryptoException { + +- if (algorithm == null || algorithm.equalsIgnoreCase("DES") +- || algorithm.equalsIgnoreCase("des-cbc-md5")) { ++ if (algorithm == null || algorithm.equalsIgnoreCase("DES")) { + keyType = EncryptedData.ETYPE_DES_CBC_MD5; +- } else if (algorithm.equalsIgnoreCase("des-cbc-crc")) { +- keyType = EncryptedData.ETYPE_DES_CBC_CRC; +- } else if (algorithm.equalsIgnoreCase("DESede") +- || algorithm.equalsIgnoreCase("des3-cbc-sha1-kd")) { ++ } else if (algorithm.equalsIgnoreCase("DESede")) { + keyType = EncryptedData.ETYPE_DES3_CBC_HMAC_SHA1_KD; +- } else if (algorithm.equalsIgnoreCase("AES128") +- || algorithm.equalsIgnoreCase("aes128-cts-hmac-sha1-96")) { ++ } else if (algorithm.equalsIgnoreCase("AES128")) { + keyType = EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96; +- } else if (algorithm.equalsIgnoreCase("ArcFourHmac") +- || algorithm.equalsIgnoreCase("rc4-hmac")) { ++ } else if (algorithm.equalsIgnoreCase("ArcFourHmac")) { + keyType = EncryptedData.ETYPE_ARCFOUR_HMAC; +- } else if (algorithm.equalsIgnoreCase("AES256") +- || algorithm.equalsIgnoreCase("aes256-cts-hmac-sha1-96")) { ++ } else if (algorithm.equalsIgnoreCase("AES256")) { + keyType = EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96; + // validate if AES256 is enabled + if (!EType.isSupported(keyType)) { +diff --git a/jdk/test/javax/security/auth/kerberos/StandardNames.java b/jdk/test/javax/security/auth/kerberos/StandardNames.java +deleted file mode 100644 +index 40590f6d0..000000000 +--- a/jdk/test/javax/security/auth/kerberos/StandardNames.java ++++ /dev/null +@@ -1,108 +0,0 @@ +-/* +- * Copyright (c) 2014, 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 +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/* +- * @test +- * @bug 8035986 +- * @summary KerberosKey algorithm names are not specified +- */ +- +-import sun.security.krb5.EncryptedData; +- +-import javax.crypto.Cipher; +-import javax.security.auth.kerberos.KerberosKey; +-import javax.security.auth.kerberos.KerberosPrincipal; +-import java.util.Locale; +- +-public class StandardNames { +- static KerberosPrincipal kp = new KerberosPrincipal("user@REALM"); +- static char[] pass = "secret".toCharArray(); +- static byte[] keyBytes = new byte[1]; +- +- public static void main(String[] args) throws Exception { +- for (EncType e: EncType.values()) { +- if (e == EncType.e18) { +- if (Cipher.getMaxAllowedKeyLength("AES") < 256) { +- System.out.println("Skipping aes256-cts-hmac-sha1-96"); +- continue; +- } +- } +- checkByName(e.name, e); +- checkByName(e.name.toUpperCase(Locale.US), e); +- for (String n: e.oldnames) { +- checkByName(n, e); +- if (n != null) { +- checkByName(n.toLowerCase(Locale.US), e); +- } +- } +- checkByEType(e.etype, e.name); +- } +- checkByEType(100, "unknown"); +- checkByEType(-1, "private"); +- +- try { +- System.out.println("unsupported"); +- new KerberosKey(kp, pass, "unsupported"); +- throw new Exception("unsupported"); +- } catch (IllegalArgumentException iae) { +- // Expected +- } +- } +- +- private static void checkByName(String n, EncType e) throws Exception { +- System.out.println("CheckByName " + n); +- KerberosKey k = new KerberosKey(kp, pass, n); +- if (!k.getAlgorithm().equals(e.name)) throw new Exception(n); +- if (k.getKeyType() != e.etype) throw new Exception(n); +- if (k.getVersionNumber() != 0) throw new Exception(n); +- } +- +- private static void checkByEType(int i, String n) throws Exception { +- System.out.println("CheckByInt " + i); +- KerberosKey k = new KerberosKey(kp, keyBytes, i, 13); +- if (!k.getAlgorithm().equals(n)) throw new Exception("" + i); +- if (k.getKeyType() != i) throw new Exception("" + i); +- if (k.getVersionNumber() != 13) throw new Exception("" + i); +- } +-} +- +-enum EncType { +- e0("none", EncryptedData.ETYPE_NULL), +- e1("des-cbc-crc", EncryptedData.ETYPE_DES_CBC_CRC), +- e3("des-cbc-md5", EncryptedData.ETYPE_DES_CBC_MD5, "DES", null), +- e16("des3-cbc-sha1-kd", EncryptedData.ETYPE_DES3_CBC_HMAC_SHA1_KD, "DESede"), +- e17("aes128-cts-hmac-sha1-96", EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96, "AES128"), +- e18("aes256-cts-hmac-sha1-96", EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96, "AES256"), +- e23("rc4-hmac", EncryptedData.ETYPE_ARCFOUR_HMAC, "ArcFourHmac"), +- ; +- +- final String name; +- final int etype; +- final String[] oldnames; +- +- EncType(String name, int etype, String... oldnames) { +- this.name = name; +- this.etype = etype; +- this.oldnames = oldnames; +- } +-} +-- +2.22.0 + diff --git a/Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch b/Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch index ec84fc1843006ccc32570c53ff8ddd3b426fd5b3..bf15871160c44f9d75bf0bcaf2c6ef662516eedc 100644 --- a/Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch +++ b/Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch @@ -10,32 +10,27 @@ LLT: jdk8u/hotspot/test/compiler/criticalnatives/argumentcorruption/Test8167409. 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hotspot/test/compiler/criticalnatives/argumentcorruption/Test8167409.sh b/hotspot/test/compiler/criticalnatives/argumentcorruption/Test8167409.sh -index 81695e758..1108aaf93 100644 +index e2de2d3e55..7d0431980e 100644 --- a/hotspot/test/compiler/criticalnatives/argumentcorruption/Test8167409.sh +++ b/hotspot/test/compiler/criticalnatives/argumentcorruption/Test8167409.sh -@@ -61,19 +61,24 @@ case "$OS" in - exit 0; +@@ -62,6 +62,11 @@ case "$OS" in ;; esac -+ + +${TESTJAVA}${FS}bin${FS}java -XshowSettings 2>&1 | grep sun.arch.data.model | grep 32 +if [ 0 -eq $? ] ; then + M32="-m32" +fi - ++ # CriticalJNINatives is not supported for aarch64 - if [ $VM_CPU == "aarch64" ]; then + if [ $VM_CPU = "aarch64" ]; then echo "Test Passed" - exit 0; - fi - - THIS_DIR=. - +@@ -73,7 +78,7 @@ THIS_DIR=. cp ${TESTSRC}${FS}*.java ${THIS_DIR} ${TESTJAVA}${FS}bin${FS}javac *.java - --$cc_cmd -fPIC -shared -o libCNCheckLongArgs.so \ -+$cc_cmd ${M32} -fPIC -shared -o libCNCheckLongArgs.so \ + +-$cc_cmd ${CFLAGBITS} -fPIC -shared -o libCNCheckLongArgs.so \ ++$cc_cmd ${M32} ${CFLAGBITS} -fPIC -shared -o libCNCheckLongArgs.so \ -I${TESTJAVA}${FS}include -I${TESTJAVA}${FS}include${FS}linux \ ${TESTSRC}${FS}libCNCheckLongArgs.c diff --git a/The-OverWriteOldestGCLog-option-is-added-to-control.patch b/The-OverWriteOldestGCLog-option-is-added-to-control.patch new file mode 100644 index 0000000000000000000000000000000000000000..d80eddd2aa16fc24bf3e014ddbae9976a6d1bb6e --- /dev/null +++ b/The-OverWriteOldestGCLog-option-is-added-to-control.patch @@ -0,0 +1,89 @@ +From 2fd15967a7974d1d61cc7aa706c82733c572964d Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:14:11 +0800 +Subject: The-OverWriteOldestGCLog-option-is-added-to-control + +--- + hotspot/src/share/vm/runtime/globals.hpp | 3 ++ + hotspot/src/share/vm/utilities/ostream.cpp | 45 ++++++++++++++++++++++ + 2 files changed, 48 insertions(+) + +diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp +index 4f649bd45..fdd9db149 100644 +--- a/hotspot/src/share/vm/runtime/globals.hpp ++++ b/hotspot/src/share/vm/runtime/globals.hpp +@@ -2571,6 +2571,9 @@ class CommandLineFlags { + "GC log file size, requires UseGCLogFileRotation. " \ + "Set to 0 to only trigger rotation via jcmd") \ + \ ++ product(bool, OverWriteOldestGCLog, false, \ ++ "Over write the oldest gclog") \ ++ \ + /* JVMTI heap profiling */ \ + \ + diagnostic(bool, TraceJVMTIObjectTagging, false, \ +diff --git a/hotspot/src/share/vm/utilities/ostream.cpp b/hotspot/src/share/vm/utilities/ostream.cpp +index f4e127145..133b5a7c0 100644 +--- a/hotspot/src/share/vm/utilities/ostream.cpp ++++ b/hotspot/src/share/vm/utilities/ostream.cpp +@@ -843,6 +843,48 @@ gcLogFileStream::~gcLogFileStream() { + delete _file_lock; + } + ++static uintx next_file_number(const char* filename) { ++ uintx next_num; ++ uintx index; ++ char gclog[JVM_MAXPATHLEN]; ++ struct stat st; ++ long oldestTime = LONG_MAX; ++ bool normal_file_exist; ++ bool current_file_exist; ++ for (index = 0; index < NumberOfGCLogFiles; ++index) { ++ // normal gc log file ++ jio_snprintf(gclog, JVM_MAXPATHLEN, "%s.%d", filename, index); ++ normal_file_exist = (os::stat(gclog, &st) == 0); ++ if (normal_file_exist && oldestTime > st.st_mtime) { ++ oldestTime = st.st_mtime; ++ next_num = index; ++ } ++ ++ // current gc log file ++ jio_snprintf(gclog, JVM_MAXPATHLEN, "%s.%d" CURRENTAPPX, filename, index); ++ current_file_exist = (os::stat(gclog, &st) == 0); ++ if (current_file_exist && oldestTime > st.st_mtime) { ++ oldestTime = st.st_mtime; ++ next_num = index; ++ } ++ ++ // Stop looking if we find an unused file name ++ if (!normal_file_exist && !current_file_exist) { ++ next_num = index; ++ break; ++ } ++ } ++ // remove the existing normal file ++ char exist_file_name[JVM_MAXPATHLEN]; ++ jio_snprintf(exist_file_name, JVM_MAXPATHLEN, "%s.%d", filename, next_num); ++ if (access(exist_file_name, 0) == 0) { // mode 0: Check whether the file exists, F_OK=0. F_OK will cause Windows build failure. Use 0 instead. ++ if (remove(exist_file_name) != 0) { ++ warning("Could not delete existing normal file %s\n", exist_file_name); ++ } ++ } ++ return next_num; ++} ++ + gcLogFileStream::gcLogFileStream(const char* file_name) : _file_lock(NULL) { + _cur_file_num = 0; + _bytes_written = 0L; +@@ -857,6 +899,9 @@ gcLogFileStream::gcLogFileStream(const char* file_name) : _file_lock(NULL) { + + // gc log file rotation + if (UseGCLogFileRotation && NumberOfGCLogFiles > 1) { ++ if (OverWriteOldestGCLog) { ++ _cur_file_num = next_file_number(_file_name); ++ } + char tempbuf[JVM_MAXPATHLEN]; + jio_snprintf(tempbuf, sizeof(tempbuf), "%s.%d" CURRENTAPPX, _file_name, _cur_file_num); + _file = fopen(tempbuf, "w"); +-- +2.22.0 + diff --git a/The-code-style-is-fixed-and-test-cases-are-added.patch b/The-code-style-is-fixed-and-test-cases-are-added.patch index 9219f3dddf289dd403c4ed554b9269d2494aa417..d4e80cdc987fa573f6b71dee95d76d1018dc1001 100644 --- a/The-code-style-is-fixed-and-test-cases-are-added.patch +++ b/The-code-style-is-fixed-and-test-cases-are-added.patch @@ -16,7 +16,6 @@ Subject: The code style is fixed and test cases are added hotspot/src/share/vm/oops/cpCache.cpp | 1 - hotspot/src/share/vm/oops/instanceKlass.cpp | 4 - hotspot/test/runtime/6929067/Test6929067.sh | 2 +- - .../runtime/InitialThreadOverflow/testme.sh | 2 +- hotspot/test/runtime/Thread/StopAtExit.java | 119 ++++ jdk/make/profile-rtjar-includes.txt | 7 +- .../classes/java/io/ObjectInputStream.java | 4 +- @@ -25,7 +24,7 @@ Subject: The code style is fixed and test cases are added .../security/openssl/kae_cipher_rsa.c | 3 +- .../security/openssl/kae_keyagreement_dh.c | 4 +- .../openssl/RSAKeyPairGeneratorBenchmark.java | 2 +- - 23 files changed, 194 insertions(+), 668 deletions(-) + 22 files changed, 194 insertions(+), 668 deletions(-) create mode 100644 hotspot/test/runtime/Thread/StopAtExit.java diff --git a/hotspot/src/share/vm/cds/archiveBuilder.hpp b/hotspot/src/share/vm/cds/archiveBuilder.hpp @@ -243,19 +242,6 @@ index 438a287c..c78e1787 100644 fi # VM type: need to know server or client -diff --git a/hotspot/test/runtime/InitialThreadOverflow/testme.sh b/hotspot/test/runtime/InitialThreadOverflow/testme.sh -index ffd7d6e3..cf48c2fe 100644 ---- a/hotspot/test/runtime/InitialThreadOverflow/testme.sh -+++ b/hotspot/test/runtime/InitialThreadOverflow/testme.sh -@@ -52,7 +52,7 @@ fi - CFLAGS="-m${VM_BITS}" - - if [ "${VM_CPU}" == "aarch64" ]; then -- CFLAGS="-mabi=lp64" -+ CFLAGS="" - fi - - LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE}:/usr/lib:$LD_LIBRARY_PATH diff --git a/hotspot/test/runtime/Thread/StopAtExit.java b/hotspot/test/runtime/Thread/StopAtExit.java new file mode 100644 index 00000000..8d6344a6 diff --git a/add-0010-8301749-Tracking-malloc-pooled-memory-size.patch b/add-0010-8301749-Tracking-malloc-pooled-memory-size.patch new file mode 100644 index 0000000000000000000000000000000000000000..5e3056ba14658c1aa9e6d71f944a9d12cf2b3708 --- /dev/null +++ b/add-0010-8301749-Tracking-malloc-pooled-memory-size.patch @@ -0,0 +1,311 @@ +From fe0409dd4a7b26a623d2e0ad77be635b20f11d29 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 14:44:51 +0800 +Subject: add 0010-8301749-Tracking-malloc-pooled-memory-size + +--- + hotspot/src/os/linux/vm/mallocInfoDcmd.cpp | 62 +++++++++++++++++++ + hotspot/src/os/linux/vm/mallocInfoDcmd.hpp | 51 +++++++++++++++ + hotspot/src/os/linux/vm/os_linux.cpp | 10 +++ + hotspot/src/os/linux/vm/os_linux.hpp | 4 ++ + .../share/vm/services/diagnosticCommand.cpp | 2 + + .../serviceability/dcmd/MallocInfoTest.java | 54 ++++++++++++++++ + .../com/oracle/java/testlibrary/Platform.java | 18 +++++- + 7 files changed, 199 insertions(+), 2 deletions(-) + create mode 100644 hotspot/src/os/linux/vm/mallocInfoDcmd.cpp + create mode 100644 hotspot/src/os/linux/vm/mallocInfoDcmd.hpp + create mode 100644 hotspot/test/serviceability/dcmd/MallocInfoTest.java + +diff --git a/hotspot/src/os/linux/vm/mallocInfoDcmd.cpp b/hotspot/src/os/linux/vm/mallocInfoDcmd.cpp +new file mode 100644 +index 000000000..4e50a8e13 +--- /dev/null ++++ b/hotspot/src/os/linux/vm/mallocInfoDcmd.cpp +@@ -0,0 +1,62 @@ ++/* ++ * Copyright (c) 2023, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ * ++ */ ++ ++#include "precompiled.hpp" ++#include "mallocInfoDcmd.hpp" ++#include "os_linux.hpp" ++#include "utilities/globalDefinitions.hpp" ++#include "utilities/ostream.hpp" ++ ++#include ++ ++const char* malloc_info_unavailable = "Error: malloc_info(3) not available."; ++ ++void MallocInfoDcmd::execute(DCmdSource source, TRAPS) { ++#ifdef __GLIBC__ ++ char* buf; ++ size_t size; ++ FILE* stream = ::open_memstream(&buf, &size); ++ if (stream == NULL) { ++ _output->print_cr("Error: Could not call malloc_info(3)"); ++ return; ++ } ++ ++ int err = os::Linux::malloc_info(stream); ++ if (err == 0) { ++ fflush(stream); ++ _output->print_raw(buf); ++ _output->cr(); ++ } else if (err == -1) { ++ _output->print_cr("Error: %s", strerror(errno)); ++ } else if (err == -2) { ++ _output->print_cr("%s", malloc_info_unavailable); ++ } else { ++ ShouldNotReachHere(); ++ } ++ ::fclose(stream); ++ ::free(buf); ++#else ++ _output->print_cr(malloc_info_unavailable); ++#endif // __GLIBC__ ++} +diff --git a/hotspot/src/os/linux/vm/mallocInfoDcmd.hpp b/hotspot/src/os/linux/vm/mallocInfoDcmd.hpp +new file mode 100644 +index 000000000..deb154415 +--- /dev/null ++++ b/hotspot/src/os/linux/vm/mallocInfoDcmd.hpp +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (c) 2023, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ * ++ */ ++ ++#ifndef OS_LINUX_MALLOCINFODCMD_HPP ++#define OS_LINUX_MALLOCINFODCMD_HPP ++ ++#include "services/diagnosticCommand.hpp" ++ ++class outputStream; ++ ++class MallocInfoDcmd : public DCmd { ++public: ++ MallocInfoDcmd(outputStream* output, bool heap) : DCmd(output, heap) {} ++ static const char* name() { ++ return "System.native_heap_info"; ++ } ++ static const char* description() { ++ return "Attempts to output information regarding native heap usage through malloc_info(3). If unsuccessful outputs \"Error: \" and a reason."; ++ } ++ static const char* impact() { ++ return "Low"; ++ } ++ static const JavaPermission permission() { ++ JavaPermission p = { "java.lang.management.ManagementPermission", "monitor", NULL }; ++ return p; ++ } ++ void execute(DCmdSource source, TRAPS); ++}; ++ ++#endif // OS_LINUX_MALLOCINFODCMD_HPP +diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp +index cf3a166aa..72839eb5a 100644 +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -177,6 +177,8 @@ typedef struct glibc_mallinfo (*mallinfo_func_t)(void); + typedef struct os::Linux::glibc_mallinfo2 (*mallinfo2_func_t)(void); + static mallinfo_func_t g_mallinfo = NULL; + static mallinfo2_func_t g_mallinfo2 = NULL; ++typedef int (*malloc_info_func_t)(int options, FILE *stream); ++static malloc_info_func_t g_malloc_info = NULL; + #endif // __GLIBC__ + + static jlong initial_time_count=0; +@@ -5416,6 +5418,7 @@ void os::init(void) { + #ifdef __GLIBC__ + g_mallinfo = CAST_TO_FN_PTR(mallinfo_func_t, dlsym(RTLD_DEFAULT, "mallinfo")); + g_mallinfo2 = CAST_TO_FN_PTR(mallinfo2_func_t, dlsym(RTLD_DEFAULT, "mallinfo2")); ++ g_malloc_info = CAST_TO_FN_PTR(malloc_info_func_t, dlsym(RTLD_DEFAULT, "malloc_info")); + #endif // __GLIBC__ + + // _main_thread points to the thread that created/loaded the JVM. +@@ -7072,6 +7075,13 @@ os::Linux::mallinfo_retval_t os::Linux::get_mallinfo(glibc_mallinfo2* out) { + } + return os::Linux::ok; + } ++ ++int os::Linux::malloc_info(FILE* stream) { ++ if (g_malloc_info == NULL) { ++ return -2; ++ } ++ return g_malloc_info(0, stream); ++} + #endif // __GLIBC__ + + // Trim-native support +diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp +index 39a2b4989..a516335d2 100644 +--- a/hotspot/src/os/linux/vm/os_linux.hpp ++++ b/hotspot/src/os/linux/vm/os_linux.hpp +@@ -488,6 +488,10 @@ public: + // If we only have mallinfo(), values may be 32-bit truncated, which is signaled via + // "ok_but_possibly_wrapped". + static mallinfo_retval_t get_mallinfo(glibc_mallinfo2* out); ++ ++ // Calls out to GNU extension malloc_info if available ++ // otherwise does nothing and returns -2. ++ static int malloc_info(FILE* stream); + #endif + + static bool isbound_to_all_node() { +diff --git a/hotspot/src/share/vm/services/diagnosticCommand.cpp b/hotspot/src/share/vm/services/diagnosticCommand.cpp +index 50050a169..416dc77ce 100644 +--- a/hotspot/src/share/vm/services/diagnosticCommand.cpp ++++ b/hotspot/src/share/vm/services/diagnosticCommand.cpp +@@ -39,6 +39,7 @@ + + #ifdef LINUX + #include "trimCHeapDCmd.hpp" ++#include "mallocInfoDcmd.hpp" + #endif + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC +@@ -79,6 +80,7 @@ void DCmdRegistrant::register_dcmds(){ + DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); + #ifdef LINUX + DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); ++ DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); + #endif // LINUX + + // Enhanced JMX Agent Support +diff --git a/hotspot/test/serviceability/dcmd/MallocInfoTest.java b/hotspot/test/serviceability/dcmd/MallocInfoTest.java +new file mode 100644 +index 000000000..bc8ab3ef4 +--- /dev/null ++++ b/hotspot/test/serviceability/dcmd/MallocInfoTest.java +@@ -0,0 +1,54 @@ ++/* ++ * Copyright (c) 2023, 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++import org.testng.annotations.Test; ++import com.oracle.java.testlibrary.*; ++ ++/* ++ * @test ++ * @summary Test of diagnostic command System.native_heap_info ++ * @library /testlibrary ++ * @requires (os.family=="linux") ++ * @modules java.base/jdk.internal.misc ++ * java.compiler ++ * java.management ++ * jdk.internal.jvmstat/sun.jvmstat.monitor ++ * @run testng MallocInfoTest ++ */ ++public class MallocInfoTest { ++ public void run(CommandExecutor executor) { ++ OutputAnalyzer output = executor.execute("System.native_heap_info"); ++ if (!Platform.isMusl()) { ++ output.shouldNotContain("Error: "); ++ output.shouldContain("(buf[i]); + if (card_ptr != NULL) { + // Set the entry to null, so we don't do it again (via the test + // above) if we reconsider this buffer. +- if (consume) buf[ind] = NULL; +- if (!cl->do_card_ptr(card_ptr, worker_i)) return false; ++ if (consume) { ++ buf[i] = NULL; ++ } ++ if (!cl->do_card_ptr(card_ptr, worker_i)) { ++ return false; ++ } + } + } + return true; +@@ -71,7 +89,7 @@ bool DirtyCardQueue::apply_closure_to_buffer(CardTableEntryClosure* cl, + DirtyCardQueueSet::DirtyCardQueueSet(bool notify_when_complete) : + PtrQueueSet(notify_when_complete), + _mut_process_closure(NULL), +- _shared_dirty_card_queue(this, true /*perm*/), ++ _shared_dirty_card_queue(this, true /* permanent */), + _free_ids(NULL), + _processed_buffers_mut(0), _processed_buffers_rs_thread(0) + { +@@ -83,13 +101,19 @@ uint DirtyCardQueueSet::num_par_ids() { + return (uint)os::initial_active_processor_count(); + } + +-void DirtyCardQueueSet::initialize(CardTableEntryClosure* cl, Monitor* cbl_mon, Mutex* fl_lock, ++void DirtyCardQueueSet::initialize(CardTableEntryClosure* cl, ++ Monitor* cbl_mon, ++ Mutex* fl_lock, + int process_completed_threshold, + int max_completed_queue, +- Mutex* lock, PtrQueueSet* fl_owner) { ++ Mutex* lock, ++ DirtyCardQueueSet* fl_owner) { + _mut_process_closure = cl; +- PtrQueueSet::initialize(cbl_mon, fl_lock, process_completed_threshold, +- max_completed_queue, fl_owner); ++ PtrQueueSet::initialize(cbl_mon, ++ fl_lock, ++ process_completed_threshold, ++ max_completed_queue, ++ fl_owner); + set_buffer_size(G1UpdateBufferSize); + _shared_dirty_card_queue.set_lock(lock); + _free_ids = new FreeIdSet((int) num_par_ids(), _cbl_mon); +@@ -103,7 +127,7 @@ void DirtyCardQueueSet::iterate_closure_all_threads(CardTableEntryClosure* cl, + bool consume, + uint worker_i) { + assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); +- for(JavaThread* t = Threads::first(); t; t = t->next()) { ++ for (JavaThread* t = Threads::first(); t; t = t->next()) { + bool b = t->dirty_card_queue().apply_closure(cl, consume); + guarantee(b, "Should not be interrupted."); + } +@@ -160,8 +184,7 @@ bool DirtyCardQueueSet::mut_process_buffer(void** buf) { + } + + +-BufferNode* +-DirtyCardQueueSet::get_completed_buffer(int stop_at) { ++BufferNode* DirtyCardQueueSet::get_completed_buffer(int stop_at) { + BufferNode* nd = NULL; + MutexLockerEx x(_cbl_mon, Mutex::_no_safepoint_check_flag); + +@@ -178,12 +201,11 @@ DirtyCardQueueSet::get_completed_buffer(int stop_at) { + _n_completed_buffers--; + assert(_n_completed_buffers >= 0, "Invariant"); + } +- debug_only(assert_completed_buffer_list_len_correct_locked()); ++ DEBUG_ONLY(assert_completed_buffer_list_len_correct_locked()); + return nd; + } + +-bool DirtyCardQueueSet:: +-apply_closure_to_completed_buffer_helper(CardTableEntryClosure* cl, ++bool DirtyCardQueueSet::apply_closure_to_completed_buffer_helper(CardTableEntryClosure* cl, + uint worker_i, + BufferNode* nd) { + if (nd != NULL) { +@@ -259,7 +281,7 @@ void DirtyCardQueueSet::clear() { + } + _n_completed_buffers = 0; + _completed_buffers_tail = NULL; +- debug_only(assert_completed_buffer_list_len_correct_locked()); ++ DEBUG_ONLY(assert_completed_buffer_list_len_correct_locked()); + } + while (buffers_to_delete != NULL) { + BufferNode* nd = buffers_to_delete; +@@ -291,10 +313,11 @@ void DirtyCardQueueSet::concatenate_logs() { + for (JavaThread* t = Threads::first(); t; t = t->next()) { + DirtyCardQueue& dcq = t->dirty_card_queue(); + if (dcq.size() != 0) { +- void **buf = t->dirty_card_queue().get_buf(); ++ void **buf = dcq.get_buf(); + // We must NULL out the unused entries, then enqueue. +- for (size_t i = 0; i < t->dirty_card_queue().get_index(); i += oopSize) { +- buf[PtrQueue::byte_index_to_index((int)i)] = NULL; ++ size_t limit = dcq.byte_index_to_index(dcq.get_index()); ++ for (size_t i = 0; i < limit; ++i) { ++ buf[i] = NULL; + } + enqueue_complete_buffer(dcq.get_buf(), dcq.get_index()); + dcq.reinitialize(); +diff --git a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp +index 986c0ea3c..250145937 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp +@@ -29,6 +29,7 @@ + #include "memory/allocation.hpp" + + class FreeIdSet; ++class DirtyCardQueueSet; + + // A closure class for processing card table entries. Note that we don't + // require these closure objects to be stack-allocated. +@@ -42,14 +43,11 @@ public: + // A ptrQueue whose elements are "oops", pointers to object heads. + class DirtyCardQueue: public PtrQueue { + public: +- DirtyCardQueue(PtrQueueSet* qset_, bool perm = false) : +- // Dirty card queues are always active, so we create them with their +- // active field set to true. +- PtrQueue(qset_, perm, true /* active */) { } ++ DirtyCardQueue(DirtyCardQueueSet* qset, bool permanent = false); + + // Flush before destroying; queue may be used to capture pending work while + // doing something else, with auto-flush on completion. +- ~DirtyCardQueue() { if (!is_permanent()) flush(); } ++ ~DirtyCardQueue(); + + // Process queue entries and release resources. + void flush() { flush_impl(); } +@@ -72,7 +70,6 @@ public: + bool consume = true, + uint worker_i = 0); + void **get_buf() { return _buf;} +- void set_buf(void **buf) {_buf = buf;} + size_t get_index() { return _index;} + void reinitialize() { _buf = 0; _sz = 0; _index = 0;} + }; +@@ -101,10 +98,13 @@ class DirtyCardQueueSet: public PtrQueueSet { + public: + DirtyCardQueueSet(bool notify_when_complete = true); + +- void initialize(CardTableEntryClosure* cl, Monitor* cbl_mon, Mutex* fl_lock, ++ void initialize(CardTableEntryClosure* cl, ++ Monitor* cbl_mon, ++ Mutex* fl_lock, + int process_completed_threshold, + int max_completed_queue, +- Mutex* lock, PtrQueueSet* fl_owner = NULL); ++ Mutex* lock, ++ DirtyCardQueueSet* fl_owner = NULL); + + // The number of parallel ids that can be claimed to allow collector or + // mutator threads to do card-processing work. +diff --git a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp +index 2845d5186..c92b081c3 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp +@@ -30,24 +30,25 @@ + #include "runtime/mutexLocker.hpp" + #include "runtime/thread.inline.hpp" + +-PtrQueue::PtrQueue(PtrQueueSet* qset, bool perm, bool active) : ++PtrQueue::PtrQueue(PtrQueueSet* qset, bool permanent, bool active) : + _qset(qset), _buf(NULL), _index(0), _sz(0), _active(active), +- _perm(perm), _lock(NULL) ++ _permanent(permanent), _lock(NULL) + {} + + PtrQueue::~PtrQueue() { +- assert(_perm || (_buf == NULL), "queue must be flushed before delete"); ++ assert(_permanent || (_buf == NULL), "queue must be flushed before delete"); + } + + void PtrQueue::flush_impl() { +- if (!_perm && _buf != NULL) { ++ if (!_permanent && _buf != NULL) { + if (_index == _sz) { + // No work to do. + qset()->deallocate_buffer(_buf); + } else { + // We must NULL out the unused entries, then enqueue. +- for (size_t i = 0; i < _index; i += oopSize) { +- _buf[byte_index_to_index((int)i)] = NULL; ++ size_t limit = byte_index_to_index(_index); ++ for (size_t i = 0; i < limit; ++i) { ++ _buf[i] = NULL; + } + qset()->enqueue_complete_buffer(_buf); + } +@@ -66,8 +67,8 @@ void PtrQueue::enqueue_known_active(void* ptr) { + } + + assert(_index > 0, "postcondition"); +- _index -= oopSize; +- _buf[byte_index_to_index((int)_index)] = ptr; ++ _index -= sizeof(void*); ++ _buf[byte_index_to_index(_index)] = ptr; + assert(0 <= _index && _index <= _sz, "Invariant."); + } + +@@ -100,6 +101,26 @@ PtrQueueSet::PtrQueueSet(bool notify_when_complete) : + _fl_owner = this; + } + ++PtrQueueSet::~PtrQueueSet() { ++ // There are presently only a couple (derived) instances ever ++ // created, and they are permanent, so no harm currently done by ++ // doing nothing here. ++} ++ ++void PtrQueueSet::initialize(Monitor* cbl_mon, ++ Mutex* fl_lock, ++ int process_completed_threshold, ++ int max_completed_queue, ++ PtrQueueSet *fl_owner) { ++ _max_completed_queue = max_completed_queue; ++ _process_completed_threshold = process_completed_threshold; ++ _completed_queue_padding = 0; ++ assert(cbl_mon != NULL && fl_lock != NULL, "Init order issue?"); ++ _cbl_mon = cbl_mon; ++ _fl_lock = fl_lock; ++ _fl_owner = (fl_owner != NULL) ? fl_owner : this; ++} ++ + void** PtrQueueSet::allocate_buffer() { + assert(_sz > 0, "Didn't set a buffer size."); + MutexLockerEx x(_fl_owner->_fl_lock, Mutex::_no_safepoint_check_flag); +@@ -234,7 +255,7 @@ void PtrQueueSet::enqueue_complete_buffer(void** buf, size_t index) { + if (_notify_when_complete) + _cbl_mon->notify(); + } +- debug_only(assert_completed_buffer_list_len_correct_locked()); ++ DEBUG_ONLY(assert_completed_buffer_list_len_correct_locked()); + } + + int PtrQueueSet::completed_buffers_list_length() { +@@ -259,7 +280,7 @@ void PtrQueueSet::assert_completed_buffer_list_len_correct_locked() { + + void PtrQueueSet::set_buffer_size(size_t sz) { + assert(_sz == 0 && sz > 0, "Should be called only once."); +- _sz = sz * oopSize; ++ _sz = sz * sizeof(void*); + } + + // Merge lists of buffers. Notify the processing threads. +diff --git a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp +index 27404f0a9..9c969b2ad 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp +@@ -40,44 +40,49 @@ class PtrQueueSet; + class PtrQueue VALUE_OBJ_CLASS_SPEC { + friend class VMStructs; + +-protected: ++ // Noncopyable - not defined. ++ PtrQueue(const PtrQueue&); ++ PtrQueue& operator=(const PtrQueue&); ++ + // The ptr queue set to which this queue belongs. +- PtrQueueSet* _qset; ++ PtrQueueSet* const _qset; + + // Whether updates should be logged. + bool _active; + ++ // If true, the queue is permanent, and doesn't need to deallocate ++ // its buffer in the destructor (since that obtains a lock which may not ++ // be legally locked by then. ++ const bool _permanent; ++ ++protected: + // The buffer. + void** _buf; +- // The index at which an object was last enqueued. Starts at "_sz" ++ // The (byte) index at which an object was last enqueued. Starts at "_sz" + // (indicating an empty buffer) and goes towards zero. + size_t _index; + +- // The size of the buffer. ++ // The (byte) size of the buffer. + size_t _sz; + +- // If true, the queue is permanent, and doesn't need to deallocate +- // its buffer in the destructor (since that obtains a lock which may not +- // be legally locked by then. +- bool _perm; +- + // If there is a lock associated with this buffer, this is that lock. + Mutex* _lock; + + PtrQueueSet* qset() { return _qset; } +- bool is_permanent() const { return _perm; } ++ bool is_permanent() const { return _permanent; } + + // Process queue entries and release resources, if not permanent. + void flush_impl(); + +-public: + // Initialize this queue to contain a null buffer, and be part of the + // given PtrQueueSet. +- PtrQueue(PtrQueueSet* qset, bool perm = false, bool active = false); ++ PtrQueue(PtrQueueSet* qset, bool permanent = false, bool active = false); + + // Requires queue flushed or permanent. + ~PtrQueue(); + ++public: ++ + // Associate a lock with a ptr queue. + void set_lock(Mutex* lock) { _lock = lock; } + +@@ -129,13 +134,9 @@ public: + + bool is_active() { return _active; } + +- static int byte_index_to_index(int ind) { +- assert((ind % oopSize) == 0, "Invariant."); +- return ind / oopSize; +- } +- +- static int index_to_byte_index(int byte_ind) { +- return byte_ind * oopSize; ++ static size_t byte_index_to_index(size_t ind) { ++ assert((ind % sizeof(void*)) == 0, "Invariant."); ++ return ind / sizeof(void*); + } + + // To support compiler. +@@ -246,26 +247,21 @@ protected: + return false; + } + +-public: + // Create an empty ptr queue set. + PtrQueueSet(bool notify_when_complete = false); ++ ~PtrQueueSet(); + + // Because of init-order concerns, we can't pass these as constructor + // arguments. +- void initialize(Monitor* cbl_mon, Mutex* fl_lock, ++ void initialize(Monitor* cbl_mon, ++ Mutex* fl_lock, + int process_completed_threshold, + int max_completed_queue, +- PtrQueueSet *fl_owner = NULL) { +- _max_completed_queue = max_completed_queue; +- _process_completed_threshold = process_completed_threshold; +- _completed_queue_padding = 0; +- assert(cbl_mon != NULL && fl_lock != NULL, "Init order issue?"); +- _cbl_mon = cbl_mon; +- _fl_lock = fl_lock; +- _fl_owner = (fl_owner != NULL) ? fl_owner : this; +- } ++ PtrQueueSet *fl_owner = NULL); ++ ++public: + +- // Return an empty oop array of size _sz (required to be non-zero). ++ // Return an empty array of size _sz (required to be non-zero). + void** allocate_buffer(); + + // Return an empty buffer to the free list. The "buf" argument is +diff --git a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp +index d423c69ac..8c70b6795 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp +@@ -35,6 +35,15 @@ + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + ++ObjPtrQueue::ObjPtrQueue(SATBMarkQueueSet* qset, bool permanent) : ++ // SATB queues are only active during marking cycles. We create ++ // them with their active field set to false. If a thread is ++ // created during a cycle and its SATB queue needs to be activated ++ // before the thread starts running, we'll need to set its active ++ // field to true. This is done in JavaThread::initialize_queues(). ++ PtrQueue(qset, permanent, false /* active */) ++{ } ++ + void ObjPtrQueue::flush() { + // Filter now to possibly save work later. If filtering empties the + // buffer then flush_impl can deallocate the buffer. +@@ -101,7 +110,6 @@ inline bool requires_marking(const void* entry, G1CollectedHeap* heap) { + void ObjPtrQueue::filter() { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + void** buf = _buf; +- size_t sz = _sz; + + if (buf == NULL) { + // nothing to do +@@ -109,43 +117,37 @@ void ObjPtrQueue::filter() { + } + + // Used for sanity checking at the end of the loop. +- debug_only(size_t entries = 0; size_t retained = 0;) ++ DEBUG_ONLY(size_t entries = 0; size_t retained = 0;) + +- size_t i = sz; +- size_t new_index = sz; ++ assert(_index <= _sz, "invariant"); ++ void** limit = &buf[byte_index_to_index(_index)]; ++ void** src = &buf[byte_index_to_index(_sz)]; ++ void** dst = src; + +- while (i > _index) { +- assert(i > 0, "we should have at least one more entry to process"); +- i -= oopSize; +- debug_only(entries += 1;) +- void** p = &buf[byte_index_to_index((int) i)]; +- void* entry = *p; ++ while (limit < src) { ++ DEBUG_ONLY(entries += 1;) ++ --src; ++ void* entry = *src; + // NULL the entry so that unused parts of the buffer contain NULLs + // at the end. If we are going to retain it we will copy it to its + // final place. If we have retained all entries we have visited so + // far, we'll just end up copying it to the same place. +- *p = NULL; ++ *src = NULL; + + if (requires_marking(entry, g1h) && !g1h->isMarkedNext((oop)entry)) { +- assert(new_index > 0, "we should not have already filled up the buffer"); +- new_index -= oopSize; +- assert(new_index >= i, +- "new_index should never be below i, as we alwaysr compact 'up'"); +- void** new_p = &buf[byte_index_to_index((int) new_index)]; +- assert(new_p >= p, "the destination location should never be below " +- "the source as we always compact 'up'"); +- assert(*new_p == NULL, +- "we should have already cleared the destination location"); +- *new_p = entry; +- debug_only(retained += 1;) ++ --dst; ++ assert(*dst == NULL, "filtering destination should be clear"); ++ *dst = entry; ++ DEBUG_ONLY(retained += 1;); + } + } ++ size_t new_index = pointer_delta(dst, buf, 1); + + #ifdef ASSERT +- size_t entries_calc = (sz - _index) / oopSize; ++ size_t entries_calc = (_sz - _index) / sizeof(void*); + assert(entries == entries_calc, "the number of entries we counted " + "should match the number of entries we calculated"); +- size_t retained_calc = (sz - new_index) / oopSize; ++ size_t retained_calc = (_sz - new_index) / sizeof(void*); + assert(retained == retained_calc, "the number of retained entries we counted " + "should match the number of retained entries we calculated"); + #endif // ASSERT +@@ -172,11 +174,8 @@ bool ObjPtrQueue::should_enqueue_buffer() { + + filter(); + +- size_t sz = _sz; +- size_t all_entries = sz / oopSize; +- size_t retained_entries = (sz - _index) / oopSize; +- size_t perc = retained_entries * 100 / all_entries; +- bool should_enqueue = perc > (size_t) G1SATBBufferEnqueueingThresholdPercent; ++ size_t percent_used = ((_sz - _index) * 100) / _sz; ++ bool should_enqueue = percent_used > G1SATBBufferEnqueueingThresholdPercent; + return should_enqueue; + } + +@@ -187,8 +186,8 @@ void ObjPtrQueue::apply_closure_and_empty(SATBBufferClosure* cl) { + assert(_index % sizeof(void*) == 0, "invariant"); + assert(_sz % sizeof(void*) == 0, "invariant"); + assert(_index <= _sz, "invariant"); +- cl->do_buffer(_buf + byte_index_to_index((int)_index), +- byte_index_to_index((int)(_sz - _index))); ++ cl->do_buffer(_buf + byte_index_to_index(_index), ++ byte_index_to_index(_sz - _index)); + _index = _sz; + } + } +@@ -214,7 +213,7 @@ void ObjPtrQueue::print(const char* name, + + SATBMarkQueueSet::SATBMarkQueueSet() : + PtrQueueSet(), +- _shared_satb_queue(this, true /*perm*/) { } ++ _shared_satb_queue(this, true /* permanent */) { } + + void SATBMarkQueueSet::initialize(Monitor* cbl_mon, Mutex* fl_lock, + int process_completed_threshold, +@@ -301,7 +300,7 @@ bool SATBMarkQueueSet::apply_closure_to_completed_buffer(SATBBufferClosure* cl) + // Filtering can result in non-full completed buffers; see + // should_enqueue_buffer. + assert(_sz % sizeof(void*) == 0, "invariant"); +- size_t limit = ObjPtrQueue::byte_index_to_index((int)_sz); ++ size_t limit = ObjPtrQueue::byte_index_to_index(_sz); + for (size_t i = 0; i < limit; ++i) { + if (buf[i] != NULL) { + // Found the end of the block of NULLs; process the remainder. +diff --git a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp +index 594895919..6651210a3 100644 +--- a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp ++++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp +@@ -50,13 +50,7 @@ private: + void filter(); + + public: +- ObjPtrQueue(PtrQueueSet* qset, bool perm = false) : +- // SATB queues are only active during marking cycles. We create +- // them with their active field set to false. If a thread is +- // created during a cycle and its SATB queue needs to be activated +- // before the thread starts running, we'll need to set its active +- // field to true. This is done in JavaThread::initialize_queues(). +- PtrQueue(qset, perm, false /* active */) { } ++ ObjPtrQueue(SATBMarkQueueSet* qset, bool permanent = false); + + // Process queue entries and free resources. + void flush(); +diff --git a/hotspot/test/gc/g1/TestPtrQueueSize.java b/hotspot/test/gc/g1/TestPtrQueueSize.java +new file mode 100644 +index 000000000..f46c95bec +--- /dev/null ++++ b/hotspot/test/gc/g1/TestPtrQueueSize.java +@@ -0,0 +1,58 @@ ++/* ++ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/** ++* @test TestPtrQueueSize.java ++* @key gc ++* @bug 6899049 ++* @summary Test size of PtrQueue; used by dirtyCardQueue and satbQueue ++* @library /testlibrary ++*/ ++ ++import com.oracle.java.testlibrary.ProcessTools; ++import com.oracle.java.testlibrary.OutputAnalyzer; ++ ++ public class TestPtrQueueSize { ++ public static void main(String[] args) throws Exception { ++ ++ ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", ++ "-XX:G1SATBBufferSize=716M", ++ "-Xms1024m", ++ "-Xmx4096m", ++ SystemGCTest.class.getName()); ++ ++ OutputAnalyzer output = new OutputAnalyzer(pb.start()); ++ ++ System.out.println("Output:\n" + output.getOutput()); ++ ++ output.shouldHaveExitValue(0); ++ } ++ ++ static class SystemGCTest { ++ public static void main(String [] args) { ++ for (int i = 0; i < 500; ++i) { ++ byte[] bArray = new byte[1024*1024]; ++ } ++ } ++ } ++ } +\ No newline at end of file +-- +2.22.0 + diff --git a/add-8142508-To-bring-j.u.z.ZipFile-s-native-implemen.patch b/add-8142508-To-bring-j.u.z.ZipFile-s-native-implemen.patch new file mode 100644 index 0000000000000000000000000000000000000000..0bbe9545dbc69f5013cbda3bb804e2f7c96875bd --- /dev/null +++ b/add-8142508-To-bring-j.u.z.ZipFile-s-native-implemen.patch @@ -0,0 +1,2911 @@ +From 7590fffae62f5a4157ab7612c186b442c81d5682 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:15:39 +0800 +Subject: add 8142508-To-bring-j.u.z.ZipFile-s-native-implementati + +--- + jdk/make/mapfiles/libzip/mapfile-vers | 23 +- + jdk/make/mapfiles/libzip/reorder-sparc | 17 - + jdk/make/mapfiles/libzip/reorder-sparcv9 | 16 - + jdk/make/mapfiles/libzip/reorder-x86 | 19 - + .../share/classes/java/util/jar/JarFile.java | 5 +- + .../share/classes/java/util/zip/ZipCoder.java | 21 +- + .../share/classes/java/util/zip/ZipFile.java | 933 ++++++++++++++---- + .../share/classes/java/util/zip/ZipUtils.java | 79 +- + .../sun/misc/JavaUtilZipFileAccess.java | 1 + + jdk/src/share/classes/sun/misc/VM.java | 3 - + jdk/src/share/native/java/util/zip/ZipFile.c | 403 -------- + jdk/src/share/native/java/util/zip/zip_util.c | 29 +- + jdk/src/share/native/java/util/zip/zip_util.h | 1 - + jdk/test/java/nio/file/spi/TestProvider.java | 274 ++++- + .../java/util/zip/ZipFile/TestZipFile.java | 375 +++++++ + .../imageio/plugins/png/ItxtUtf8Test.java | 2 +- + 16 files changed, 1440 insertions(+), 761 deletions(-) + delete mode 100644 jdk/src/share/native/java/util/zip/ZipFile.c + create mode 100644 jdk/test/java/util/zip/ZipFile/TestZipFile.java + +diff --git a/jdk/make/mapfiles/libzip/mapfile-vers b/jdk/make/mapfiles/libzip/mapfile-vers +index 5d33990c3..e7394ae61 100644 +--- a/jdk/make/mapfiles/libzip/mapfile-vers ++++ b/jdk/make/mapfiles/libzip/mapfile-vers +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 1997, 2015, 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 +@@ -27,7 +27,6 @@ + + SUNWprivate_1.1 { + global: +- Java_java_util_jar_JarFile_getMetaInfEntryNames; + Java_java_util_zip_Adler32_update; + Java_java_util_zip_Adler32_updateBytes; + Java_java_util_zip_Adler32_updateByteBuffer; +@@ -48,26 +47,6 @@ SUNWprivate_1.1 { + Java_java_util_zip_Inflater_initIDs; + Java_java_util_zip_Inflater_reset; + Java_java_util_zip_Inflater_setDictionary; +- Java_java_util_zip_ZipFile_close; +- Java_java_util_zip_ZipFile_getCommentBytes; +- Java_java_util_zip_ZipFile_freeEntry; +- Java_java_util_zip_ZipFile_getEntry; +- Java_java_util_zip_ZipFile_getEntryBytes; +- Java_java_util_zip_ZipFile_getEntryCrc; +- Java_java_util_zip_ZipFile_getEntryCSize; +- Java_java_util_zip_ZipFile_getEntryFlag; +- Java_java_util_zip_ZipFile_getEntryMethod; +- Java_java_util_zip_ZipFile_getEntrySize; +- Java_java_util_zip_ZipFile_getEntryTime; +- Java_java_util_zip_ZipFile_getNextEntry; +- Java_java_util_zip_ZipFile_getZipMessage; +- Java_java_util_zip_ZipFile_getTotal; +- Java_java_util_zip_ZipFile_initIDs; +- Java_java_util_zip_ZipFile_open; +- Java_java_util_zip_ZipFile_read; +- Java_java_util_zip_ZipFile_startsWithLOC; +- Java_java_util_zip_ZipFile_getManifestNum; +- + ZIP_Close; + ZIP_CRC32; + ZIP_FindEntry; +diff --git a/jdk/make/mapfiles/libzip/reorder-sparc b/jdk/make/mapfiles/libzip/reorder-sparc +index 9d3aae88e..b1957dce7 100644 +--- a/jdk/make/mapfiles/libzip/reorder-sparc ++++ b/jdk/make/mapfiles/libzip/reorder-sparc +@@ -15,31 +15,14 @@ text: .text%ZIP_GetEntry; + text: .text%ZIP_Lock; + text: .text%ZIP_Unlock; + text: .text%ZIP_FreeEntry; +-text: .text%Java_java_util_zip_ZipFile_initIDs; +-text: .text%Java_java_util_zip_ZipFile_open; +-text: .text%Java_java_util_zip_ZipFile_getTotal; +-text: .text%Java_java_util_zip_ZipFile_startsWithLOC; +-text: .text%Java_java_util_zip_ZipFile_getManifestNum; +-text: .text%Java_java_util_zip_ZipFile_getEntry; +-text: .text%Java_java_util_zip_ZipFile_freeEntry; +-text: .text%Java_java_util_zip_ZipFile_getEntryTime; +-text: .text%Java_java_util_zip_ZipFile_getEntryCrc; +-text: .text%Java_java_util_zip_ZipFile_getEntryCSize; +-text: .text%Java_java_util_zip_ZipFile_getEntrySize; +-text: .text%Java_java_util_zip_ZipFile_getEntryFlag; +-text: .text%Java_java_util_zip_ZipFile_getEntryMethod; +-text: .text%Java_java_util_zip_ZipFile_getEntryBytes; + text: .text%Java_java_util_zip_Inflater_initIDs; + text: .text%Java_java_util_zip_Inflater_init; + text: .text%inflateInit2_; + text: .text%zcalloc; + text: .text%Java_java_util_zip_Inflater_inflateBytes; +-text: .text%Java_java_util_zip_ZipFile_read; + text: .text%ZIP_Read; + text: .text%zcfree; +-text: .text%Java_java_util_jar_JarFile_getMetaInfEntryNames; + text: .text%Java_java_util_zip_Inflater_reset; + text: .text%Java_java_util_zip_Inflater_end; + text: .text%inflateEnd; +-text: .text%Java_java_util_zip_ZipFile_close; + text: .text%ZIP_Close; +diff --git a/jdk/make/mapfiles/libzip/reorder-sparcv9 b/jdk/make/mapfiles/libzip/reorder-sparcv9 +index bf127e9cf..458d4c34f 100644 +--- a/jdk/make/mapfiles/libzip/reorder-sparcv9 ++++ b/jdk/make/mapfiles/libzip/reorder-sparcv9 +@@ -15,20 +15,6 @@ text: .text%ZIP_Lock; + text: .text%readLOC: OUTPUTDIR/zip_util.o; + text: .text%ZIP_Unlock; + text: .text%ZIP_FreeEntry; +-text: .text%Java_java_util_zip_ZipFile_initIDs; +-text: .text%Java_java_util_zip_ZipFile_open; +-text: .text%Java_java_util_zip_ZipFile_getTotal; +-text: .text%Java_java_util_zip_ZipFile_startsWithLOC; +-text: .text%Java_java_util_zip_ZipFile_getManifestNum; +-text: .text%Java_java_util_zip_ZipFile_getEntry; +-text: .text%Java_java_util_zip_ZipFile_freeEntry; +-text: .text%Java_java_util_zip_ZipFile_getEntryTime; +-text: .text%Java_java_util_zip_ZipFile_getEntryCrc; +-text: .text%Java_java_util_zip_ZipFile_getEntryCSize; +-text: .text%Java_java_util_zip_ZipFile_getEntrySize; +-text: .text%Java_java_util_zip_ZipFile_getEntryFlag; +-text: .text%Java_java_util_zip_ZipFile_getEntryMethod; +-text: .text%Java_java_util_zip_ZipFile_getEntryBytes; + text: .text%Java_java_util_zip_Inflater_initIDs; + text: .text%Java_java_util_zip_Inflater_init; + text: .text%inflateInit2_; +@@ -36,7 +22,6 @@ text: .text%zcalloc; + text: .text%inflateReset; + text: .text%Java_java_util_zip_Inflater_inflateBytes; + text: .text%inflate; +-text: .text%Java_java_util_zip_ZipFile_read; + text: .text%ZIP_Read; + text: .text%huft_build: OUTPUTDIR/inftrees.o; + text: .text%zcfree; +@@ -45,6 +30,5 @@ text: .text%ZIP_ReadEntry; + text: .text%InflateFully; + text: .text%inflateEnd; + text: .text%Java_java_util_zip_Inflater_reset; +-text: .text%Java_java_util_zip_ZipFile_close; + text: .text%ZIP_Close; + text: .text%Java_java_util_zip_Inflater_end; +diff --git a/jdk/make/mapfiles/libzip/reorder-x86 b/jdk/make/mapfiles/libzip/reorder-x86 +index d4e84c38c..62f11a990 100644 +--- a/jdk/make/mapfiles/libzip/reorder-x86 ++++ b/jdk/make/mapfiles/libzip/reorder-x86 +@@ -16,36 +16,17 @@ text: .text%ZIP_Lock; + text: .text%readLOC: OUTPUTDIR/zip_util.o; + text: .text%ZIP_Unlock; + text: .text%ZIP_FreeEntry; +-text: .text%Java_java_util_zip_ZipFile_initIDs; +-text: .text%Java_java_util_zip_ZipFile_open; +-text: .text%Java_java_util_zip_ZipFile_getTotal; +-text: .text%Java_java_util_zip_ZipFile_startsWithLOC; +-text: .text%Java_java_util_zip_ZipFile_getManifestNum; +-text: .text%Java_java_util_zip_ZipFile_getEntry; +-text: .text%Java_java_util_zip_ZipFile_freeEntry; +-text: .text%Java_java_util_zip_ZipFile_getEntryTime; +-text: .text%Java_java_util_zip_ZipFile_getEntryCrc; +-text: .text%Java_java_util_zip_ZipFile_getEntryCSize; +-text: .text%Java_java_util_zip_ZipFile_getEntrySize; +-text: .text%Java_java_util_zip_ZipFile_getEntryFlag; +-text: .text%Java_java_util_zip_ZipFile_getEntryMethod; +-text: .text%Java_java_util_zip_ZipFile_getEntryBytes; +-text: .text%Java_java_util_zip_Inflater_initIDs; +-text: .text%Java_java_util_zip_Inflater_init; + text: .text%inflateInit2_; + text: .text%zcalloc; + text: .text%inflateReset; + text: .text%Java_java_util_zip_Inflater_inflateBytes; + text: .text%inflate; +-text: .text%Java_java_util_zip_ZipFile_read; + text: .text%ZIP_Read; + text: .text%huft_build: OUTPUTDIR/inftrees.o; + text: .text%zcfree; +-text: .text%Java_java_util_jar_JarFile_getMetaInfEntryNames; + text: .text%ZIP_ReadEntry; + text: .text%InflateFully; + text: .text%inflateEnd; + text: .text%Java_java_util_zip_Inflater_reset; +-text: .text%Java_java_util_zip_ZipFile_close; + text: .text%ZIP_Close; + text: .text%Java_java_util_zip_Inflater_end; +diff --git a/jdk/src/share/classes/java/util/jar/JarFile.java b/jdk/src/share/classes/java/util/jar/JarFile.java +index a26dcc4a1..2878e175e 100644 +--- a/jdk/src/share/classes/java/util/jar/JarFile.java ++++ b/jdk/src/share/classes/java/util/jar/JarFile.java +@@ -213,7 +213,10 @@ class JarFile extends ZipFile { + return man; + } + +- private native String[] getMetaInfEntryNames(); ++ private String[] getMetaInfEntryNames() { ++ return sun.misc.SharedSecrets.getJavaUtilZipFileAccess() ++ .getMetaInfEntryNames((ZipFile)this); ++ } + + /** + * Returns the JarEntry for the given entry name or +diff --git a/jdk/src/share/classes/java/util/zip/ZipCoder.java b/jdk/src/share/classes/java/util/zip/ZipCoder.java +index b920b820e..243d6e8c0 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipCoder.java ++++ b/jdk/src/share/classes/java/util/zip/ZipCoder.java +@@ -43,7 +43,7 @@ import sun.nio.cs.ArrayEncoder; + + final class ZipCoder { + +- String toString(byte[] ba, int length) { ++ String toString(byte[] ba, int off, int length) { + CharsetDecoder cd = decoder().reset(); + int len = (int)(length * cd.maxCharsPerByte()); + char[] ca = new char[len]; +@@ -53,12 +53,12 @@ final class ZipCoder { + // CodingErrorAction.REPLACE mode. ZipCoder uses + // REPORT mode. + if (isUTF8 && cd instanceof ArrayDecoder) { +- int clen = ((ArrayDecoder)cd).decode(ba, 0, length, ca); ++ int clen = ((ArrayDecoder)cd).decode(ba, off, length, ca); + if (clen == -1) // malformed + throw new IllegalArgumentException("MALFORMED"); + return new String(ca, 0, clen); + } +- ByteBuffer bb = ByteBuffer.wrap(ba, 0, length); ++ ByteBuffer bb = ByteBuffer.wrap(ba, off, length); + CharBuffer cb = CharBuffer.wrap(ca); + CoderResult cr = cd.decode(bb, cb, true); + if (!cr.isUnderflow()) +@@ -69,8 +69,12 @@ final class ZipCoder { + return new String(ca, 0, cb.position()); + } + ++ String toString(byte[] ba, int length) { ++ return toString(ba, 0, length); ++ } ++ + String toString(byte[] ba) { +- return toString(ba, ba.length); ++ return toString(ba, 0, ba.length); + } + + byte[] getBytes(String s) { +@@ -111,13 +115,16 @@ final class ZipCoder { + return utf8.getBytes(s); + } + +- + String toStringUTF8(byte[] ba, int len) { ++ return toStringUTF8(ba, 0, len); ++ } ++ ++ String toStringUTF8(byte[] ba, int off, int len) { + if (isUTF8) +- return toString(ba, len); ++ return toString(ba, off, len); + if (utf8 == null) + utf8 = new ZipCoder(StandardCharsets.UTF_8); +- return utf8.toString(ba, len); ++ return utf8.toString(ba, off, len); + } + + boolean isUTF8() { +diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java +index 9f8aff6ef..5d9b0de97 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipFile.java ++++ b/jdk/src/share/classes/java/util/zip/ZipFile.java +@@ -30,14 +30,24 @@ import java.io.InputStream; + import java.io.IOException; + import java.io.EOFException; + import java.io.File; ++import java.io.FileNotFoundException; ++import java.io.RandomAccessFile; + import java.nio.charset.Charset; + import java.nio.charset.StandardCharsets; ++import java.nio.file.attribute.BasicFileAttributes; ++import java.nio.file.Path; ++import java.nio.file.Files; ++import java.nio.file.NoSuchFileException; ++ + import java.util.ArrayDeque; ++import java.util.ArrayList; ++import java.util.Arrays; + import java.util.Deque; + import java.util.Enumeration; + import java.util.HashMap; + import java.util.Iterator; + import java.util.Map; ++import java.util.Objects; + import java.util.NoSuchElementException; + import java.util.Spliterator; + import java.util.Spliterators; +@@ -46,7 +56,9 @@ import java.util.jar.JarFile; + import java.util.stream.Stream; + import java.util.stream.StreamSupport; + ++import static java.util.zip.ZipConstants.*; + import static java.util.zip.ZipConstants64.*; ++import static java.util.zip.ZipUtils.*; + + /** + * This class is used to read entries from a zip file. +@@ -59,12 +71,11 @@ import static java.util.zip.ZipConstants64.*; + */ + public + class ZipFile implements ZipConstants, Closeable { +- private long jzfile; // address of jzfile data ++ + private final String name; // zip file name +- private final int total; // total number of entries +- private final boolean locsig; // if zip file starts with LOCSIG (usually true) + private volatile boolean closeRequested = false; +- private int manifestNum = 0; // number of META-INF/MANIFEST.MF, case insensitive ++ private Source zsrc; ++ private ZipCoder zc; + + private static final int STORED = ZipEntry.STORED; + private static final int DEFLATED = ZipEntry.DEFLATED; +@@ -83,26 +94,11 @@ class ZipFile implements ZipConstants, Closeable { + */ + public static final int OPEN_DELETE = 0x4; + +- static { +- /* Zip library is loaded from System.initializeSystemClass */ +- initIDs(); +- } +- +- private static native void initIDs(); +- +- private static final boolean usemmap; +- + private static final boolean ensuretrailingslash; + + static { +- // A system prpperty to disable mmap use to avoid vm crash when +- // in-use zip file is accidently overwritten by others. +- String prop = sun.misc.VM.getSavedProperty("sun.zip.disableMemoryMapping"); +- usemmap = (prop == null || +- !(prop.length() == 0 || prop.equalsIgnoreCase("true"))); +- + // see getEntry() for details +- prop = sun.misc.VM.getSavedProperty("jdk.util.zip.ensureTrailingSlash"); ++ String prop = sun.misc.VM.getSavedProperty("jdk.util.zip.ensureTrailingSlash"); + ensuretrailingslash = prop == null || !prop.equalsIgnoreCase("false"); + } + +@@ -171,8 +167,6 @@ class ZipFile implements ZipConstants, Closeable { + this(file, OPEN_READ); + } + +- private ZipCoder zc; +- + /** + * Opens a new ZipFile to read from the specified + * File object in the specified mode. The mode argument +@@ -224,17 +218,13 @@ class ZipFile implements ZipConstants, Closeable { + sm.checkDelete(name); + } + } +- if (charset == null) +- throw new NullPointerException("charset is null"); ++ Objects.requireNonNull(charset, "charset"); + this.zc = ZipCoder.get(charset); ++ this.name = name; + long t0 = System.nanoTime(); +- jzfile = open(name, mode, file.lastModified(), usemmap); ++ this.zsrc = Source.get(file, (mode & OPEN_DELETE) != 0); + sun.misc.PerfCounter.getZipFileOpenTime().addElapsedTimeFrom(t0); + sun.misc.PerfCounter.getZipFileCount().increment(); +- this.name = name; +- this.total = getTotal(jzfile); +- this.locsig = startsWithLOC(jzfile); +- this.manifestNum = getManifestNum(jzfile); + } + + /** +@@ -268,6 +258,7 @@ class ZipFile implements ZipConstants, Closeable { + + /** + * Opens a ZIP file for reading given the specified File object. ++ * + * @param file the ZIP file to be opened for reading + * @param charset + * The {@linkplain java.nio.charset.Charset charset} to be +@@ -298,10 +289,10 @@ class ZipFile implements ZipConstants, Closeable { + public String getComment() { + synchronized (this) { + ensureOpen(); +- byte[] bcomm = getCommentBytes(jzfile); +- if (bcomm == null) ++ if (zsrc.comment == null) { + return null; +- return zc.toString(bcomm, bcomm.length); ++ } ++ return zc.toString(zsrc.comment); + } + } + +@@ -314,47 +305,29 @@ class ZipFile implements ZipConstants, Closeable { + * @throws IllegalStateException if the zip file has been closed + */ + public ZipEntry getEntry(String name) { +- if (name == null) { +- throw new NullPointerException("name"); +- } +- long jzentry = 0; ++ ++ Objects.requireNonNull(name, "name"); + synchronized (this) { + ensureOpen(); +- jzentry = getEntry(jzfile, zc.getBytes(name), true); +- if (jzentry != 0) { +- // If no entry is found for the specified 'name' and +- // the 'name' does not end with a forward slash '/', +- // the implementation tries to find the entry with a +- // slash '/' appended to the end of the 'name', before +- // returning null. When such entry is found, the name +- // that actually is found (with a slash '/' attached) +- // is used +- // (disabled if jdk.util.zip.ensureTrailingSlash=false) +- ZipEntry ze = ensuretrailingslash ? getZipEntry(null, jzentry) +- : getZipEntry(name, jzentry); +- freeEntry(jzfile, jzentry); +- return ze; ++ int pos = zsrc.getEntryPos(zc.getBytes(name), true); ++ if (pos != -1) { ++ return ensuretrailingslash ? getZipEntry(null, pos) ++ : getZipEntry(name, pos); + } + } + return null; + } + +- private static native long getEntry(long jzfile, byte[] name, +- boolean addSlash); +- +- // freeEntry releases the C jzentry struct. +- private static native void freeEntry(long jzfile, long jzentry); +- +- // the outstanding inputstreams that need to be closed, ++ // The outstanding inputstreams that need to be closed, + // mapped to the inflater objects they use. + private final Map streams = new WeakHashMap<>(); + + /** + * Returns an input stream for reading the contents of the specified + * zip file entry. +- * +- *

Closing this ZIP file will, in turn, close all input +- * streams that have been returned by invocations of this method. ++ *

++ * Closing this ZIP file will, in turn, close all input streams that ++ * have been returned by invocations of this method. + * + * @param entry the zip file entry + * @return the input stream for reading the contents of the specified +@@ -364,37 +337,38 @@ class ZipFile implements ZipConstants, Closeable { + * @throws IllegalStateException if the zip file has been closed + */ + public InputStream getInputStream(ZipEntry entry) throws IOException { +- if (entry == null) { +- throw new NullPointerException("entry"); +- } +- long jzentry = 0; ++ Objects.requireNonNull(entry, "entry"); ++ int pos = -1; + ZipFileInputStream in = null; + synchronized (this) { + ensureOpen(); + if (!zc.isUTF8() && (entry.flag & EFS) != 0) { +- jzentry = getEntry(jzfile, zc.getBytesUTF8(entry.name), false); ++ pos = zsrc.getEntryPos(zc.getBytesUTF8(entry.name), false); + } else { +- jzentry = getEntry(jzfile, zc.getBytes(entry.name), false); ++ pos = zsrc.getEntryPos(zc.getBytes(entry.name), false); + } +- if (jzentry == 0) { ++ if (pos == -1) { + return null; + } +- in = new ZipFileInputStream(jzentry); +- +- switch (getEntryMethod(jzentry)) { ++ in = new ZipFileInputStream(zsrc.cen, pos); ++ switch (CENHOW(zsrc.cen, pos)) { + case STORED: + synchronized (streams) { + streams.put(in, null); + } + return in; + case DEFLATED: ++ // Inflater likes a bit of slack + // MORE: Compute good size for inflater stream: +- long size = getEntrySize(jzentry) + 2; // Inflater likes a bit of slack +- if (size > 65536) size = 8192; +- if (size <= 0) size = 4096; ++ long size = CENLEN(zsrc.cen, pos) + 2; ++ if (size > 65536) { ++ size = 8192; ++ } ++ if (size <= 0) { ++ size = 4096; ++ } + Inflater inf = getInflater(); +- InputStream is = +- new ZipFileInflaterInputStream(in, inf, (int)size); ++ InputStream is = new ZipFileInflaterInputStream(in, inf, (int)size); + synchronized (streams) { + streams.put(is, inf); + } +@@ -467,8 +441,8 @@ class ZipFile implements ZipConstants, Closeable { + private Inflater getInflater() { + Inflater inf; + synchronized (inflaterCache) { +- while (null != (inf = inflaterCache.poll())) { +- if (false == inf.ended()) { ++ while ((inf = inflaterCache.poll()) != null) { ++ if (!inf.ended()) { + return inf; + } + } +@@ -480,7 +454,7 @@ class ZipFile implements ZipConstants, Closeable { + * Releases the specified inflater to the list of available inflaters. + */ + private void releaseInflater(Inflater inf) { +- if (false == inf.ended()) { ++ if (!inf.ended()) { + inf.reset(); + synchronized (inflaterCache) { + inflaterCache.add(inf); +@@ -489,7 +463,7 @@ class ZipFile implements ZipConstants, Closeable { + } + + // List of available Inflater objects for decompression +- private Deque inflaterCache = new ArrayDeque<>(); ++ private final Deque inflaterCache = new ArrayDeque<>(); + + /** + * Returns the path name of the ZIP file. +@@ -501,9 +475,13 @@ class ZipFile implements ZipConstants, Closeable { + + private class ZipEntryIterator implements Enumeration, Iterator { + private int i = 0; ++ private final int entryCount; + + public ZipEntryIterator() { +- ensureOpen(); ++ synchronized (ZipFile.this) { ++ ensureOpen(); ++ this.entryCount = zsrc.total; ++ } + } + + public boolean hasMoreElements() { +@@ -511,10 +489,7 @@ class ZipFile implements ZipConstants, Closeable { + } + + public boolean hasNext() { +- synchronized (ZipFile.this) { +- ensureOpen(); +- return i < total; +- } ++ return i < entryCount; + } + + public ZipEntry nextElement() { +@@ -524,28 +499,11 @@ class ZipFile implements ZipConstants, Closeable { + public ZipEntry next() { + synchronized (ZipFile.this) { + ensureOpen(); +- if (i >= total) { ++ if (!hasNext()) { + throw new NoSuchElementException(); + } +- long jzentry = getNextEntry(jzfile, i++); +- if (jzentry == 0) { +- String message; +- if (closeRequested) { +- message = "ZipFile concurrently closed"; +- } else { +- message = getZipMessage(ZipFile.this.jzfile); +- } +- throw new ZipError("jzentry == 0" + +- ",\n jzfile = " + ZipFile.this.jzfile + +- ",\n total = " + ZipFile.this.total + +- ",\n name = " + ZipFile.this.name + +- ",\n i = " + i + +- ",\n message = " + message +- ); +- } +- ZipEntry ze = getZipEntry(null, jzentry); +- freeEntry(jzfile, jzentry); +- return ze; ++ // each "entry" has 3 ints in table entries ++ return getZipEntry(null, zsrc.getEntryPos(i++ * 3)); + } + } + } +@@ -575,50 +533,53 @@ class ZipFile implements ZipConstants, Closeable { + Spliterator.IMMUTABLE | Spliterator.NONNULL), false); + } + +- private ZipEntry getZipEntry(String name, long jzentry) { +- ZipEntry e = new ZipEntry(); +- e.flag = getEntryFlag(jzentry); // get the flag first +- if (name != null) { +- e.name = name; +- } else { +- byte[] bname = getEntryBytes(jzentry, JZENTRY_NAME); +- if (bname == null) { +- e.name = ""; // length 0 empty name +- } else if (!zc.isUTF8() && (e.flag & EFS) != 0) { +- e.name = zc.toStringUTF8(bname, bname.length); ++ /* Checks ensureOpen() before invoke this method */ ++ private ZipEntry getZipEntry(String name, int pos) { ++ byte[] cen = zsrc.cen; ++ int nlen = CENNAM(cen, pos); ++ int elen = CENEXT(cen, pos); ++ int clen = CENCOM(cen, pos); ++ int flag = CENFLG(cen, pos); ++ if (name == null) { ++ if (!zc.isUTF8() && (flag & EFS) != 0) { ++ name = zc.toStringUTF8(cen, pos + CENHDR, nlen); + } else { +- e.name = zc.toString(bname, bname.length); +- } +- } +- e.xdostime = getEntryTime(jzentry); +- e.crc = getEntryCrc(jzentry); +- e.size = getEntrySize(jzentry); +- e.csize = getEntryCSize(jzentry); +- e.method = getEntryMethod(jzentry); +- e.setExtra0(getEntryBytes(jzentry, JZENTRY_EXTRA), false); +- byte[] bcomm = getEntryBytes(jzentry, JZENTRY_COMMENT); +- if (bcomm == null) { +- e.comment = null; +- } else { +- if (!zc.isUTF8() && (e.flag & EFS) != 0) { +- e.comment = zc.toStringUTF8(bcomm, bcomm.length); ++ name = zc.toString(cen, pos + CENHDR, nlen); ++ } ++ } ++ ZipEntry e = new ZipEntry(name); ++ e.flag = flag; ++ e.xdostime = CENTIM(cen, pos); ++ e.crc = CENCRC(cen, pos); ++ e.size = CENLEN(cen, pos); ++ e.csize = CENSIZ(cen, pos); ++ e.method = CENHOW(cen, pos); ++ if (elen != 0) { ++ int start = pos + CENHDR + nlen; ++ e.setExtra0(Arrays.copyOfRange(cen, start, start + elen), true); ++ } ++ if (clen != 0) { ++ int start = pos + CENHDR + nlen + elen; ++ if (!zc.isUTF8() && (flag & EFS) != 0) { ++ e.comment = zc.toStringUTF8(cen, start, clen); + } else { +- e.comment = zc.toString(bcomm, bcomm.length); ++ e.comment = zc.toString(cen, start, clen); + } + } + return e; + } + +- private static native long getNextEntry(long jzfile, int i); +- + /** + * Returns the number of entries in the ZIP file. ++ * + * @return the number of entries in the ZIP file + * @throws IllegalStateException if the zip file has been closed + */ + public int size() { +- ensureOpen(); +- return total; ++ synchronized (this) { ++ ensureOpen(); ++ return zsrc.total; ++ } + } + + /** +@@ -630,14 +591,15 @@ class ZipFile implements ZipConstants, Closeable { + * @throws IOException if an I/O error has occurred + */ + public void close() throws IOException { +- if (closeRequested) ++ if (closeRequested) { + return; ++ } + closeRequested = true; + + synchronized (this) { + // Close streams, release their inflaters + synchronized (streams) { +- if (false == streams.isEmpty()) { ++ if (!streams.isEmpty()) { + Map copy = new HashMap<>(streams); + streams.clear(); + for (Map.Entry e : copy.entrySet()) { +@@ -649,21 +611,17 @@ class ZipFile implements ZipConstants, Closeable { + } + } + } +- + // Release cached inflaters +- Inflater inf; + synchronized (inflaterCache) { +- while (null != (inf = inflaterCache.poll())) { ++ Inflater inf; ++ while ((inf = inflaterCache.poll()) != null) { + inf.end(); + } + } +- +- if (jzfile != 0) { +- // Close the zip file +- long zf = this.jzfile; +- jzfile = 0; +- +- close(zf); ++ // Release zip src ++ if (zsrc != null) { ++ Source.close(zsrc); ++ zsrc = null; + } + } + } +@@ -686,14 +644,11 @@ class ZipFile implements ZipConstants, Closeable { + close(); + } + +- private static native void close(long jzfile); +- + private void ensureOpen() { + if (closeRequested) { + throw new IllegalStateException("zip file closed"); + } +- +- if (jzfile == 0) { ++ if (zsrc == null) { + throw new IllegalStateException("The object is not initialized."); + } + } +@@ -709,40 +664,99 @@ class ZipFile implements ZipConstants, Closeable { + * (possibly compressed) zip file entry. + */ + private class ZipFileInputStream extends InputStream { +- private volatile boolean zfisCloseRequested = false; +- protected long jzentry; // address of jzentry data ++ private volatile boolean closeRequested = false; + private long pos; // current position within entry data + protected long rem; // number of remaining bytes within entry + protected long size; // uncompressed size of this entry + +- ZipFileInputStream(long jzentry) { +- pos = 0; +- rem = getEntryCSize(jzentry); +- size = getEntrySize(jzentry); +- this.jzentry = jzentry; ++ ZipFileInputStream(byte[] cen, int cenpos) throws IOException { ++ rem = CENSIZ(cen, cenpos); ++ size = CENLEN(cen, cenpos); ++ pos = CENOFF(cen, cenpos); ++ // zip64 ++ if (rem == ZIP64_MAGICVAL || size == ZIP64_MAGICVAL || ++ pos == ZIP64_MAGICVAL) { ++ checkZIP64(cen, cenpos); ++ } ++ // negative for lazy initialization, see getDataOffset(); ++ pos = - (pos + ZipFile.this.zsrc.locpos); ++ } ++ ++ private void checkZIP64(byte[] cen, int cenpos) throws IOException { ++ int off = cenpos + CENHDR + CENNAM(cen, cenpos); ++ int end = off + CENEXT(cen, cenpos); ++ while (off + 4 < end) { ++ int tag = get16(cen, off); ++ int sz = get16(cen, off + 2); ++ off += 4; ++ if (off + sz > end) // invalid data ++ break; ++ if (tag == EXTID_ZIP64) { ++ if (size == ZIP64_MAGICVAL) { ++ if (sz < 8 || (off + 8) > end) ++ break; ++ size = get64(cen, off); ++ sz -= 8; ++ off += 8; ++ } ++ if (rem == ZIP64_MAGICVAL) { ++ if (sz < 8 || (off + 8) > end) ++ break; ++ rem = get64(cen, off); ++ sz -= 8; ++ off += 8; ++ } ++ if (pos == ZIP64_MAGICVAL) { ++ if (sz < 8 || (off + 8) > end) ++ break; ++ pos = get64(cen, off); ++ sz -= 8; ++ off += 8; ++ } ++ break; ++ } ++ off += sz; ++ } ++ } ++ ++ /* The Zip file spec explicitly allows the LOC extra data size to ++ * be different from the CEN extra data size. Since we cannot trust ++ * the CEN extra data size, we need to read the LOC to determine ++ * the entry data offset. ++ */ ++ private long initDataOffset() throws IOException { ++ if (pos <= 0) { ++ byte[] loc = new byte[LOCHDR]; ++ pos = -pos; ++ int len = ZipFile.this.zsrc.readFullyAt(loc, 0, loc.length, pos); ++ if (len != LOCHDR) { ++ throw new ZipException("ZipFile error reading zip file"); ++ } ++ if (LOCSIG(loc) != LOCSIG) { ++ throw new ZipException("ZipFile invalid LOC header (bad signature)"); ++ } ++ pos += LOCHDR + LOCNAM(loc) + LOCEXT(loc); ++ } ++ return pos; + } + + public int read(byte b[], int off, int len) throws IOException { + synchronized (ZipFile.this) { +- long rem = this.rem; +- long pos = this.pos; ++ ensureOpenOrZipException(); ++ initDataOffset(); + if (rem == 0) { + return -1; + } +- if (len <= 0) { +- return 0; +- } + if (len > rem) { + len = (int) rem; + } +- +- // Check if ZipFile open +- ensureOpenOrZipException(); +- len = ZipFile.read(ZipFile.this.jzfile, jzentry, pos, b, +- off, len); ++ if (len <= 0) { ++ return 0; ++ } ++ len = ZipFile.this.zsrc.readAt(b, off, len, pos); + if (len > 0) { +- this.pos = (pos + len); +- this.rem = (rem - len); ++ pos += len; ++ rem -= len; + } + } + if (rem == 0) { +@@ -760,11 +774,16 @@ class ZipFile implements ZipConstants, Closeable { + } + } + +- public long skip(long n) { +- if (n > rem) +- n = rem; +- pos += n; +- rem -= n; ++ public long skip(long n) throws IOException { ++ synchronized (ZipFile.this) { ++ ensureOpenOrZipException(); ++ initDataOffset(); ++ if (n > rem) { ++ n = rem; ++ } ++ pos += n; ++ rem -= n; ++ } + if (rem == 0) { + close(); + } +@@ -780,17 +799,11 @@ class ZipFile implements ZipConstants, Closeable { + } + + public void close() { +- if (zfisCloseRequested) ++ if (closeRequested) { + return; +- zfisCloseRequested = true; +- +- rem = 0; +- synchronized (ZipFile.this) { +- if (jzentry != 0 && ZipFile.this.jzfile != 0) { +- freeEntry(ZipFile.this.jzfile, jzentry); +- jzentry = 0; +- } + } ++ closeRequested = true; ++ rem = 0; + synchronized (streams) { + streams.remove(this); + } +@@ -805,7 +818,10 @@ class ZipFile implements ZipConstants, Closeable { + sun.misc.SharedSecrets.setJavaUtilZipFileAccess( + new sun.misc.JavaUtilZipFileAccess() { + public boolean startsWithLocHeader(ZipFile zip) { +- return zip.startsWithLocHeader(); ++ return zip.zsrc.startsWithLoc; ++ } ++ public String[] getMetaInfEntryNames(ZipFile zip) { ++ return zip.getMetaInfEntryNames(); + } + public int getManifestNum(JarFile jar) { + return ((ZipFile)jar).getManifestNum(); +@@ -815,11 +831,27 @@ class ZipFile implements ZipConstants, Closeable { + } + + /** +- * Returns {@code true} if, and only if, the zip file begins with {@code +- * LOCSIG}. ++ * Returns an array of strings representing the names of all entries ++ * that begin with "META-INF/" (case ignored). This method is used ++ * in JarFile, via SharedSecrets, as an optimization when looking up ++ * manifest and signature file entries. Returns null if no entries ++ * were found. + */ +- private boolean startsWithLocHeader() { +- return locsig; ++ private String[] getMetaInfEntryNames() { ++ synchronized (this) { ++ ensureOpen(); ++ if (zsrc.metanames == null) { ++ return null; ++ } ++ String[] names = new String[zsrc.metanames.length]; ++ byte[] cen = zsrc.cen; ++ for (int i = 0; i < names.length; i++) { ++ int pos = zsrc.metanames[i]; ++ names[i] = new String(cen, pos + CENHDR, CENNAM(cen, pos), ++ StandardCharsets.UTF_8); ++ } ++ return names; ++ } + } + + /* +@@ -830,31 +862,506 @@ class ZipFile implements ZipConstants, Closeable { + private int getManifestNum() { + synchronized (this) { + ensureOpen(); +- return manifestNum; ++ return zsrc.manifestNum; + } + } ++ ++ private static class Source { ++ // "META-INF/".length() ++ private static final int META_INF_LEN = 9; ++ private final Key key; // the key in files ++ private int refs = 1; ++ ++ private RandomAccessFile zfile; // zfile of the underlying zip file ++ private byte[] cen; // CEN & ENDHDR ++ private long locpos; // position of first LOC header (usually 0) ++ private byte[] comment; // zip file comment ++ // list of meta entries in META-INF dir ++ private int[] metanames; ++ private int manifestNum = 0; // number of META-INF/MANIFEST.MF, case insensitive ++ private final boolean startsWithLoc; // true, if zip file starts with LOCSIG (usually true) ++ ++ // A Hashmap for all entries. ++ // ++ // A cen entry of Zip/JAR file. As we have one for every entry in every active Zip/JAR, ++ // We might have a lot of these in a typical system. In order to save space we don't ++ // keep the name in memory, but merely remember a 32 bit {@code hash} value of the ++ // entry name and its offset {@code pos} in the central directory hdeader. ++ // ++ // private static class Entry { ++ // int hash; // 32 bit hashcode on name ++ // int next; // hash chain: index into entries ++ // int pos; // Offset of central directory file header ++ // } ++ // private Entry[] entries; // array of hashed cen entry ++ // ++ // To reduce the total size of entries further, we use a int[] here to store 3 "int" ++ // {@code hash}, {@code next and {@code "pos for each entry. The entry can then be ++ // referred by their index of their positions in the {@code entries}. ++ // ++ private int[] entries; // array of hashed cen entry ++ private int addEntry(int index, int hash, int next, int pos) { ++ entries[index++] = hash; ++ entries[index++] = next; ++ entries[index++] = pos; ++ return index; ++ } ++ private int getEntryHash(int index) { return entries[index]; } ++ private int getEntryNext(int index) { return entries[index + 1]; } ++ private int getEntryPos(int index) { return entries[index + 2]; } ++ private static final int ZIP_ENDCHAIN = -1; ++ private int total; // total number of entries ++ private int[] table; // Hash chain heads: indexes into entries ++ private int tablelen; // number of hash heads ++ ++ private static class Key { ++ BasicFileAttributes attrs; ++ File file; ++ ++ public Key(File file, BasicFileAttributes attrs) { ++ this.attrs = attrs; ++ this.file = file; ++ } ++ ++ public int hashCode() { ++ long t = attrs.lastModifiedTime().toMillis(); ++ return ((int)(t ^ (t >>> 32))) + file.hashCode(); ++ } ++ ++ public boolean equals(Object obj) { ++ if (obj instanceof Key) { ++ Key key = (Key)obj; ++ if (!attrs.lastModifiedTime().equals(key.attrs.lastModifiedTime())) { ++ return false; ++ } ++ Object fk = attrs.fileKey(); ++ if (fk != null) { ++ return fk.equals(key.attrs.fileKey()); ++ } else { ++ return file.equals(key.file); ++ } ++ } ++ return false; ++ } ++ } ++ private static final HashMap files = new HashMap<>(); ++ ++ ++ public static Source get(File file, boolean toDelete) throws IOException { ++ Key key = null; ++ try { ++ key = new Key(file, ++ Files.readAttributes(file.toPath(), BasicFileAttributes.class)); ++ } catch (NoSuchFileException exception) { ++ throw new FileNotFoundException(exception.getMessage()); ++ } ++ Source src = null; ++ synchronized (files) { ++ src = files.get(key); ++ if (src != null) { ++ src.refs++; ++ return src; ++ } ++ } ++ src = new Source(key, toDelete); ++ ++ synchronized (files) { ++ if (files.containsKey(key)) { // someone else put in first ++ src.close(); // close the newly created one ++ src = files.get(key); ++ src.refs++; ++ return src; ++ } ++ files.put(key, src); ++ return src; ++ } ++ } ++ ++ private static void close(Source src) throws IOException { ++ synchronized (files) { ++ if (--src.refs == 0) { ++ files.remove(src.key); ++ src.close(); ++ } ++ } ++ } ++ ++ private Source(Key key, boolean toDelete) throws IOException { ++ this.key = key; ++ this.zfile = new RandomAccessFile(key.file, "r"); ++ if (toDelete) { ++ key.file.delete(); ++ } ++ try { ++ initCEN(-1); ++ byte[] buf = new byte[4]; ++ readFullyAt(buf, 0, 4, 0); ++ this.startsWithLoc = (LOCSIG(buf) == LOCSIG); ++ } catch (IOException x) { ++ try { ++ this.zfile.close(); ++ } catch (IOException xx) {} ++ throw x; ++ } ++ } ++ ++ private void close() throws IOException { ++ zfile.close(); ++ zfile = null; ++ cen = null; ++ entries = null; ++ table = null; ++ manifestNum = 0; ++ metanames = null; ++ } ++ ++ private static final int BUF_SIZE = 8192; ++ private final int readFullyAt(byte[] buf, int off, int len, long pos) ++ throws IOException ++ { ++ synchronized(zfile) { ++ zfile.seek(pos); ++ int N = len; ++ while (N > 0) { ++ int n = Math.min(BUF_SIZE, N); ++ zfile.readFully(buf, off, n); ++ off += n; ++ N -= n; ++ } ++ return len; ++ } ++ } ++ ++ private final int readAt(byte[] buf, int off, int len, long pos) ++ throws IOException ++ { ++ synchronized(zfile) { ++ zfile.seek(pos); ++ return zfile.read(buf, off, len); ++ } ++ } ++ ++ private static final int hashN(byte[] a, int off, int len) { ++ int h = 1; ++ while (len-- > 0) { ++ h = 31 * h + a[off++]; ++ } ++ return h; ++ } ++ ++ private static final int hash_append(int hash, byte b) { ++ return hash * 31 + b; ++ } + +- private static native long open(String name, int mode, long lastModified, +- boolean usemmap) throws IOException; +- private static native int getTotal(long jzfile); +- private static native boolean startsWithLOC(long jzfile); +- private static native int getManifestNum(long jzfile); +- private static native int read(long jzfile, long jzentry, +- long pos, byte[] b, int off, int len); +- +- // access to the native zentry object +- private static native long getEntryTime(long jzentry); +- private static native long getEntryCrc(long jzentry); +- private static native long getEntryCSize(long jzentry); +- private static native long getEntrySize(long jzentry); +- private static native int getEntryMethod(long jzentry); +- private static native int getEntryFlag(long jzentry); +- private static native byte[] getCommentBytes(long jzfile); +- +- private static final int JZENTRY_NAME = 0; +- private static final int JZENTRY_EXTRA = 1; +- private static final int JZENTRY_COMMENT = 2; +- private static native byte[] getEntryBytes(long jzentry, int type); +- +- private static native String getZipMessage(long jzfile); ++ private static class End { ++ int centot; // 4 bytes ++ long cenlen; // 4 bytes ++ long cenoff; // 4 bytes ++ long endpos; // 4 bytes ++ } ++ ++ /* ++ * Searches for end of central directory (END) header. The contents of ++ * the END header will be read and placed in endbuf. Returns the file ++ * position of the END header, otherwise returns -1 if the END header ++ * was not found or an error occurred. ++ */ ++ private End findEND() throws IOException { ++ long ziplen = zfile.length(); ++ if (ziplen <= 0) ++ zerror("zip file is empty"); ++ End end = new End(); ++ byte[] buf = new byte[READBLOCKSZ]; ++ long minHDR = (ziplen - END_MAXLEN) > 0 ? ziplen - END_MAXLEN : 0; ++ long minPos = minHDR - (buf.length - ENDHDR); ++ for (long pos = ziplen - buf.length; pos >= minPos; pos -= (buf.length - ENDHDR)) { ++ int off = 0; ++ if (pos < 0) { ++ // Pretend there are some NUL bytes before start of file ++ off = (int)-pos; ++ Arrays.fill(buf, 0, off, (byte)0); ++ } ++ int len = buf.length - off; ++ if (readFullyAt(buf, off, len, pos + off) != len ) { ++ zerror("zip END header not found"); ++ } ++ // Now scan the block backwards for END header signature ++ for (int i = buf.length - ENDHDR; i >= 0; i--) { ++ if (buf[i+0] == (byte)'P' && ++ buf[i+1] == (byte)'K' && ++ buf[i+2] == (byte)'\005' && ++ buf[i+3] == (byte)'\006') { ++ // Found ENDSIG header ++ byte[] endbuf = Arrays.copyOfRange(buf, i, i + ENDHDR); ++ end.centot = ENDTOT(endbuf); ++ end.cenlen = ENDSIZ(endbuf); ++ end.cenoff = ENDOFF(endbuf); ++ end.endpos = pos + i; ++ int comlen = ENDCOM(endbuf); ++ if (end.endpos + ENDHDR + comlen != ziplen) { ++ // ENDSIG matched, however the size of file comment in it does ++ // not match the real size. One "common" cause for this problem ++ // is some "extra" bytes are padded at the end of the zipfile. ++ // Let's do some extra verification, we don't care about the ++ // performance in this situation. ++ byte[] sbuf = new byte[4]; ++ long cenpos = end.endpos - end.cenlen; ++ long locpos = cenpos - end.cenoff; ++ if (cenpos < 0 || ++ locpos < 0 || ++ readFullyAt(sbuf, 0, sbuf.length, cenpos) != 4 || ++ GETSIG(sbuf) != CENSIG || ++ readFullyAt(sbuf, 0, sbuf.length, locpos) != 4 || ++ GETSIG(sbuf) != LOCSIG) { ++ continue; ++ } ++ } ++ if (comlen > 0) { // this zip file has comlen ++ comment = new byte[comlen]; ++ if (readFullyAt(comment, 0, comlen, end.endpos + ENDHDR) != comlen) { ++ zerror("zip comment read failed"); ++ } ++ } ++ if (end.cenlen == ZIP64_MAGICVAL || ++ end.cenoff == ZIP64_MAGICVAL || ++ end.centot == ZIP64_MAGICCOUNT) ++ { ++ // need to find the zip64 end; ++ try { ++ byte[] loc64 = new byte[ZIP64_LOCHDR]; ++ if (readFullyAt(loc64, 0, loc64.length, end.endpos - ZIP64_LOCHDR) ++ != loc64.length || GETSIG(loc64) != ZIP64_LOCSIG) { ++ return end; ++ } ++ long end64pos = ZIP64_LOCOFF(loc64); ++ byte[] end64buf = new byte[ZIP64_ENDHDR]; ++ if (readFullyAt(end64buf, 0, end64buf.length, end64pos) ++ != end64buf.length || GETSIG(end64buf) != ZIP64_ENDSIG) { ++ return end; ++ } ++ // end64 found, re-calcualte everything. ++ end.cenlen = ZIP64_ENDSIZ(end64buf); ++ end.cenoff = ZIP64_ENDOFF(end64buf); ++ end.centot = (int)ZIP64_ENDTOT(end64buf); // assume total < 2g ++ end.endpos = end64pos; ++ } catch (IOException x) {} // no zip64 loc/end ++ } ++ return end; ++ } ++ } ++ } ++ zerror("zip END header not found"); ++ return null; //make compiler happy ++ } ++ ++ // Reads zip file central directory. ++ private void initCEN(int knownTotal) throws IOException { ++ if (knownTotal == -1) { ++ End end = findEND(); ++ if (end.endpos == 0) { ++ locpos = 0; ++ total = 0; ++ entries = new int[0]; ++ cen = null; ++ return; // only END header present ++ } ++ if (end.cenlen > end.endpos) ++ zerror("invalid END header (bad central directory size)"); ++ long cenpos = end.endpos - end.cenlen; // position of CEN table ++ // Get position of first local file (LOC) header, taking into ++ // account that there may be a stub prefixed to the zip file. ++ locpos = cenpos - end.cenoff; ++ if (locpos < 0) { ++ zerror("invalid END header (bad central directory offset)"); ++ } ++ // read in the CEN and END ++ cen = new byte[(int)(end.cenlen + ENDHDR)]; ++ if (readFullyAt(cen, 0, cen.length, cenpos) != end.cenlen + ENDHDR) { ++ zerror("read CEN tables failed"); ++ } ++ total = end.centot; ++ } else { ++ total = knownTotal; ++ } ++ // hash table for entries ++ entries = new int[total * 3]; ++ tablelen = ((total/2) | 1); // Odd -> fewer collisions ++ table = new int[tablelen]; ++ Arrays.fill(table, ZIP_ENDCHAIN); ++ int idx = 0; ++ int hash = 0; ++ int next = -1; ++ ++ // list for all meta entries ++ ArrayList metanamesList = null; ++ ++ // Iterate through the entries in the central directory ++ int i = 0; ++ int hsh = 0; ++ int pos = 0; ++ int limit = cen.length - ENDHDR; ++ manifestNum = 0; ++ while (pos + CENHDR <= limit) { ++ if (i >= total) { ++ // This will only happen if the zip file has an incorrect ++ // ENDTOT field, which usually means it contains more than ++ // 65535 entries. ++ initCEN(countCENHeaders(cen, limit)); ++ return; ++ } ++ if (CENSIG(cen, pos) != CENSIG) ++ zerror("invalid CEN header (bad signature)"); ++ int method = CENHOW(cen, pos); ++ int nlen = CENNAM(cen, pos); ++ int elen = CENEXT(cen, pos); ++ int clen = CENCOM(cen, pos); ++ if ((CENFLG(cen, pos) & 1) != 0) ++ zerror("invalid CEN header (encrypted entry)"); ++ if (method != STORED && method != DEFLATED) ++ zerror("invalid CEN header (bad compression method: " + method + ")"); ++ if (pos + CENHDR + nlen > limit) ++ zerror("invalid CEN header (bad header size)"); ++ // Record the CEN offset and the name hash in our hash cell. ++ hash = hashN(cen, pos + CENHDR, nlen); ++ hsh = (hash & 0x7fffffff) % tablelen; ++ next = table[hsh]; ++ table[hsh] = idx; ++ idx = addEntry(idx, hash, next, pos); ++ // Adds name to metanames. ++ if (isMetaName(cen, pos + CENHDR, nlen)) { ++ if (metanamesList == null) ++ metanamesList = new ArrayList<>(4); ++ metanamesList.add(pos); ++ if (isManifestName(cen, pos + CENHDR + ++ META_INF_LEN, nlen - META_INF_LEN)) { ++ manifestNum++; ++ } ++ } ++ // skip ext and comment ++ pos += (CENHDR + nlen + elen + clen); ++ i++; ++ } ++ total = i; ++ if (metanamesList != null) { ++ metanames = new int[metanamesList.size()]; ++ for (int j = 0, len = metanames.length; j < len; j++) { ++ metanames[j] = metanamesList.get(j); ++ } ++ } ++ if (pos + ENDHDR != cen.length) { ++ zerror("invalid CEN header (bad header size)"); ++ } ++ } ++ ++ private static void zerror(String msg) throws ZipException { ++ throw new ZipException(msg); ++ } ++ ++ /* ++ * Returns the {@code pos} of the zip cen entry corresponding to the ++ * specified entry name, or -1 if not found. ++ */ ++ private int getEntryPos(byte[] name, boolean addSlash) { ++ if (total == 0) { ++ return -1; ++ } ++ int hsh = hashN(name, 0, name.length); ++ int idx = table[(hsh & 0x7fffffff) % tablelen]; ++ /* ++ * This while loop is an optimization where a double lookup ++ * for name and name+/ is being performed. The name char ++ * array has enough room at the end to try again with a ++ * slash appended if the first table lookup does not succeed. ++ */ ++ while(true) { ++ /* ++ * Search down the target hash chain for a entry whose ++ * 32 bit hash matches the hashed name. ++ */ ++ while (idx != ZIP_ENDCHAIN) { ++ if (getEntryHash(idx) == hsh) { ++ // The CEN name must match the specfied one ++ int pos = getEntryPos(idx); ++ if (name.length == CENNAM(cen, pos)) { ++ boolean matched = true; ++ int nameoff = pos + CENHDR; ++ for (int i = 0; i < name.length; i++) { ++ if (name[i] != cen[nameoff++]) { ++ matched = false; ++ break; ++ } ++ } ++ if (matched) { ++ return pos; ++ } ++ } ++ } ++ idx = getEntryNext(idx); ++ } ++ /* If not addSlash, or slash is already there, we are done */ ++ if (!addSlash || name[name.length - 1] == '/') { ++ return -1; ++ } ++ /* Add slash and try once more */ ++ name = Arrays.copyOf(name, name.length + 1); ++ name[name.length - 1] = '/'; ++ hsh = hash_append(hsh, (byte)'/'); ++ //idx = table[hsh % tablelen]; ++ idx = table[(hsh & 0x7fffffff) % tablelen]; ++ addSlash = false; ++ } ++ } ++ ++ /** ++ * Returns true if the bytes represent a non-directory name ++ * beginning with "META-INF/", disregarding ASCII case. ++ */ ++ private static boolean isMetaName(byte[] name, int off, int len) { ++ // Use the "oldest ASCII trick in the book" ++ return len > 9 // "META-INF/".length() ++ && name[off + len - 1] != '/' // non-directory ++ && (name[off++] | 0x20) == 'm' ++ && (name[off++] | 0x20) == 'e' ++ && (name[off++] | 0x20) == 't' ++ && (name[off++] | 0x20) == 'a' ++ && (name[off++] ) == '-' ++ && (name[off++] | 0x20) == 'i' ++ && (name[off++] | 0x20) == 'n' ++ && (name[off++] | 0x20) == 'f' ++ && (name[off] ) == '/'; ++ } ++ ++ /* ++ * Check if the bytes represents a name equals to MANIFEST.MF ++ */ ++ private boolean isManifestName(byte[] name, int off, int len) { ++ return (len == 11 // "MANIFEST.MF".length() ++ && (name[off++] | 0x20) == 'm' ++ && (name[off++] | 0x20) == 'a' ++ && (name[off++] | 0x20) == 'n' ++ && (name[off++] | 0x20) == 'i' ++ && (name[off++] | 0x20) == 'f' ++ && (name[off++] | 0x20) == 'e' ++ && (name[off++] | 0x20) == 's' ++ && (name[off++] | 0x20) == 't' ++ && (name[off++] ) == '.' ++ && (name[off++] | 0x20) == 'm' ++ && (name[off] | 0x20) == 'f'); ++ } ++ ++ /* ++ * Counts the number of CEN headers in a central directory extending ++ * from BEG to END. Might return a bogus answer if the zip file is ++ * corrupt, but will not crash. ++ */ ++ static int countCENHeaders(byte[] cen, int end) { ++ int count = 0; ++ int pos = 0; ++ while (pos + CENHDR <= end) { ++ count++; ++ pos += (CENHDR + CENNAM(cen, pos) + CENEXT(cen, pos) + CENCOM(cen, pos)); ++ } ++ return count; ++ } ++ } + } +diff --git a/jdk/src/share/classes/java/util/zip/ZipUtils.java b/jdk/src/share/classes/java/util/zip/ZipUtils.java +index cd8b05278..a9b9db948 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipUtils.java ++++ b/jdk/src/share/classes/java/util/zip/ZipUtils.java +@@ -29,6 +29,8 @@ import java.nio.file.attribute.FileTime; + import java.util.Date; + import java.util.concurrent.TimeUnit; + ++import static java.util.zip.ZipConstants.ENDHDR; ++ + class ZipUtils { + + // used to adjust values between Windows and java epoch +@@ -126,7 +128,7 @@ class ZipUtils { + * The bytes are assumed to be in Intel (little-endian) byte order. + */ + public static final int get16(byte b[], int off) { +- return Byte.toUnsignedInt(b[off]) | (Byte.toUnsignedInt(b[off+1]) << 8); ++ return (b[off] & 0xff) | ((b[off + 1] & 0xff) << 8); + } + + /** +@@ -144,4 +146,79 @@ class ZipUtils { + public static final long get64(byte b[], int off) { + return get32(b, off) | (get32(b, off+4) << 32); + } ++ ++ // fields access methods ++ static final int CH(byte[] b, int n) { ++ return b[n] & 0xff ; ++ } ++ ++ static final int SH(byte[] b, int n) { ++ return (b[n] & 0xff) | ((b[n + 1] & 0xff) << 8); ++ } ++ ++ static final long LG(byte[] b, int n) { ++ return ((SH(b, n)) | (SH(b, n + 2) << 16)) & 0xffffffffL; ++ } ++ ++ static final long LL(byte[] b, int n) { ++ return (LG(b, n)) | (LG(b, n + 4) << 32); ++ } ++ ++ static final long GETSIG(byte[] b) { ++ return LG(b, 0); ++ } ++ ++ // local file (LOC) header fields ++ static final long LOCSIG(byte[] b) { return LG(b, 0); } // signature ++ static final int LOCVER(byte[] b) { return SH(b, 4); } // version needed to extract ++ static final int LOCFLG(byte[] b) { return SH(b, 6); } // general purpose bit flags ++ static final int LOCHOW(byte[] b) { return SH(b, 8); } // compression method ++ static final long LOCTIM(byte[] b) { return LG(b, 10);} // modification time ++ static final long LOCCRC(byte[] b) { return LG(b, 14);} // crc of uncompressed data ++ static final long LOCSIZ(byte[] b) { return LG(b, 18);} // compressed data size ++ static final long LOCLEN(byte[] b) { return LG(b, 22);} // uncompressed data size ++ static final int LOCNAM(byte[] b) { return SH(b, 26);} // filename length ++ static final int LOCEXT(byte[] b) { return SH(b, 28);} // extra field length ++ ++ // extra local (EXT) header fields ++ static final long EXTCRC(byte[] b) { return LG(b, 4);} // crc of uncompressed data ++ static final long EXTSIZ(byte[] b) { return LG(b, 8);} // compressed size ++ static final long EXTLEN(byte[] b) { return LG(b, 12);} // uncompressed size ++ ++ // end of central directory header (END) fields ++ static final int ENDSUB(byte[] b) { return SH(b, 8); } // number of entries on this disk ++ static final int ENDTOT(byte[] b) { return SH(b, 10);} // total number of entries ++ static final long ENDSIZ(byte[] b) { return LG(b, 12);} // central directory size ++ static final long ENDOFF(byte[] b) { return LG(b, 16);} // central directory offset ++ static final int ENDCOM(byte[] b) { return SH(b, 20);} // size of zip file comment ++ static final int ENDCOM(byte[] b, int off) { return SH(b, off + 20);} ++ ++ // zip64 end of central directory recoder fields ++ static final long ZIP64_ENDTOD(byte[] b) { return LL(b, 24);} // total number of entries on disk ++ static final long ZIP64_ENDTOT(byte[] b) { return LL(b, 32);} // total number of entries ++ static final long ZIP64_ENDSIZ(byte[] b) { return LL(b, 40);} // central directory size ++ static final long ZIP64_ENDOFF(byte[] b) { return LL(b, 48);} // central directory offset ++ static final long ZIP64_LOCOFF(byte[] b) { return LL(b, 8);} // zip64 end offset ++ ++ // central directory header (CEN) fields ++ static final long CENSIG(byte[] b, int pos) { return LG(b, pos + 0); } ++ static final int CENVEM(byte[] b, int pos) { return SH(b, pos + 4); } ++ static final int CENVER(byte[] b, int pos) { return SH(b, pos + 6); } ++ static final int CENFLG(byte[] b, int pos) { return SH(b, pos + 8); } ++ static final int CENHOW(byte[] b, int pos) { return SH(b, pos + 10);} ++ static final long CENTIM(byte[] b, int pos) { return LG(b, pos + 12);} ++ static final long CENCRC(byte[] b, int pos) { return LG(b, pos + 16);} ++ static final long CENSIZ(byte[] b, int pos) { return LG(b, pos + 20);} ++ static final long CENLEN(byte[] b, int pos) { return LG(b, pos + 24);} ++ static final int CENNAM(byte[] b, int pos) { return SH(b, pos + 28);} ++ static final int CENEXT(byte[] b, int pos) { return SH(b, pos + 30);} ++ static final int CENCOM(byte[] b, int pos) { return SH(b, pos + 32);} ++ static final int CENDSK(byte[] b, int pos) { return SH(b, pos + 34);} ++ static final int CENATT(byte[] b, int pos) { return SH(b, pos + 36);} ++ static final long CENATX(byte[] b, int pos) { return LG(b, pos + 38);} ++ static final long CENOFF(byte[] b, int pos) { return LG(b, pos + 42);} ++ ++ // The END header is followed by a variable length comment of size < 64k. ++ static final long END_MAXLEN = 0xFFFF + ENDHDR; ++ static final int READBLOCKSZ = 128; + } +diff --git a/jdk/src/share/classes/sun/misc/JavaUtilZipFileAccess.java b/jdk/src/share/classes/sun/misc/JavaUtilZipFileAccess.java +index 0d931d1db..d140f54a5 100644 +--- a/jdk/src/share/classes/sun/misc/JavaUtilZipFileAccess.java ++++ b/jdk/src/share/classes/sun/misc/JavaUtilZipFileAccess.java +@@ -31,5 +31,6 @@ import java.util.zip.ZipFile; + public interface JavaUtilZipFileAccess { + public boolean startsWithLocHeader(ZipFile zip); + public int getManifestNum(JarFile zip); ++ public String[] getMetaInfEntryNames(ZipFile zip); + } + +diff --git a/jdk/src/share/classes/sun/misc/VM.java b/jdk/src/share/classes/sun/misc/VM.java +index 3e64628c6..cb757b3e3 100644 +--- a/jdk/src/share/classes/sun/misc/VM.java ++++ b/jdk/src/share/classes/sun/misc/VM.java +@@ -310,9 +310,6 @@ public class VM { + // used by java.lang.Integer.IntegerCache + props.remove("java.lang.Integer.IntegerCache.high"); + +- // used by java.util.zip.ZipFile +- props.remove("sun.zip.disableMemoryMapping"); +- + // used by sun.launcher.LauncherHelper + props.remove("sun.java.launcher.diag"); + +diff --git a/jdk/src/share/native/java/util/zip/ZipFile.c b/jdk/src/share/native/java/util/zip/ZipFile.c +deleted file mode 100644 +index 8e3698290..000000000 +--- a/jdk/src/share/native/java/util/zip/ZipFile.c ++++ /dev/null +@@ -1,403 +0,0 @@ +-/* +- * Copyright (c) 1998, 2015, 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 +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/* +- * Native method support for java.util.zip.ZipFile +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include "jlong.h" +-#include "jvm.h" +-#include "jni.h" +-#include "jni_util.h" +-#include "zip_util.h" +-#ifdef WIN32 +-#include "io_util_md.h" +-#else +-#include "io_util.h" +-#endif +- +-#include "java_util_zip_ZipFile.h" +-#include "java_util_jar_JarFile.h" +- +-#define DEFLATED 8 +-#define STORED 0 +- +-static jfieldID jzfileID; +- +-static int OPEN_READ = java_util_zip_ZipFile_OPEN_READ; +-static int OPEN_DELETE = java_util_zip_ZipFile_OPEN_DELETE; +- +-JNIEXPORT void JNICALL +-Java_java_util_zip_ZipFile_initIDs(JNIEnv *env, jclass cls) +-{ +- jzfileID = (*env)->GetFieldID(env, cls, "jzfile", "J"); +- assert(jzfileID != 0); +-} +- +-static void +-ThrowZipException(JNIEnv *env, const char *msg) +-{ +- jstring s = NULL; +- jobject x; +- +- if (msg != NULL) { +- s = JNU_NewStringPlatform(env, msg); +- } +- if (s != NULL) { +- x = JNU_NewObjectByName(env, +- "java/util/zip/ZipException", +- "(Ljava/lang/String;)V", s); +- if (x != NULL) { +- (*env)->Throw(env, x); +- } +- } +-} +- +-JNIEXPORT jlong JNICALL +-Java_java_util_zip_ZipFile_open(JNIEnv *env, jclass cls, jstring name, +- jint mode, jlong lastModified, +- jboolean usemmap) +-{ +- const char *path = JNU_GetStringPlatformChars(env, name, 0); +- char *msg = 0; +- jlong result = 0; +- int flag = 0; +- jzfile *zip = 0; +- +- if (mode & OPEN_READ) flag |= O_RDONLY; +- if (mode & OPEN_DELETE) flag |= JVM_O_DELETE; +- +- if (path != 0) { +- zip = ZIP_Get_From_Cache(path, &msg, lastModified); +- if (zip == 0 && msg == 0) { +- ZFILE zfd = 0; +-#ifdef WIN32 +- zfd = winFileHandleOpen(env, name, flag); +- if (zfd == -1) { +- /* Exception already pending. */ +- goto finally; +- } +-#else +- zfd = JVM_Open(path, flag, 0); +- if (zfd < 0) { +- throwFileNotFoundException(env, name); +- goto finally; +- } +-#endif +- zip = ZIP_Put_In_Cache0(path, zfd, &msg, lastModified, usemmap); +- } +- +- if (zip != 0) { +- result = ptr_to_jlong(zip); +- } else if (msg != 0) { +- ThrowZipException(env, msg); +- free(msg); +- } else if (errno == ENOMEM) { +- JNU_ThrowOutOfMemoryError(env, 0); +- } else { +- ThrowZipException(env, "error in opening zip file"); +- } +-finally: +- JNU_ReleaseStringPlatformChars(env, name, path); +- } +- return result; +-} +- +-JNIEXPORT jint JNICALL +-Java_java_util_zip_ZipFile_getTotal(JNIEnv *env, jclass cls, jlong zfile) +-{ +- jzfile *zip = jlong_to_ptr(zfile); +- +- return zip->total; +-} +- +-JNIEXPORT jboolean JNICALL +-Java_java_util_zip_ZipFile_startsWithLOC(JNIEnv *env, jclass cls, jlong zfile) +-{ +- jzfile *zip = jlong_to_ptr(zfile); +- +- return zip->locsig; +-} +- +-JNIEXPORT jint JNICALL +-Java_java_util_zip_ZipFile_getManifestNum(JNIEnv *env, jclass cls, jlong zfile) +-{ +- jzfile *zip = jlong_to_ptr(zfile); +- +- return zip->manifestNum; +-} +- +-JNIEXPORT void JNICALL +-Java_java_util_zip_ZipFile_close(JNIEnv *env, jclass cls, jlong zfile) +-{ +- ZIP_Close(jlong_to_ptr(zfile)); +-} +- +-JNIEXPORT jlong JNICALL +-Java_java_util_zip_ZipFile_getEntry(JNIEnv *env, jclass cls, jlong zfile, +- jbyteArray name, jboolean addSlash) +-{ +-#define MAXNAME 1024 +- jzfile *zip = jlong_to_ptr(zfile); +- jsize ulen = (*env)->GetArrayLength(env, name); +- char buf[MAXNAME+2], *path; +- jzentry *ze; +- +- if (ulen > MAXNAME) { +- path = malloc(ulen + 2); +- if (path == 0) { +- JNU_ThrowOutOfMemoryError(env, 0); +- return 0; +- } +- } else { +- path = buf; +- } +- (*env)->GetByteArrayRegion(env, name, 0, ulen, (jbyte *)path); +- path[ulen] = '\0'; +- ze = ZIP_GetEntry2(zip, path, (jint)ulen, addSlash); +- if (path != buf) { +- free(path); +- } +- return ptr_to_jlong(ze); +-} +- +-JNIEXPORT void JNICALL +-Java_java_util_zip_ZipFile_freeEntry(JNIEnv *env, jclass cls, jlong zfile, +- jlong zentry) +-{ +- jzfile *zip = jlong_to_ptr(zfile); +- jzentry *ze = jlong_to_ptr(zentry); +- ZIP_FreeEntry(zip, ze); +-} +- +-JNIEXPORT jlong JNICALL +-Java_java_util_zip_ZipFile_getNextEntry(JNIEnv *env, jclass cls, jlong zfile, +- jint n) +-{ +- jzentry *ze = ZIP_GetNextEntry(jlong_to_ptr(zfile), n); +- return ptr_to_jlong(ze); +-} +- +-JNIEXPORT jint JNICALL +-Java_java_util_zip_ZipFile_getEntryMethod(JNIEnv *env, jclass cls, jlong zentry) +-{ +- jzentry *ze = jlong_to_ptr(zentry); +- return ze->csize != 0 ? DEFLATED : STORED; +-} +- +-JNIEXPORT jint JNICALL +-Java_java_util_zip_ZipFile_getEntryFlag(JNIEnv *env, jclass cls, jlong zentry) +-{ +- jzentry *ze = jlong_to_ptr(zentry); +- return ze->flag; +-} +- +-JNIEXPORT jlong JNICALL +-Java_java_util_zip_ZipFile_getEntryCSize(JNIEnv *env, jclass cls, jlong zentry) +-{ +- jzentry *ze = jlong_to_ptr(zentry); +- return ze->csize != 0 ? ze->csize : ze->size; +-} +- +-JNIEXPORT jlong JNICALL +-Java_java_util_zip_ZipFile_getEntrySize(JNIEnv *env, jclass cls, jlong zentry) +-{ +- jzentry *ze = jlong_to_ptr(zentry); +- return ze->size; +-} +- +-JNIEXPORT jlong JNICALL +-Java_java_util_zip_ZipFile_getEntryTime(JNIEnv *env, jclass cls, jlong zentry) +-{ +- jzentry *ze = jlong_to_ptr(zentry); +- return (jlong)ze->time & 0xffffffffUL; +-} +- +-JNIEXPORT jlong JNICALL +-Java_java_util_zip_ZipFile_getEntryCrc(JNIEnv *env, jclass cls, jlong zentry) +-{ +- jzentry *ze = jlong_to_ptr(zentry); +- return (jlong)ze->crc & 0xffffffffUL; +-} +- +-JNIEXPORT jbyteArray JNICALL +-Java_java_util_zip_ZipFile_getCommentBytes(JNIEnv *env, +- jclass cls, +- jlong zfile) +-{ +- jzfile *zip = jlong_to_ptr(zfile); +- jbyteArray jba = NULL; +- +- if (zip->comment != NULL) { +- if ((jba = (*env)->NewByteArray(env, zip->clen)) == NULL) +- return NULL; +- (*env)->SetByteArrayRegion(env, jba, 0, zip->clen, (jbyte*)zip->comment); +- } +- return jba; +-} +- +-JNIEXPORT jbyteArray JNICALL +-Java_java_util_zip_ZipFile_getEntryBytes(JNIEnv *env, +- jclass cls, +- jlong zentry, jint type) +-{ +- jzentry *ze = jlong_to_ptr(zentry); +- int len = 0; +- jbyteArray jba = NULL; +- switch (type) { +- case java_util_zip_ZipFile_JZENTRY_NAME: +- if (ze->name != 0) { +- len = (int)ze->nlen; +- if (len == 0 || (jba = (*env)->NewByteArray(env, len)) == NULL) +- break; +- (*env)->SetByteArrayRegion(env, jba, 0, len, (jbyte *)ze->name); +- } +- break; +- case java_util_zip_ZipFile_JZENTRY_EXTRA: +- if (ze->extra != 0) { +- unsigned char *bp = (unsigned char *)&ze->extra[0]; +- len = (bp[0] | (bp[1] << 8)); +- if (len <= 0 || (jba = (*env)->NewByteArray(env, len)) == NULL) +- break; +- (*env)->SetByteArrayRegion(env, jba, 0, len, &ze->extra[2]); +- } +- break; +- case java_util_zip_ZipFile_JZENTRY_COMMENT: +- if (ze->comment != 0) { +- len = (int)strlen(ze->comment); +- if (len == 0 || (jba = (*env)->NewByteArray(env, len)) == NULL) +- break; +- (*env)->SetByteArrayRegion(env, jba, 0, len, (jbyte*)ze->comment); +- } +- break; +- } +- return jba; +-} +- +-JNIEXPORT jint JNICALL +-Java_java_util_zip_ZipFile_read(JNIEnv *env, jclass cls, jlong zfile, +- jlong zentry, jlong pos, jbyteArray bytes, +- jint off, jint len) +-{ +- jzfile *zip = jlong_to_ptr(zfile); +- char *msg; +- +-#define BUFSIZE 8192 +- /* copy via tmp stack buffer: */ +- jbyte buf[BUFSIZE]; +- +- if (len > BUFSIZE) { +- len = BUFSIZE; +- } +- +- ZIP_Lock(zip); +- len = ZIP_Read(zip, jlong_to_ptr(zentry), pos, buf, len); +- msg = zip->msg; +- ZIP_Unlock(zip); +- if (len != -1) { +- (*env)->SetByteArrayRegion(env, bytes, off, len, buf); +- } +- +- if (len == -1) { +- if (msg != 0) { +- ThrowZipException(env, msg); +- } else { +- char errmsg[128]; +- sprintf(errmsg, "errno: %d, error: %s\n", +- errno, "Error reading ZIP file"); +- JNU_ThrowIOExceptionWithLastError(env, errmsg); +- } +- } +- +- return len; +-} +- +-/* +- * Returns an array of strings representing the names of all entries +- * that begin with "META-INF/" (case ignored). This native method is +- * used in JarFile as an optimization when looking up manifest and +- * signature file entries. Returns null if no entries were found. +- */ +-JNIEXPORT jobjectArray JNICALL +-Java_java_util_jar_JarFile_getMetaInfEntryNames(JNIEnv *env, jobject obj) +-{ +- jlong zfile = (*env)->GetLongField(env, obj, jzfileID); +- jzfile *zip; +- int i, count; +- jobjectArray result = 0; +- +- if (zfile == 0) { +- JNU_ThrowByName(env, +- "java/lang/IllegalStateException", "zip file closed"); +- return NULL; +- } +- zip = jlong_to_ptr(zfile); +- +- /* count the number of valid ZIP metanames */ +- count = 0; +- if (zip->metanames != 0) { +- for (i = 0; i < zip->metacount; i++) { +- if (zip->metanames[i] != 0) { +- count++; +- } +- } +- } +- +- /* If some names were found then build array of java strings */ +- if (count > 0) { +- jclass cls = JNU_ClassString(env); +- CHECK_NULL_RETURN(cls, NULL); +- result = (*env)->NewObjectArray(env, count, cls, 0); +- CHECK_NULL_RETURN(result, NULL); +- if (result != 0) { +- for (i = 0; i < count; i++) { +- jstring str = (*env)->NewStringUTF(env, zip->metanames[i]); +- if (str == 0) { +- break; +- } +- (*env)->SetObjectArrayElement(env, result, i, str); +- (*env)->DeleteLocalRef(env, str); +- } +- } +- } +- return result; +-} +- +-JNIEXPORT jstring JNICALL +-Java_java_util_zip_ZipFile_getZipMessage(JNIEnv *env, jclass cls, jlong zfile) +-{ +- jzfile *zip = jlong_to_ptr(zfile); +- char *msg = zip->msg; +- if (msg == NULL) { +- return NULL; +- } +- return JNU_NewStringPlatform(env, msg); +-} +diff --git a/jdk/src/share/native/java/util/zip/zip_util.c b/jdk/src/share/native/java/util/zip/zip_util.c +index ff59c5ecc..ffe094065 100644 +--- a/jdk/src/share/native/java/util/zip/zip_util.c ++++ b/jdk/src/share/native/java/util/zip/zip_util.c +@@ -74,8 +74,6 @@ static void freeCEN(jzfile *); + #define PATH_MAX 1024 + #endif + +-#define META_INF_LEN 9 /* "META-INF/".length() */ +- + static jint INITIAL_META_COUNT = 2; /* initial number of entries in meta name array */ + + #ifdef LINUX +@@ -475,25 +473,6 @@ isMetaName(const char *name, int length) + return 1; + } + +-/* +- * Check if the bytes represents a name equals to MANIFEST.MF +- */ +-static int +-isManifestName(const char *name, int length) +-{ +- const char *s; +- if (length != (int)sizeof("MANIFEST.MF") - 1) +- return 0; +- for (s = "MANIFEST.MF"; *s != '\0'; s++) { +- char c = *name++; +- // Avoid toupper; it's locale-dependent +- if (c >= 'a' && c <= 'z') c += 'A' - 'a'; +- if (*s != c) +- return 0; +- } +- return 1; +-} +- + /* + * Increases the capacity of zip->metanames. + * Returns non-zero in case of allocation error. +@@ -564,7 +543,6 @@ freeCEN(jzfile *zip) + { + free(zip->entries); zip->entries = NULL; + free(zip->table); zip->table = NULL; +- zip->manifestNum = 0; + freeMetaNames(zip); + } + +@@ -718,8 +696,6 @@ readCEN(jzfile *zip, jint knownTotal) + for (j = 0; j < tablelen; j++) + table[j] = ZIP_ENDCHAIN; + +- zip->manifestNum = 0; +- + /* Iterate through the entries in the central directory */ + for (i = 0, cp = cenbuf; cp <= cenend - CENHDR; i++, cp += CENSIZE(cp)) { + /* Following are unsigned 16-bit */ +@@ -747,12 +723,9 @@ readCEN(jzfile *zip, jint knownTotal) + ZIP_FORMAT_ERROR("invalid CEN header (bad header size)"); + + /* if the entry is metadata add it to our metadata names */ +- if (isMetaName((char *)cp+CENHDR, nlen)) { +- if (isManifestName((char *)cp+CENHDR+META_INF_LEN, nlen-META_INF_LEN)) +- zip->manifestNum++; ++ if (isMetaName((char *)cp+CENHDR, nlen)) + if (addMetaName(zip, (char *)cp+CENHDR, nlen) != 0) + goto Catch; +- } + + /* Record the CEN offset and the name hash in our hash cell. */ + entries[i].cenpos = cenpos + (cp - cenbuf); +diff --git a/jdk/src/share/native/java/util/zip/zip_util.h b/jdk/src/share/native/java/util/zip/zip_util.h +index 2a7ae4b7e..a64668cd6 100644 +--- a/jdk/src/share/native/java/util/zip/zip_util.h ++++ b/jdk/src/share/native/java/util/zip/zip_util.h +@@ -229,7 +229,6 @@ typedef struct jzfile { /* Zip file */ + char **metanames; /* array of meta names (may have null names) */ + jint metacurrent; /* the next empty slot in metanames array */ + jint metacount; /* number of slots in metanames array */ +- jint manifestNum; /* number of META-INF/MANIFEST.MF, case insensitive */ + jlong lastModified; /* last modified time */ + jlong locpos; /* position of first LOC header (usually 0) */ + } jzfile; +diff --git a/jdk/test/java/nio/file/spi/TestProvider.java b/jdk/test/java/nio/file/spi/TestProvider.java +index b2744f4c0..c975b8e27 100644 +--- a/jdk/test/java/nio/file/spi/TestProvider.java ++++ b/jdk/test/java/nio/file/spi/TestProvider.java +@@ -21,20 +21,34 @@ + * questions. + */ + +-import java.nio.file.spi.FileSystemProvider; ++import java.io.File; + import java.nio.file.*; +-import java.nio.file.attribute.*; ++import java.nio.file.attribute.BasicFileAttributes; ++import java.nio.file.attribute.FileAttribute; ++import java.nio.file.attribute.FileAttributeView; ++import java.nio.file.attribute.UserPrincipalLookupService; ++import java.nio.file.spi.FileSystemProvider; + import java.nio.channels.SeekableByteChannel; + import java.net.URI; +-import java.util.*; + import java.io.IOException; ++import java.util.Collections; ++import java.util.Iterator; ++import java.util.Map; ++import java.util.Set; + + public class TestProvider extends FileSystemProvider { + +- private final FileSystem theFileSystem; ++ private final FileSystemProvider defaultProvider; ++ private final TestFileSystem theFileSystem; + + public TestProvider(FileSystemProvider defaultProvider) { +- theFileSystem = new TestFileSystem(this); ++ this.defaultProvider = defaultProvider; ++ FileSystem fs = defaultProvider.getFileSystem(URI.create("file:/")); ++ this.theFileSystem = new TestFileSystem(fs, this); ++ } ++ ++ FileSystemProvider defaultProvider() { ++ return defaultProvider; + } + + @Override +@@ -43,8 +57,8 @@ public class TestProvider extends FileSystemProvider { + } + + @Override +- public FileSystem newFileSystem(URI uri, Map env) { +- throw new RuntimeException("not implemented"); ++ public FileSystem newFileSystem(URI uri, Map env) throws IOException { ++ return defaultProvider.newFileSystem(uri, env); + } + + @Override +@@ -54,7 +68,8 @@ public class TestProvider extends FileSystemProvider { + + @Override + public Path getPath(URI uri) { +- throw new RuntimeException("not implemented"); ++ Path path = defaultProvider.getPath(uri); ++ return theFileSystem.wrap(path); + } + + @Override +@@ -70,7 +85,8 @@ public class TestProvider extends FileSystemProvider { + LinkOption... options) + throws IOException + { +- throw new RuntimeException("not implemented"); ++ Path delegate = theFileSystem.unwrap(file); ++ return defaultProvider.readAttributes(delegate, attributes, options); + } + + @Override +@@ -79,7 +95,8 @@ public class TestProvider extends FileSystemProvider { + LinkOption... options) + throws IOException + { +- throw new RuntimeException("not implemented"); ++ Path delegate = theFileSystem.unwrap(file); ++ return defaultProvider.readAttributes(delegate, type, options); + } + + @Override +@@ -87,13 +104,14 @@ public class TestProvider extends FileSystemProvider { + Class type, + LinkOption... options) + { +- throw new RuntimeException("not implemented"); ++ Path delegate = theFileSystem.unwrap(file); ++ return defaultProvider.getFileAttributeView(delegate, type, options); + } + +- + @Override + public void delete(Path file) throws IOException { +- throw new RuntimeException("not implemented"); ++ Path delegate = theFileSystem.unwrap(file); ++ defaultProvider.delete(delegate); + } + + @Override +@@ -110,10 +128,11 @@ public class TestProvider extends FileSystemProvider { + + @Override + public Path readSymbolicLink(Path link) throws IOException { +- throw new RuntimeException("not implemented"); ++ Path delegate = theFileSystem.unwrap(link); ++ Path target = defaultProvider.readSymbolicLink(delegate); ++ return theFileSystem.wrap(target); + } + +- + @Override + public void copy(Path source, Path target, CopyOption... options) + throws IOException +@@ -140,7 +159,8 @@ public class TestProvider extends FileSystemProvider { + public void createDirectory(Path dir, FileAttribute... attrs) + throws IOException + { +- throw new RuntimeException("not implemented"); ++ Path delegate = theFileSystem.unwrap(dir); ++ defaultProvider.createDirectory(delegate, attrs); + } + + @Override +@@ -149,13 +169,13 @@ public class TestProvider extends FileSystemProvider { + FileAttribute... attrs) + throws IOException + { +- throw new RuntimeException("not implemented"); ++ Path delegate = theFileSystem.unwrap(file); ++ return defaultProvider.newByteChannel(delegate, options, attrs); + } + +- + @Override + public boolean isHidden(Path file) throws IOException { +- throw new RuntimeException("not implemented"); ++ throw new ReadOnlyFileSystemException(); + } + + @Override +@@ -176,12 +196,26 @@ public class TestProvider extends FileSystemProvider { + } + + static class TestFileSystem extends FileSystem { ++ private final FileSystem delegate; + private final TestProvider provider; + +- TestFileSystem(TestProvider provider) { ++ TestFileSystem(FileSystem delegate, TestProvider provider) { ++ this.delegate = delegate; + this.provider = provider; + } + ++ Path wrap(Path path) { ++ return (path != null) ? new TestPath(this, path) : null; ++ } ++ ++ Path unwrap(Path wrapper) { ++ if (wrapper == null) ++ throw new NullPointerException(); ++ if (!(wrapper instanceof TestPath)) ++ throw new ProviderMismatchException(); ++ return ((TestPath)wrapper).unwrap(); ++ } ++ + @Override + public FileSystemProvider provider() { + return provider; +@@ -194,17 +228,17 @@ public class TestProvider extends FileSystemProvider { + + @Override + public boolean isOpen() { +- throw new RuntimeException("not implemented"); ++ return true; + } + + @Override + public boolean isReadOnly() { +- throw new RuntimeException("not implemented"); ++ return false; + } + + @Override + public String getSeparator() { +- throw new RuntimeException("not implemented"); ++ return delegate.getSeparator(); + } + + @Override +@@ -219,27 +253,209 @@ public class TestProvider extends FileSystemProvider { + + @Override + public Set supportedFileAttributeViews() { +- throw new RuntimeException("not implemented"); ++ return delegate.supportedFileAttributeViews(); + } + + @Override + public Path getPath(String first, String... more) { +- throw new RuntimeException("not implemented"); ++ Path path = delegate.getPath(first, more); ++ return wrap(path); + } + + @Override + public PathMatcher getPathMatcher(String syntaxAndPattern) { +- throw new RuntimeException("not implemented"); ++ return delegate.getPathMatcher(syntaxAndPattern); + } + + @Override + public UserPrincipalLookupService getUserPrincipalLookupService() { +- throw new RuntimeException("not implemented"); ++ return delegate.getUserPrincipalLookupService(); + } + + @Override + public WatchService newWatchService() throws IOException { +- throw new RuntimeException("not implemented"); ++ throw new UnsupportedOperationException(); ++ } ++ } ++ ++ static class TestPath implements Path { ++ private final TestFileSystem fs; ++ private final Path delegate; ++ ++ TestPath(TestFileSystem fs, Path delegate) { ++ this.fs = fs; ++ this.delegate = delegate; ++ } ++ ++ Path unwrap() { ++ return delegate; ++ } ++ ++ @Override ++ public FileSystem getFileSystem() { ++ return fs; ++ } ++ ++ @Override ++ public boolean isAbsolute() { ++ return delegate.isAbsolute(); ++ } ++ ++ @Override ++ public Path getRoot() { ++ return fs.wrap(delegate.getRoot()); ++ } ++ ++ @Override ++ public Path getParent() { ++ return fs.wrap(delegate.getParent()); ++ } ++ ++ @Override ++ public int getNameCount() { ++ return delegate.getNameCount(); ++ } ++ ++ @Override ++ public Path getFileName() { ++ return fs.wrap(delegate.getFileName()); ++ } ++ ++ @Override ++ public Path getName(int index) { ++ return fs.wrap(delegate.getName(index)); ++ } ++ ++ @Override ++ public Path subpath(int beginIndex, int endIndex) { ++ return fs.wrap(delegate.subpath(beginIndex, endIndex)); ++ } ++ ++ @Override ++ public boolean startsWith(Path other) { ++ return delegate.startsWith(fs.unwrap(other)); ++ } ++ ++ @Override ++ public boolean startsWith(String other) { ++ return delegate.startsWith(other); ++ } ++ ++ @Override ++ public boolean endsWith(Path other) { ++ return delegate.endsWith(fs.unwrap(other)); ++ } ++ ++ @Override ++ public boolean endsWith(String other) { ++ return delegate.endsWith(other); ++ } ++ ++ @Override ++ public Path normalize() { ++ return fs.wrap(delegate.normalize()); ++ } ++ ++ @Override ++ public Path resolve(Path other) { ++ return fs.wrap(delegate.resolve(fs.unwrap(other))); ++ } ++ ++ @Override ++ public Path resolve(String other) { ++ return fs.wrap(delegate.resolve(other)); ++ } ++ ++ @Override ++ public Path resolveSibling(Path other) { ++ return fs.wrap(delegate.resolveSibling(fs.unwrap(other))); ++ } ++ ++ @Override ++ public Path resolveSibling(String other) { ++ return fs.wrap(delegate.resolveSibling(other)); ++ } ++ ++ @Override ++ public Path relativize(Path other) { ++ return fs.wrap(delegate.relativize(fs.unwrap(other))); ++ } ++ ++ @Override ++ public boolean equals(Object other) { ++ if (!(other instanceof TestPath)) ++ return false; ++ return delegate.equals(fs.unwrap((TestPath) other)); ++ } ++ ++ @Override ++ public int hashCode() { ++ return delegate.hashCode(); ++ } ++ ++ @Override ++ public String toString() { ++ return delegate.toString(); ++ } ++ ++ @Override ++ public URI toUri() { ++ String ssp = delegate.toUri().getSchemeSpecificPart(); ++ return URI.create(fs.provider().getScheme() + ":" + ssp); ++ } ++ ++ @Override ++ public Path toAbsolutePath() { ++ return fs.wrap(delegate.toAbsolutePath()); ++ } ++ ++ @Override ++ public Path toRealPath(LinkOption... options) throws IOException { ++ return fs.wrap(delegate.toRealPath(options)); ++ } ++ ++ @Override ++ public File toFile() { ++ return new File(toString()); ++ } ++ ++ @Override ++ public Iterator iterator() { ++ final Iterator itr = delegate.iterator(); ++ return new Iterator() { ++ @Override ++ public boolean hasNext() { ++ return itr.hasNext(); ++ } ++ @Override ++ public Path next() { ++ return fs.wrap(itr.next()); ++ } ++ @Override ++ public void remove() { ++ itr.remove(); ++ } ++ }; ++ } ++ ++ @Override ++ public int compareTo(Path other) { ++ return delegate.compareTo(fs.unwrap(other)); ++ } ++ ++ @Override ++ public WatchKey register(WatchService watcher, ++ WatchEvent.Kind[] events, ++ WatchEvent.Modifier... modifiers) ++ { ++ throw new UnsupportedOperationException(); ++ } ++ ++ @Override ++ public WatchKey register(WatchService watcher, ++ WatchEvent.Kind... events) ++ { ++ throw new UnsupportedOperationException(); + } + } +-} ++} +\ No newline at end of file +diff --git a/jdk/test/java/util/zip/ZipFile/TestZipFile.java b/jdk/test/java/util/zip/ZipFile/TestZipFile.java +new file mode 100644 +index 000000000..30bae3bb9 +--- /dev/null ++++ b/jdk/test/java/util/zip/ZipFile/TestZipFile.java +@@ -0,0 +1,375 @@ ++/* ++ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 8142508 ++ * @summary Tests various ZipFile apis ++ * @run main/manual TestZipFile ++ */ ++ ++import java.io.*; ++import java.lang.reflect.Method; ++import java.nio.file.*; ++import java.nio.file.attribute.*; ++import java.util.*; ++import java.util.concurrent.*; ++import java.util.zip.*; ++ ++public class TestZipFile { ++ ++ private static Random r = new Random(); ++ private static int N = 50; ++ private static int NN = 10; ++ private static int ENUM = 10000; ++ private static int ESZ = 10000; ++ private static ExecutorService executor = Executors.newFixedThreadPool(20); ++ private static Set paths = new HashSet<>(); ++ ++ static void realMain (String[] args) throws Throwable { ++ ++ try { ++ for (int i = 0; i < N; i++) { ++ test(r.nextInt(ENUM), r.nextInt(ESZ), false, true); ++ test(r.nextInt(ENUM), r.nextInt(ESZ), true, true); ++ } ++ ++ for (int i = 0; i < NN; i++) { ++ test(r.nextInt(ENUM), 100000 + r.nextInt(ESZ), false, true); ++ test(r.nextInt(ENUM), 100000 + r.nextInt(ESZ), true, true); ++ testCachedDelete(); ++ testCachedOverwrite(); ++ //test(r.nextInt(ENUM), r.nextInt(ESZ), false, true); ++ } ++ ++ test(70000, 1000, false, true); // > 65536 entry number; ++ testDelete(); // OPEN_DELETE ++ ++ executor.shutdown(); ++ executor.awaitTermination(10, TimeUnit.MINUTES); ++ } finally { ++ for (Path path : paths) { ++ Files.deleteIfExists(path); ++ } ++ } ++ } ++ ++ static void test(int numEntry, int szMax, boolean addPrefix, boolean cleanOld) { ++ String name = "zftest" + r.nextInt() + ".zip"; ++ Zip zip = new Zip(name, numEntry, szMax, addPrefix, cleanOld); ++ for (int i = 0; i < NN; i++) { ++ executor.submit(() -> doTest(zip)); ++ } ++ } ++ ++ // test scenario: ++ // (1) open the ZipFile(zip) with OPEN_READ | OPEN_DELETE ++ // (2) test the ZipFile works correctly ++ // (3) check the zip is deleted after ZipFile gets closed ++ static void testDelete() throws Throwable { ++ String name = "zftest" + r.nextInt() + ".zip"; ++ Zip zip = new Zip(name, r.nextInt(ENUM), r.nextInt(ESZ), false, true); ++ try (ZipFile zf = new ZipFile(new File(zip.name), ++ ZipFile.OPEN_READ | ZipFile.OPEN_DELETE )) ++ { ++ doTest0(zip, zf); ++ } ++ Path p = Paths.get(name); ++ if (Files.exists(p)) { ++ fail("Failed to delete " + name + " with OPEN_DELETE"); ++ } ++ } ++ ++ // test scenario: ++ // (1) keep a ZipFile(zip1) alive (in ZipFile's cache), dont close it ++ // (2) delete zip1 and create zip2 with the same name the zip1 with zip2 ++ // (3) zip1 tests should fail, but no crash ++ // (4) zip2 tasks should all get zip2, then pass normal testing. ++ static void testCachedDelete() throws Throwable { ++ String name = "zftest" + r.nextInt() + ".zip"; ++ Zip zip1 = new Zip(name, r.nextInt(ENUM), r.nextInt(ESZ), false, true); ++ ++ try (ZipFile zf = new ZipFile(zip1.name)) { ++ for (int i = 0; i < NN; i++) { ++ executor.submit(() -> verifyNoCrash(zip1)); ++ } ++ // delete the "zip1" and create a new one to test ++ Zip zip2 = new Zip(name, r.nextInt(ENUM), r.nextInt(ESZ), false, true); ++ /* ++ System.out.println("========================================"); ++ System.out.printf(" zip1=%s, mt=%d, enum=%d%n ->attrs=[key=%s, sz=%d, mt=%d]%n", ++ zip1.name, zip1.lastModified, zip1.entries.size(), ++ zip1.attrs.fileKey(), zip1.attrs.size(), zip1.attrs.lastModifiedTime().toMillis()); ++ System.out.printf(" zip2=%s, mt=%d, enum=%d%n ->attrs=[key=%s, sz=%d, mt=%d]%n", ++ zip2.name, zip2.lastModified, zip2.entries.size(), ++ zip2.attrs.fileKey(), zip2.attrs.size(), zip2.attrs.lastModifiedTime().toMillis()); ++ */ ++ for (int i = 0; i < NN; i++) { ++ executor.submit(() -> doTest(zip2)); ++ } ++ } ++ } ++ ++ // overwrite the "zip1" and create a new one to test. So the two zip files ++ // have the same fileKey, but probably different lastModified() ++ static void testCachedOverwrite() throws Throwable { ++ String name = "zftest" + r.nextInt() + ".zip"; ++ Zip zip1 = new Zip(name, r.nextInt(ENUM), r.nextInt(ESZ), false, true); ++ try (ZipFile zf = new ZipFile(zip1.name)) { ++ for (int i = 0; i < NN; i++) { ++ executor.submit(() -> verifyNoCrash(zip1)); ++ } ++ // overwrite the "zip1" with new contents ++ Zip zip2 = new Zip(name, r.nextInt(ENUM), r.nextInt(ESZ), false, false); ++ for (int i = 0; i < NN; i++) { ++ executor.submit(() -> doTest(zip2)); ++ } ++ } ++ } ++ ++ // This method is used to replace the InputStream.readAllBytes method(need JDK version >= 9). ++ public static byte[] readAllBytes(InputStream inputStream) throws IOException { ++ byte[] buffer = new byte[1024]; ++ int len; ++ try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { ++ while ((len = inputStream.read(buffer)) > -1) { ++ outputStream.write(buffer, 0, len); ++ } ++ return outputStream.toByteArray(); ++ } catch (IOException e) { ++ throw e; ++ } ++ } ++ ++ // just check the entries and contents. since the file has been either overwritten ++ // or deleted/rewritten, we only care if it crahes or not. ++ static void verifyNoCrash(Zip zip) throws RuntimeException { ++ try (ZipFile zf = new ZipFile(zip.name)) { ++ List zlist = new ArrayList(zip.entries.keySet()); ++ String[] elist = zf.stream().map( e -> e.getName()).toArray(String[]::new); ++ if (!Arrays.equals(elist, ++ zlist.stream().map( e -> e.getName()).toArray(String[]::new))) ++ { ++ //System.out.printf("++++++ LIST NG [%s] entries.len=%d, expected=%d+++++++%n", ++ // zf.getName(), elist.length, zlist.size()); ++ return; ++ } ++ for (ZipEntry ze : zlist) { ++ byte[] zdata = zip.entries.get(ze); ++ ZipEntry e = zf.getEntry(ze.getName()); ++ if (e != null) { ++ checkEqual(e, ze); ++ if (!e.isDirectory()) { ++ // check with readAllBytes ++ try (InputStream is = zf.getInputStream(e)) { ++ if (!Arrays.equals(zdata, readAllBytes(is))) { ++ //System.out.printf("++++++ BYTES NG [%s]/[%s] ++++++++%n", ++ // zf.getName(), ze.getName()); ++ } ++ } ++ } ++ } ++ } ++ } catch (Throwable t) { ++ // t.printStackTrace(); ++ // fail(t.toString()); ++ } ++ } ++ ++ static void checkEqual(ZipEntry x, ZipEntry y) { ++ if (x.getName().equals(y.getName()) && ++ x.isDirectory() == y.isDirectory() && ++ x.getMethod() == y.getMethod() && ++ (x.getTime() / 2000) == y.getTime() / 2000 && ++ x.getSize() == y.getSize() && ++ x.getCompressedSize() == y.getCompressedSize() && ++ x.getCrc() == y.getCrc() && ++ x.getComment().equals(y.getComment()) ++ ) { ++ pass(); ++ } else { ++ fail(x + " not equal to " + y); ++ System.out.printf(" %s %s%n", x.getName(), y.getName()); ++ System.out.printf(" %d %d%n", x.getMethod(), y.getMethod()); ++ System.out.printf(" %d %d%n", x.getTime(), y.getTime()); ++ System.out.printf(" %d %d%n", x.getSize(), y.getSize()); ++ System.out.printf(" %d %d%n", x.getCompressedSize(), y.getCompressedSize()); ++ System.out.printf(" %d %d%n", x.getCrc(), y.getCrc()); ++ System.out.println("-----------------"); ++ } ++ } ++ ++ static void doTest(Zip zip) throws RuntimeException { ++ //Thread me = Thread.currentThread(); ++ try (ZipFile zf = new ZipFile(zip.name)) { ++ doTest0(zip, zf); ++ } catch (Throwable t) { ++ throw new RuntimeException(t); ++ } ++ } ++ ++ static void doTest0(Zip zip, ZipFile zf) throws Throwable { ++ List list = new ArrayList(zip.entries.keySet()); ++ // (1) check entry list, in expected order ++ if (!check(Arrays.equals( ++ list.stream().map( e -> e.getName()).toArray(String[]::new), ++ zf.stream().map( e -> e.getName()).toArray(String[]::new)))) { ++ return; ++ } ++ // (2) shuffle, and check each entry and its bytes ++ Collections.shuffle(list); ++ for (ZipEntry ze : list) { ++ byte[] data = zip.entries.get(ze); ++ ZipEntry e = zf.getEntry(ze.getName()); ++ checkEqual(e, ze); ++ if (!e.isDirectory()) { ++ // check with readAllBytes ++ try (InputStream is = zf.getInputStream(e)) { ++ check(Arrays.equals(data, readAllBytes(is))); ++ } ++ // check with smaller sized buf ++ try (InputStream is = zf.getInputStream(e)) { ++ byte[] buf = new byte[(int)e.getSize()]; ++ int sz = r.nextInt((int)e.getSize()/4 + 1) + 1; ++ int off = 0; ++ int n; ++ while ((n = is.read(buf, off, buf.length - off)) > 0) { ++ off += n; ++ } ++ check(is.read() == -1); ++ check(Arrays.equals(data, buf)); ++ } ++ } ++ } ++ // (3) check getMetaInfEntryNames ++ String[] metas = list.stream() ++ .map( e -> e.getName()) ++ .filter( s -> s.startsWith("META-INF/")) ++ .sorted() ++ .toArray(String[]::new); ++ if (metas.length > 0) { ++ // meta-inf entries ++ Method getMetas = ZipFile.class.getDeclaredMethod("getMetaInfEntryNames"); ++ getMetas.setAccessible(true); ++ String[] names = (String[])getMetas.invoke(zf); ++ if (names == null) { ++ fail("Failed to get metanames from " + zf); ++ } else { ++ Arrays.sort(names); ++ check(Arrays.equals(names, metas)); ++ } ++ } ++ } ++ ++ private static class Zip { ++ String name; ++ Map entries; ++ BasicFileAttributes attrs; ++ long lastModified; ++ ++ Zip(String name, int num, int szMax, boolean prefix, boolean clean) { ++ this.name = name; ++ entries = new LinkedHashMap<>(num); ++ try { ++ Path p = Paths.get(name); ++ if (clean) { ++ Files.deleteIfExists(p); ++ } ++ paths.add(p); ++ } catch (Exception x) { ++ throw (RuntimeException)x; ++ } ++ ++ try (FileOutputStream fos = new FileOutputStream(name); ++ BufferedOutputStream bos = new BufferedOutputStream(fos); ++ ZipOutputStream zos = new ZipOutputStream(bos)) ++ { ++ if (prefix) { ++ byte[] bytes = new byte[r.nextInt(1000)]; ++ r.nextBytes(bytes); ++ bos.write(bytes); ++ } ++ CRC32 crc = new CRC32(); ++ for (int i = 0; i < num; i++) { ++ String ename = "entry-" + i + "-name-" + r.nextLong(); ++ ZipEntry ze = new ZipEntry(ename); ++ int method = r.nextBoolean() ? ZipEntry.STORED : ZipEntry.DEFLATED; ++ writeEntry(zos, crc, ze, ZipEntry.STORED, szMax); ++ } ++ // add some manifest entries ++ for (int i = 0; i < r.nextInt(20); i++) { ++ String meta = "META-INF/" + "entry-" + i + "-metainf-" + r.nextLong(); ++ ZipEntry ze = new ZipEntry(meta); ++ writeEntry(zos, crc, ze, ZipEntry.STORED, szMax); ++ } ++ } catch (Exception x) { ++ throw (RuntimeException)x; ++ } ++ try { ++ this.attrs = Files.readAttributes(Paths.get(name), BasicFileAttributes.class); ++ this.lastModified = new File(name).lastModified(); ++ } catch (Exception x) { ++ throw (RuntimeException)x; ++ } ++ } ++ ++ private void writeEntry(ZipOutputStream zos, CRC32 crc, ++ ZipEntry ze, int method, int szMax) ++ throws IOException ++ { ++ ze.setMethod(method); ++ byte[] data = new byte[r.nextInt(szMax + 1)]; ++ r.nextBytes(data); ++ if (method == ZipEntry.STORED) { // must set size/csize/crc ++ ze.setSize(data.length); ++ ze.setCompressedSize(data.length); ++ crc.reset(); ++ crc.update(data); ++ ze.setCrc(crc.getValue()); ++ } ++ ze.setTime(System.currentTimeMillis()); ++ ze.setComment(ze.getName()); ++ zos.putNextEntry(ze); ++ zos.write(data); ++ zos.closeEntry(); ++ entries.put(ze, data); ++ } ++ } ++ ++ //--------------------- Infrastructure --------------------------- ++ static volatile int passed = 0, failed = 0; ++ static void pass() {passed++;} ++ static void pass(String msg) {System.out.println(msg); passed++;} ++ static void fail() {failed++; Thread.dumpStack();} ++ static void fail(String msg) {System.out.println(msg); fail();} ++ static void unexpected(Throwable t) {failed++; t.printStackTrace();} ++ static void unexpected(Throwable t, String msg) { ++ System.out.println(msg); failed++; t.printStackTrace();} ++ static boolean check(boolean cond) {if (cond) pass(); else fail(); return cond;} ++ ++ public static void main(String[] args) throws Throwable { ++ try {realMain(args);} catch (Throwable t) {unexpected(t);} ++ System.out.println("\nPassed = " + passed + " failed = " + failed); ++ if (failed > 0) throw new AssertionError("Some tests failed");} ++} +\ No newline at end of file +diff --git a/jdk/test/javax/imageio/plugins/png/ItxtUtf8Test.java b/jdk/test/javax/imageio/plugins/png/ItxtUtf8Test.java +index 89853c639..74938bcda 100644 +--- a/jdk/test/javax/imageio/plugins/png/ItxtUtf8Test.java ++++ b/jdk/test/javax/imageio/plugins/png/ItxtUtf8Test.java +@@ -30,7 +30,7 @@ + * + * @run main ItxtUtf8Test + * +- * @run main/othervm/timeout=10 -Xmx2m ItxtUtf8Test truncate ++ * @run main/othervm/timeout=10 -Xmx4m ItxtUtf8Test truncate + */ + + import java.awt.image.BufferedImage; +-- +2.22.0 + diff --git a/add-8146431-j.u.z.ZipFile.getEntry-throws-AIOOBE.patch b/add-8146431-j.u.z.ZipFile.getEntry-throws-AIOOBE.patch new file mode 100644 index 0000000000000000000000000000000000000000..4c466e90a13a344e48f1eac26b563063c6918e42 --- /dev/null +++ b/add-8146431-j.u.z.ZipFile.getEntry-throws-AIOOBE.patch @@ -0,0 +1,52 @@ +From b6a24b666a1c7536e35afaba4057cc8eac6fe48f Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:25:03 +0800 +Subject: add 8146431-j.u.z.ZipFile.getEntry-throws-AIOOBE + +--- + jdk/src/share/classes/java/util/zip/ZipFile.java | 2 +- + jdk/test/java/util/zip/ZipFile/TestZipFile.java | 9 ++++++++- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java +index 38b642bdc..36135a9c0 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipFile.java ++++ b/jdk/src/share/classes/java/util/zip/ZipFile.java +@@ -1313,7 +1313,7 @@ class ZipFile implements ZipConstants, Closeable { + idx = getEntryNext(idx); + } + /* If not addSlash, or slash is already there, we are done */ +- if (!addSlash || name[name.length - 1] == '/') { ++ if (!addSlash || name.length == 0 || name[name.length - 1] == '/') { + return -1; + } + // Add a slash to the hash code +diff --git a/jdk/test/java/util/zip/ZipFile/TestZipFile.java b/jdk/test/java/util/zip/ZipFile/TestZipFile.java +index 30bae3bb9..773f47558 100644 +--- a/jdk/test/java/util/zip/ZipFile/TestZipFile.java ++++ b/jdk/test/java/util/zip/ZipFile/TestZipFile.java +@@ -24,7 +24,7 @@ + + /* + * @test +- * @bug 8142508 ++ * @bug 8142508 8146431 + * @summary Tests various ZipFile apis + * @run main/manual TestZipFile + */ +@@ -230,6 +230,13 @@ public class TestZipFile { + } + + static void doTest0(Zip zip, ZipFile zf) throws Throwable { ++ // (0) check zero-length entry name, no AIOOBE ++ try { ++ check(zf.getEntry("") == null);; ++ } catch (Throwable t) { ++ unexpected(t); ++ } ++ + List list = new ArrayList(zip.entries.keySet()); + // (1) check entry list, in expected order + if (!check(Arrays.equals( +-- +2.22.0 + diff --git a/add-8147940-Modify-testcase-this-test-does-not-assum.patch b/add-8147940-Modify-testcase-this-test-does-not-assum.patch new file mode 100644 index 0000000000000000000000000000000000000000..5a45309f2fea493c7188c5a2307c174f3b8fcce0 --- /dev/null +++ b/add-8147940-Modify-testcase-this-test-does-not-assum.patch @@ -0,0 +1,79 @@ +From 40b88d64b144bd1b94b2a887c132ec88b3a9a39d Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:26:13 +0800 +Subject: add 8147940-Modify-testcase-this-test-does-not-assume-th + +--- + ...stG1TraceEagerReclaimHumongousObjects.java | 45 +------------------ + 1 file changed, 1 insertion(+), 44 deletions(-) + +diff --git a/hotspot/test/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java b/hotspot/test/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java +index e653554c9..aca54daf6 100644 +--- a/hotspot/test/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java ++++ b/hotspot/test/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2014, 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 +@@ -36,36 +36,6 @@ import java.util.LinkedList; + + public class TestG1TraceEagerReclaimHumongousObjects { + public static void main(String[] args) throws Exception { +- testGCLogs(); +- testHumongousObjectGCLogs(); +- } +- +- private static void testGCLogs() throws Exception { +- +- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", +- "-Xms128M", +- "-Xmx128M", +- "-Xmn16M", +- "-XX:G1HeapRegionSize=1M", +- "-XX:+PrintGC", +- "-XX:+UnlockExperimentalVMOptions", +- "-XX:G1LogLevel=finest", +- "-XX:+G1TraceEagerReclaimHumongousObjects", +- GCTest.class.getName()); +- +- OutputAnalyzer output = new OutputAnalyzer(pb.start()); +- +- // As G1EagerReclaimHumongousObjects is set(default), below logs should be displayed. +- // And GCTest doesn't have humongous objects, so values should be zero. +- output.shouldContain("[Humongous Reclaim"); +- output.shouldContain("[Humongous Total: 0]"); +- output.shouldContain("[Humongous Candidate: 0]"); +- output.shouldContain("[Humongous Reclaimed: 0]"); +- +- output.shouldHaveExitValue(0); +- } +- +- private static void testHumongousObjectGCLogs() throws Exception { + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", + "-Xms128M", + "-Xmx128M", +@@ -92,19 +62,6 @@ public class TestG1TraceEagerReclaimHumongousObjects { + output.shouldHaveExitValue(0); + } + +- static class GCTest { +- private static byte[] garbage; +- +- public static void main(String [] args) { +- System.out.println("Creating garbage"); +- // create 128MB of garbage. This should result in at least one GC +- for (int i = 0; i < 1024; i++) { +- garbage = new byte[128 * 1024]; +- } +- System.out.println("Done"); +- } +- } +- + static class GCWithHumongousObjectTest { + + public static final int M = 1024*1024; +-- +2.22.0 + diff --git a/add-8170831-ZipFile-implementation-no-longer-caches-.patch b/add-8170831-ZipFile-implementation-no-longer-caches-.patch new file mode 100644 index 0000000000000000000000000000000000000000..4a7be7e2b43d5b7f7f672d4e172913a4165ec09d --- /dev/null +++ b/add-8170831-ZipFile-implementation-no-longer-caches-.patch @@ -0,0 +1,45 @@ +From 8e3e20eef3f18d023ffc327a9fae30c34de84773 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:24:45 +0800 +Subject: add 8170831-ZipFile-implementation-no-longer-caches-the + +--- + jdk/src/share/classes/java/util/zip/ZipFile.java | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java +index b6a6c2a48..38b642bdc 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipFile.java ++++ b/jdk/src/share/classes/java/util/zip/ZipFile.java +@@ -342,7 +342,9 @@ class ZipFile implements ZipConstants, Closeable { + ZipFileInputStream in = null; + synchronized (this) { + ensureOpen(); +- if (!zc.isUTF8() && (entry.flag & EFS) != 0) { ++ if (Objects.equals(lastEntryName, entry.name)) { ++ pos = lastEntryPos; ++ } else if (!zc.isUTF8() && (entry.flag & EFS) != 0) { + pos = zsrc.getEntryPos(zc.getBytesUTF8(entry.name), false); + } else { + pos = zsrc.getEntryPos(zc.getBytes(entry.name), false); +@@ -533,6 +535,9 @@ class ZipFile implements ZipConstants, Closeable { + Spliterator.IMMUTABLE | Spliterator.NONNULL), false); + } + ++ private String lastEntryName; ++ private int lastEntryPos; ++ + /* Checks ensureOpen() before invoke this method */ + private ZipEntry getZipEntry(String name, int pos) { + byte[] cen = zsrc.cen; +@@ -566,6 +571,8 @@ class ZipFile implements ZipConstants, Closeable { + e.comment = zc.toString(cen, start, clen); + } + } ++ lastEntryName = e.name; ++ lastEntryPos = pos; + return e; + } + +-- +2.22.0 + diff --git a/add-8191924-Adjust-DelegatingClassLoader-s-metadata-.patch b/add-8191924-Adjust-DelegatingClassLoader-s-metadata-.patch new file mode 100644 index 0000000000000000000000000000000000000000..45c255800cf88862ef58d37dfcc5045f88cfd5e0 --- /dev/null +++ b/add-8191924-Adjust-DelegatingClassLoader-s-metadata-.patch @@ -0,0 +1,100 @@ +From 64123e7422fb9441c8999aaa1ddfdf639295fea1 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:26:33 +0800 +Subject: add 8191924-Adjust-DelegatingClassLoader-s-metadata-spac + +--- + hotspot/src/share/vm/memory/metaspace.cpp | 31 ++++++++++++++++++++--- + 1 file changed, 28 insertions(+), 3 deletions(-) + +diff --git a/hotspot/src/share/vm/memory/metaspace.cpp b/hotspot/src/share/vm/memory/metaspace.cpp +index 07259e649..d65a81267 100644 +--- a/hotspot/src/share/vm/memory/metaspace.cpp ++++ b/hotspot/src/share/vm/memory/metaspace.cpp +@@ -1206,7 +1206,10 @@ class SpaceManager : public CHeapObj { + Mutex* const _lock; + + // Type of metadata allocated. +- Metaspace::MetadataType _mdtype; ++ const Metaspace::MetadataType _mdtype; ++ ++ // Type of metaspace ++ const Metaspace::MetaspaceType _space_type; + + // List of chunks in use by this SpaceManager. Allocations + // are done from the current chunk. The list is used for deallocating +@@ -1218,6 +1221,10 @@ class SpaceManager : public CHeapObj { + // If class space manager, small chunks are unlimited + static uint const _small_chunk_limit; + ++ // Maximum number of specialize chunks to allocate for anonymous and delegating ++ // metadata space to a SpaceManager ++ static uint const _anon_and_delegating_metadata_specialize_chunk_limit; ++ + // Sum of all space in allocated chunks + size_t _allocated_blocks_words; + +@@ -1270,6 +1277,7 @@ class SpaceManager : public CHeapObj { + + public: + SpaceManager(Metaspace::MetadataType mdtype, ++ Metaspace::MetaspaceType space_type, + Mutex* lock); + ~SpaceManager(); + +@@ -1385,6 +1393,7 @@ class SpaceManager : public CHeapObj { + }; + + uint const SpaceManager::_small_chunk_limit = 4; ++uint const SpaceManager::_anon_and_delegating_metadata_specialize_chunk_limit = 4; + + const char* SpaceManager::_expand_lock_name = + "SpaceManager chunk allocation lock"; +@@ -3409,6 +3418,20 @@ size_t SpaceManager::calc_chunk_size(size_t word_size) { + // once a medium chunk has been allocated, no more small + // chunks will be allocated. + size_t chunk_word_size; ++ ++ // Special case for anonymous metadata space. ++ // Anonymous metadata space is usually small, with majority within 1K - 2K range and ++ // rarely about 4K (64-bits JVM). ++ // Instead of jumping to SmallChunk after initial chunk exhausted, keeping allocation ++ // from SpecializeChunk up to _anon_or_delegating_metadata_specialize_chunk_limit (4) ++ // reduces space waste from 60+% to around 30%. ++ if ((_space_type == Metaspace::AnonymousMetaspaceType || _space_type == Metaspace::ReflectionMetaspaceType) && ++ _mdtype == Metaspace::NonClassType && ++ sum_count_in_chunks_in_use(SpecializedIndex) < _anon_and_delegating_metadata_specialize_chunk_limit && ++ word_size + Metachunk::overhead() <= SpecializedChunk) { ++ return SpecializedChunk; ++ } ++ + if (chunks_in_use(MediumIndex) == NULL && + sum_count_in_chunks_in_use(SmallIndex) < _small_chunk_limit) { + chunk_word_size = (size_t) small_chunk_size(); +@@ -3517,8 +3540,10 @@ void SpaceManager::print_on(outputStream* st) const { + } + + SpaceManager::SpaceManager(Metaspace::MetadataType mdtype, ++ Metaspace::MetaspaceType space_type, + Mutex* lock) : + _mdtype(mdtype), ++ _space_type(space_type), + _allocated_blocks_words(0), + _allocated_chunks_words(0), + _allocated_chunks_count(0), +@@ -4926,11 +4951,11 @@ void Metaspace::initialize(Mutex* lock, MetaspaceType type) { + verify_global_initialization(); + + // Allocate SpaceManager for metadata objects. +- _vsm = new SpaceManager(NonClassType, lock); ++ _vsm = new SpaceManager(NonClassType, type, lock); + + if (using_class_space()) { + // Allocate SpaceManager for classes. +- _class_vsm = new SpaceManager(ClassType, lock); ++ _class_vsm = new SpaceManager(ClassType, type, lock); + } else { + _class_vsm = NULL; + } +-- +2.22.0 + diff --git a/add-8198423-Improve-metaspace-chunk-allocation.patch b/add-8198423-Improve-metaspace-chunk-allocation.patch new file mode 100644 index 0000000000000000000000000000000000000000..4a33cdeb2d0cef50a66513dd37bd30453aff5b58 --- /dev/null +++ b/add-8198423-Improve-metaspace-chunk-allocation.patch @@ -0,0 +1,2770 @@ +From 0ec0400ef6367812d4f256468ea2adda569baaff Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:16:04 +0800 +Subject: add 8198423-Improve-metaspace-chunk-allocation + +--- + hotspot/src/share/vm/memory/metachunk.cpp | 93 +- + hotspot/src/share/vm/memory/metachunk.hpp | 93 +- + hotspot/src/share/vm/memory/metaspace.cpp | 1808 ++++++++++++++--- + hotspot/src/share/vm/memory/metaspace.hpp | 18 +- + hotspot/src/share/vm/prims/jni.cpp | 4 +- + .../share/vm/utilities/globalDefinitions.hpp | 1 + + 6 files changed, 1742 insertions(+), 275 deletions(-) + +diff --git a/hotspot/src/share/vm/memory/metachunk.cpp b/hotspot/src/share/vm/memory/metachunk.cpp +index 6cb6625b1..50d0c97eb 100644 +--- a/hotspot/src/share/vm/memory/metachunk.cpp ++++ b/hotspot/src/share/vm/memory/metachunk.cpp +@@ -25,6 +25,7 @@ + #include "precompiled.hpp" + #include "memory/allocation.hpp" + #include "memory/metachunk.hpp" ++#include "utilities/align.hpp" + #include "utilities/copy.hpp" + #include "utilities/debug.hpp" + +@@ -32,8 +33,6 @@ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + + class VirtualSpaceNode; + +-const size_t metadata_chunk_initialize = 0xf7f7f7f7; +- + size_t Metachunk::object_alignment() { + // Must align pointers and sizes to 8, + // so that 64 bit types get correctly aligned. +@@ -51,21 +50,22 @@ size_t Metachunk::overhead() { + + // Metachunk methods + +-Metachunk::Metachunk(size_t word_size, ++Metachunk::Metachunk(ChunkIndex chunktype, bool is_class, size_t word_size, + VirtualSpaceNode* container) + : Metabase(word_size), ++ _chunk_type(chunktype), ++ _is_class(is_class), ++ _sentinel(CHUNK_SENTINEL), ++ _origin(origin_normal), ++ _use_count(0), + _top(NULL), + _container(container) + { + _top = initial_top(); +-#ifdef ASSERT + set_is_tagged_free(false); +- size_t data_word_size = pointer_delta(end(), +- _top, +- sizeof(MetaWord)); +- Copy::fill_to_words((HeapWord*)_top, +- data_word_size, +- metadata_chunk_initialize); ++#ifdef ASSERT ++ mangle(uninitMetaWordVal); ++ verify(); + #endif + } + +@@ -91,33 +91,63 @@ size_t Metachunk::free_word_size() const { + void Metachunk::print_on(outputStream* st) const { + st->print_cr("Metachunk:" + " bottom " PTR_FORMAT " top " PTR_FORMAT +- " end " PTR_FORMAT " size " SIZE_FORMAT, +- bottom(), _top, end(), word_size()); ++ " end " PTR_FORMAT " size " SIZE_FORMAT " (%s)", ++ bottom(), _top, end(), word_size(), ++ chunk_size_name(get_chunk_type())); + if (Verbose) { + st->print_cr(" used " SIZE_FORMAT " free " SIZE_FORMAT, + used_word_size(), free_word_size()); + } + } + +-#ifndef PRODUCT +-void Metachunk::mangle() { +- // Mangle the payload of the chunk and not the links that ++#ifdef ASSERT ++void Metachunk::mangle(juint word_value) { ++ // Overwrite the payload of the chunk and not the links that + // maintain list of chunks. +- HeapWord* start = (HeapWord*)(bottom() + overhead()); ++ HeapWord* start = (HeapWord*)initial_top(); + size_t size = word_size() - overhead(); +- Copy::fill_to_words(start, size, metadata_chunk_initialize); ++ Copy::fill_to_words(start, size, word_value); + } +-#endif // PRODUCT + + void Metachunk::verify() { +-#ifdef ASSERT +- // Cannot walk through the blocks unless the blocks have +- // headers with sizes. +- assert(bottom() <= _top && +- _top <= (MetaWord*)end(), +- "Chunk has been smashed"); +-#endif +- return; ++ assert(is_valid_sentinel(), err_msg("Chunk " PTR_FORMAT ": sentinel invalid", p2i(this))); ++ const ChunkIndex chunk_type = get_chunk_type(); ++ assert(is_valid_chunktype(chunk_type), err_msg("Chunk " PTR_FORMAT ": Invalid chunk type.", p2i(this))); ++ if (chunk_type != HumongousIndex) { ++ assert(word_size() == get_size_for_nonhumongous_chunktype(chunk_type, is_class()), ++ err_msg("Chunk " PTR_FORMAT ": wordsize " SIZE_FORMAT " does not fit chunk type %s.", ++ p2i(this), word_size(), chunk_size_name(chunk_type))); ++ } ++ assert(is_valid_chunkorigin(get_origin()), err_msg("Chunk " PTR_FORMAT ": Invalid chunk origin.", p2i(this))); ++ assert(bottom() <= _top && _top <= (MetaWord*)end(), ++ err_msg("Chunk " PTR_FORMAT ": Chunk top out of chunk bounds.", p2i(this))); ++ ++ // For non-humongous chunks, starting address shall be aligned ++ // to its chunk size. Humongous chunks start address is ++ // aligned to specialized chunk size. ++ const size_t required_alignment = ++ (chunk_type != HumongousIndex ? word_size() : get_size_for_nonhumongous_chunktype(SpecializedIndex, is_class())) * sizeof(MetaWord); ++ assert(is_aligned((address)this, required_alignment), ++ err_msg("Chunk " PTR_FORMAT ": (size " SIZE_FORMAT ") not aligned to " SIZE_FORMAT ".", ++ p2i(this), word_size() * sizeof(MetaWord), required_alignment)); ++} ++ ++#endif // ASSERT ++ ++// Helper, returns a descriptive name for the given index. ++const char* chunk_size_name(ChunkIndex index) { ++ switch (index) { ++ case SpecializedIndex: ++ return "specialized"; ++ case SmallIndex: ++ return "small"; ++ case MediumIndex: ++ return "medium"; ++ case HumongousIndex: ++ return "humongous"; ++ default: ++ return "Invalid index"; ++ } + } + + /////////////// Unit tests /////////////// +@@ -127,11 +157,16 @@ void Metachunk::verify() { + class TestMetachunk { + public: + static void test() { +- size_t size = 2 * 1024 * 1024; +- void* memory = malloc(size); ++ const ChunkIndex chunk_type = MediumIndex; ++ const bool is_class = false; ++ const size_t word_size = get_size_for_nonhumongous_chunktype(chunk_type, is_class); ++ // Allocate the chunk with correct alignment. ++ void* memory = malloc(word_size * BytesPerWord * 2); + assert(memory != NULL, "Failed to malloc 2MB"); ++ ++ void* p_placement = align_up(memory, word_size * BytesPerWord); + +- Metachunk* metachunk = ::new (memory) Metachunk(size / BytesPerWord, NULL); ++ Metachunk* metachunk = ::new (p_placement) Metachunk(chunk_type, is_class, word_size, NULL); + + assert(metachunk->bottom() == (MetaWord*)metachunk, "assert"); + assert(metachunk->end() == (uintptr_t*)metachunk + metachunk->size(), "assert"); +diff --git a/hotspot/src/share/vm/memory/metachunk.hpp b/hotspot/src/share/vm/memory/metachunk.hpp +index 7889b622c..b679f1b1e 100644 +--- a/hotspot/src/share/vm/memory/metachunk.hpp ++++ b/hotspot/src/share/vm/memory/metachunk.hpp +@@ -94,6 +94,61 @@ class Metabase VALUE_OBJ_CLASS_SPEC { + // | | | | + // +--------------+ <- bottom --+ --+ + ++// ChunkIndex defines the type of chunk. ++// Chunk types differ by size: specialized < small < medium, chunks ++// larger than medium are humongous chunks of varying size. ++enum ChunkIndex { ++ ZeroIndex = 0, ++ SpecializedIndex = ZeroIndex, ++ SmallIndex = SpecializedIndex + 1, ++ MediumIndex = SmallIndex + 1, ++ HumongousIndex = MediumIndex + 1, ++ NumberOfFreeLists = 3, ++ NumberOfInUseLists = 4 ++}; ++ ++// Utility functions. ++size_t get_size_for_nonhumongous_chunktype(ChunkIndex chunk_type, bool is_class); ++ChunkIndex get_chunk_type_by_size(size_t size, bool is_class); ++ ++// Returns a descriptive name for a chunk type. ++const char* chunk_size_name(ChunkIndex index); ++ ++// Verify chunk type. ++inline bool is_valid_chunktype(ChunkIndex index) { ++ return index == SpecializedIndex || index == SmallIndex || ++ index == MediumIndex || index == HumongousIndex; ++} ++ ++inline bool is_valid_nonhumongous_chunktype(ChunkIndex index) { ++ return is_valid_chunktype(index) && index != HumongousIndex; ++} ++ ++enum ChunkOrigin { ++ // Chunk normally born (via take_from_committed) ++ origin_normal = 1, ++ // Chunk was born as padding chunk ++ origin_pad = 2, ++ // Chunk was born as leftover chunk in VirtualSpaceNode::retire ++ origin_leftover = 3, ++ // Chunk was born as result of a merge of smaller chunks ++ origin_merge = 4, ++ // Chunk was born as result of a split of a larger chunk ++ origin_split = 5, ++ ++ origin_minimum = origin_normal, ++ origin_maximum = origin_split, ++ origins_count = origin_maximum + 1 ++}; ++ ++inline bool is_valid_chunkorigin(ChunkOrigin origin) { ++ return origin == origin_normal || ++ origin == origin_pad || ++ origin == origin_leftover || ++ origin == origin_merge || ++ origin == origin_split; ++} ++ + class Metachunk : public Metabase { + friend class TestMetachunk; + // The VirtualSpaceNode containing this chunk. +@@ -102,8 +157,21 @@ class Metachunk : public Metabase { + // Current allocation top. + MetaWord* _top; + +- DEBUG_ONLY(bool _is_tagged_free;) ++ // A 32bit sentinel for debugging purposes. ++ enum { CHUNK_SENTINEL = 0x4d4554EF, // "MET" ++ CHUNK_SENTINEL_INVALID = 0xFEEEEEEF ++ }; ++ ++ uint32_t _sentinel; + ++ const ChunkIndex _chunk_type; ++ const bool _is_class; ++ // Whether the chunk is free (in freelist) or in use by some class loader. ++ bool _is_tagged_free; ++ ++ ChunkOrigin _origin; ++ int _use_count; ++ + MetaWord* initial_top() const { return (MetaWord*)this + overhead(); } + MetaWord* top() const { return _top; } + +@@ -120,7 +188,7 @@ class Metachunk : public Metabase { + // Size of the Metachunk header, including alignment. + static size_t overhead(); + +- Metachunk(size_t word_size , VirtualSpaceNode* container); ++ Metachunk(ChunkIndex chunktype, bool is_class, size_t word_size, VirtualSpaceNode* container); + + MetaWord* allocate(size_t word_size); + +@@ -140,17 +208,28 @@ class Metachunk : public Metabase { + size_t used_word_size() const; + size_t free_word_size() const; + +-#ifdef ASSERT + bool is_tagged_free() { return _is_tagged_free; } + void set_is_tagged_free(bool v) { _is_tagged_free = v; } +-#endif + + bool contains(const void* ptr) { return bottom() <= ptr && ptr < _top; } + +- NOT_PRODUCT(void mangle();) +- + void print_on(outputStream* st) const; +- void verify(); ++ ++ bool is_valid_sentinel() const { return _sentinel == CHUNK_SENTINEL; } ++ void remove_sentinel() { _sentinel = CHUNK_SENTINEL_INVALID; } ++ ++ int get_use_count() const { return _use_count; } ++ void inc_use_count() { _use_count ++; } ++ ++ ChunkOrigin get_origin() const { return _origin; } ++ void set_origin(ChunkOrigin orig) { _origin = orig; } ++ ++ ChunkIndex get_chunk_type() const { return _chunk_type; } ++ bool is_class() const { return _is_class; } ++ ++ DEBUG_ONLY(void mangle(juint word_value);) ++ DEBUG_ONLY(void verify();) ++ + }; + + // Metablock is the unit of allocation from a Chunk. +diff --git a/hotspot/src/share/vm/memory/metaspace.cpp b/hotspot/src/share/vm/memory/metaspace.cpp +index cc5bd4544..07259e649 100644 +--- a/hotspot/src/share/vm/memory/metaspace.cpp ++++ b/hotspot/src/share/vm/memory/metaspace.cpp +@@ -46,6 +46,7 @@ + #include "runtime/orderAccess.inline.hpp" + #include "services/memTracker.hpp" + #include "services/memoryService.hpp" ++#include "utilities/align.hpp" + #include "utilities/copy.hpp" + #include "utilities/debug.hpp" + +@@ -57,6 +58,13 @@ typedef BinaryTreeDictionary > ChunkTreeDictionar + // Set this constant to enable slow integrity checking of the free chunk lists + const bool metaspace_slow_verify = false; + ++// Helper function that does a bunch of checks for a chunk. ++DEBUG_ONLY(static void do_verify_chunk(Metachunk* chunk);) ++ ++// Given a Metachunk, update its in-use information (both in the ++// chunk and the occupancy map). ++static void do_update_in_use_info_for_chunk(Metachunk* chunk, bool inuse); ++ + size_t const allocation_from_dictionary_limit = 4 * K; + + MetaWord* last_allocated = 0; +@@ -64,33 +72,6 @@ MetaWord* last_allocated = 0; + size_t Metaspace::_compressed_class_space_size; + const MetaspaceTracer* Metaspace::_tracer = NULL; + +-// Used in declarations in SpaceManager and ChunkManager +-enum ChunkIndex { +- ZeroIndex = 0, +- SpecializedIndex = ZeroIndex, +- SmallIndex = SpecializedIndex + 1, +- MediumIndex = SmallIndex + 1, +- HumongousIndex = MediumIndex + 1, +- NumberOfFreeLists = 3, +- NumberOfInUseLists = 4 +-}; +- +-// Helper, returns a descriptive name for the given index. +-static const char* chunk_size_name(ChunkIndex index) { +- switch (index) { +- case SpecializedIndex: +- return "specialized"; +- case SmallIndex: +- return "small"; +- case MediumIndex: +- return "medium"; +- case HumongousIndex: +- return "humongous"; +- default: +- return "Invalid index"; +- } +-} +- + enum ChunkSizes { // in words. + ClassSpecializedChunk = 128, + SpecializedChunk = 128, +@@ -100,11 +81,69 @@ enum ChunkSizes { // in words. + MediumChunk = 8 * K + }; + ++// Returns size of this chunk type. ++size_t get_size_for_nonhumongous_chunktype(ChunkIndex chunktype, bool is_class) { ++ assert(is_valid_nonhumongous_chunktype(chunktype), "invalid chunk type."); ++ size_t size = 0; ++ if (is_class) { ++ switch(chunktype) { ++ case SpecializedIndex: size = ClassSpecializedChunk; break; ++ case SmallIndex: size = ClassSmallChunk; break; ++ case MediumIndex: size = ClassMediumChunk; break; ++ default: ++ ShouldNotReachHere(); ++ } ++ } else { ++ switch(chunktype) { ++ case SpecializedIndex: size = SpecializedChunk; break; ++ case SmallIndex: size = SmallChunk; break; ++ case MediumIndex: size = MediumChunk; break; ++ default: ++ ShouldNotReachHere(); ++ } ++ } ++ return size; ++} ++ ++ChunkIndex get_chunk_type_by_size(size_t size, bool is_class) { ++ if (is_class) { ++ if (size == ClassSpecializedChunk) { ++ return SpecializedIndex; ++ } else if (size == ClassSmallChunk) { ++ return SmallIndex; ++ } else if (size == ClassMediumChunk) { ++ return MediumIndex; ++ } else if (size > ClassMediumChunk) { ++ assert(is_aligned(size, ClassSpecializedChunk), "Invalid chunk size"); ++ return HumongousIndex; ++ } ++ } else { ++ if (size == SpecializedChunk) { ++ return SpecializedIndex; ++ } else if (size == SmallChunk) { ++ return SmallIndex; ++ } else if (size == MediumChunk) { ++ return MediumIndex; ++ } else if (size > MediumChunk) { ++ assert(is_aligned(size, SpecializedChunk), "Invalid chunk size"); ++ return HumongousIndex; ++ } ++ } ++ ShouldNotReachHere(); ++ return (ChunkIndex)-1; ++} ++ ++ + static ChunkIndex next_chunk_index(ChunkIndex i) { + assert(i < NumberOfInUseLists, "Out of bound"); + return (ChunkIndex) (i+1); + } + ++static ChunkIndex prev_chunk_index(ChunkIndex i) { ++ assert(i > ZeroIndex, "Out of bound"); ++ return (ChunkIndex) (i-1); ++} ++ + static const char* scale_unit(size_t scale) { + switch(scale) { + case 1: return "BYTES"; +@@ -131,24 +170,33 @@ class ChunkManager : public CHeapObj { + // SpecializedChunk + // SmallChunk + // MediumChunk +- // HumongousChunk + ChunkList _free_chunks[NumberOfFreeLists]; + ++ // Whether or not this is the class chunkmanager. ++ const bool _is_class; ++ ++ // Return non-humongous chunk list by its index. ++ ChunkList* free_chunks(ChunkIndex index); ++ ++ // Returns non-humongous chunk list for the given chunk word size. ++ ChunkList* find_free_chunks_list(size_t word_size); ++ + // HumongousChunk + ChunkTreeDictionary _humongous_dictionary; + +- // ChunkManager in all lists of this type ++ // Returns the humongous chunk dictionary. ++ ChunkTreeDictionary* humongous_dictionary() { ++ return &_humongous_dictionary; ++ } ++ ++ // Size, in metaspace words, of all chunks managed by this ChunkManager + size_t _free_chunks_total; ++ // Number of chunks in this ChunkManager + size_t _free_chunks_count; + +- void dec_free_chunks_total(size_t v) { +- assert(_free_chunks_count > 0 && +- _free_chunks_total > 0, +- "About to go negative"); +- Atomic::add_ptr(-1, &_free_chunks_count); +- jlong minus_v = (jlong) - (jlong) v; +- Atomic::add_ptr(minus_v, &_free_chunks_total); +- } ++ // Update counters after a chunk was added or removed removed. ++ void account_for_added_chunk(const Metachunk* c); ++ void account_for_removed_chunk(const Metachunk* c); + + // Debug support + +@@ -169,6 +217,29 @@ class ChunkManager : public CHeapObj { + } + void verify_free_chunks_count(); + ++ // Given a pointer to a chunk, attempts to merge it with neighboring ++ // free chunks to form a bigger chunk. Returns true if successful. ++ bool attempt_to_coalesce_around_chunk(Metachunk* chunk, ChunkIndex target_chunk_type); ++ ++ // Helper for chunk merging: ++ // Given an address range with 1-n chunks which are all supposed to be ++ // free and hence currently managed by this ChunkManager, remove them ++ // from this ChunkManager and mark them as invalid. ++ // - This does not correct the occupancy map. ++ // - This does not adjust the counters in ChunkManager. ++ // - Does not adjust container count counter in containing VirtualSpaceNode. ++ // Returns number of chunks removed. ++ int remove_chunks_in_area(MetaWord* p, size_t word_size); ++ ++ // Helper for chunk splitting: given a target chunk size and a larger free chunk, ++ // split up the larger chunk into n smaller chunks, at least one of which should be ++ // the target chunk of target chunk size. The smaller chunks, including the target ++ // chunk, are returned to the freelist. The pointer to the target chunk is returned. ++ // Note that this chunk is supposed to be removed from the freelist right away. ++ Metachunk* split_chunk(size_t target_chunk_word_size, Metachunk* chunk); ++ ++ public: ++ + struct ChunkManagerStatistics { + size_t num_by_type[NumberOfFreeLists]; + size_t single_size_by_type[NumberOfFreeLists]; +@@ -181,16 +252,15 @@ class ChunkManager : public CHeapObj { + void get_statistics(ChunkManagerStatistics* stat) const; + static void print_statistics(const ChunkManagerStatistics* stat, outputStream* out, size_t scale); + +- public: + +- ChunkManager(size_t specialized_size, size_t small_size, size_t medium_size) +- : _free_chunks_total(0), _free_chunks_count(0) { +- _free_chunks[SpecializedIndex].set_size(specialized_size); +- _free_chunks[SmallIndex].set_size(small_size); +- _free_chunks[MediumIndex].set_size(medium_size); ++ ChunkManager(bool is_class) ++ : _is_class(is_class), _free_chunks_total(0), _free_chunks_count(0) { ++ _free_chunks[SpecializedIndex].set_size(get_size_for_nonhumongous_chunktype(SpecializedIndex, is_class)); ++ _free_chunks[SmallIndex].set_size(get_size_for_nonhumongous_chunktype(SmallIndex, is_class)); ++ _free_chunks[MediumIndex].set_size(get_size_for_nonhumongous_chunktype(MediumIndex, is_class)); + } + +- // add or delete (return) a chunk to the global freelist. ++ // Add or delete (return) a chunk to the global freelist. + Metachunk* chunk_freelist_allocate(size_t word_size); + + // Map a size to a list index assuming that there are lists +@@ -200,13 +270,24 @@ class ChunkManager : public CHeapObj { + // Map a given index to the chunk size. + size_t size_by_index(ChunkIndex index) const; + +- // Remove the chunk from its freelist. It is +- // expected to be on one of the _free_chunks[] lists. ++ bool is_class() const { return _is_class; } ++ ++ // Convenience accessors. ++ size_t medium_chunk_word_size() const { return size_by_index(MediumIndex); } ++ size_t small_chunk_word_size() const { return size_by_index(SmallIndex); } ++ size_t specialized_chunk_word_size() const { return size_by_index(SpecializedIndex); } ++ ++ // Take a chunk from the ChunkManager. The chunk is expected to be in ++ // the chunk manager (the freelist if non-humongous, the dictionary if ++ // humongous). + void remove_chunk(Metachunk* chunk); + ++ // Return a single chunk of type index to the ChunkManager. ++ void return_single_chunk(ChunkIndex index, Metachunk* chunk); ++ + // Add the simple linked list of chunks to the freelist of chunks + // of type index. +- void return_chunks(ChunkIndex index, Metachunk* chunks); ++ void return_chunk_list(ChunkIndex index, Metachunk* chunk); + + // Total of the space in the free chunks list + size_t free_chunks_total_words(); +@@ -215,19 +296,6 @@ class ChunkManager : public CHeapObj { + // Number of chunks in the free chunks list + size_t free_chunks_count(); + +- void inc_free_chunks_total(size_t v, size_t count = 1) { +- Atomic::add_ptr(count, &_free_chunks_count); +- Atomic::add_ptr(v, &_free_chunks_total); +- } +- ChunkTreeDictionary* humongous_dictionary() { +- return &_humongous_dictionary; +- } +- +- ChunkList* free_chunks(ChunkIndex index); +- +- // Returns the list for the given chunk word size. +- ChunkList* find_free_chunks_list(size_t word_size); +- + // Remove from a list by size. Selects list based on size of chunk. + Metachunk* free_chunks_get(size_t chunk_word_size); + +@@ -329,6 +397,294 @@ class BlockFreelist VALUE_OBJ_CLASS_SPEC { + void print_on(outputStream* st) const; + }; + ++// Helper for Occupancy Bitmap. A type trait to give an all-bits-are-one-unsigned constant. ++template struct all_ones { static const T value; }; ++template <> struct all_ones { static const uint64_t value = 0xFFFFFFFFFFFFFFFFULL; }; ++template <> struct all_ones { static const uint32_t value = 0xFFFFFFFF; }; ++ ++// The OccupancyMap is a bitmap which, for a given VirtualSpaceNode, ++// keeps information about ++// - where a chunk starts ++// - whether a chunk is in-use or free ++// A bit in this bitmap represents one range of memory in the smallest ++// chunk size (SpecializedChunk or ClassSpecializedChunk). ++class OccupancyMap : public CHeapObj { ++ ++ // The address range this map covers. ++ const MetaWord* const _reference_address; ++ const size_t _word_size; ++ ++ // The word size of a specialized chunk, aka the number of words one ++ // bit in this map represents. ++ const size_t _smallest_chunk_word_size; ++ ++ // map data ++ // Data are organized in two bit layers: ++ // The first layer is the chunk-start-map. Here, a bit is set to mark ++ // the corresponding region as the head of a chunk. ++ // The second layer is the in-use-map. Here, a set bit indicates that ++ // the corresponding belongs to a chunk which is in use. ++ uint8_t* _map[2]; ++ ++ enum { layer_chunk_start_map = 0, layer_in_use_map = 1 }; ++ ++ // length, in bytes, of bitmap data ++ size_t _map_size; ++ ++ // Returns true if bit at position pos at bit-layer layer is set. ++ bool get_bit_at_position(unsigned pos, unsigned layer) const { ++ assert(layer == 0 || layer == 1, err_msg("Invalid layer %d", layer)); ++ const unsigned byteoffset = pos / 8; ++ assert(byteoffset < _map_size, ++ err_msg("invalid byte offset (%u), map size is " SIZE_FORMAT ".", byteoffset, _map_size)); ++ const unsigned mask = 1 << (pos % 8); ++ return (_map[layer][byteoffset] & mask) > 0; ++ } ++ ++ // Changes bit at position pos at bit-layer layer to value v. ++ void set_bit_at_position(unsigned pos, unsigned layer, bool v) { ++ assert(layer == 0 || layer == 1, err_msg("Invalid layer %d", layer)); ++ const unsigned byteoffset = pos / 8; ++ assert(byteoffset < _map_size, ++ err_msg("invalid byte offset (%u), map size is " SIZE_FORMAT ".", byteoffset, _map_size)); ++ const unsigned mask = 1 << (pos % 8); ++ if (v) { ++ _map[layer][byteoffset] |= mask; ++ } else { ++ _map[layer][byteoffset] &= ~mask; ++ } ++ } ++ ++ // Optimized case of is_any_bit_set_in_region for 32/64bit aligned access: ++ // pos is 32/64 aligned and num_bits is 32/64. ++ // This is the typical case when coalescing to medium chunks, whose size is ++ // 32 or 64 times the specialized chunk size (depending on class or non class ++ // case), so they occupy 64 bits which should be 64bit aligned, because ++ // chunks are chunk-size aligned. ++ template ++ bool is_any_bit_set_in_region_3264(unsigned pos, unsigned num_bits, unsigned layer) const { ++ assert(_map_size > 0, "not initialized"); ++ assert(layer == 0 || layer == 1, err_msg("Invalid layer %d.", layer)); ++ assert(pos % (sizeof(T) * 8) == 0, err_msg("Bit position must be aligned (%u).", pos)); ++ assert(num_bits == (sizeof(T) * 8), err_msg("Number of bits incorrect (%u).", num_bits)); ++ const size_t byteoffset = pos / 8; ++ assert(byteoffset <= (_map_size - sizeof(T)), ++ err_msg("Invalid byte offset (" SIZE_FORMAT "), map size is " SIZE_FORMAT ".", byteoffset, _map_size)); ++ const T w = *(T*)(_map[layer] + byteoffset); ++ return w > 0 ? true : false; ++ } ++ ++ // Returns true if any bit in region [pos1, pos1 + num_bits) is set in bit-layer layer. ++ bool is_any_bit_set_in_region(unsigned pos, unsigned num_bits, unsigned layer) const { ++ if (pos % 32 == 0 && num_bits == 32) { ++ return is_any_bit_set_in_region_3264(pos, num_bits, layer); ++ } else if (pos % 64 == 0 && num_bits == 64) { ++ return is_any_bit_set_in_region_3264(pos, num_bits, layer); ++ } else { ++ for (unsigned n = 0; n < num_bits; n ++) { ++ if (get_bit_at_position(pos + n, layer)) { ++ return true; ++ } ++ } ++ } ++ return false; ++ } ++ ++ // Returns true if any bit in region [p, p+word_size) is set in bit-layer layer. ++ bool is_any_bit_set_in_region(MetaWord* p, size_t word_size, unsigned layer) const { ++ assert(word_size % _smallest_chunk_word_size == 0, ++ err_msg("Region size " SIZE_FORMAT " not a multiple of smallest chunk size.", word_size)); ++ const unsigned pos = get_bitpos_for_address(p); ++ const unsigned num_bits = (unsigned) (word_size / _smallest_chunk_word_size); ++ return is_any_bit_set_in_region(pos, num_bits, layer); ++ } ++ ++ // Optimized case of set_bits_of_region for 32/64bit aligned access: ++ // pos is 32/64 aligned and num_bits is 32/64. ++ // This is the typical case when coalescing to medium chunks, whose size ++ // is 32 or 64 times the specialized chunk size (depending on class or non ++ // class case), so they occupy 64 bits which should be 64bit aligned, ++ // because chunks are chunk-size aligned. ++ template ++ void set_bits_of_region_T(unsigned pos, unsigned num_bits, unsigned layer, bool v) { ++ assert(pos % (sizeof(T) * 8) == 0, err_msg("Bit position must be aligned to %u (%u).", ++ (unsigned)(sizeof(T) * 8), pos)); ++ assert(num_bits == (sizeof(T) * 8), err_msg("Number of bits incorrect (%u), expected %u.", ++ num_bits, (unsigned)(sizeof(T) * 8))); ++ const size_t byteoffset = pos / 8; ++ assert(byteoffset <= (_map_size - sizeof(T)), ++ err_msg("invalid byte offset (" SIZE_FORMAT "), map size is " SIZE_FORMAT ".", byteoffset, _map_size)); ++ T* const pw = (T*)(_map[layer] + byteoffset); ++ *pw = v ? all_ones::value : (T) 0; ++ } ++ ++ // Set all bits in a region starting at pos to a value. ++ void set_bits_of_region(unsigned pos, unsigned num_bits, unsigned layer, bool v) { ++ assert(_map_size > 0, "not initialized"); ++ assert(layer == 0 || layer == 1, err_msg("Invalid layer %d.", layer)); ++ if (pos % 32 == 0 && num_bits == 32) { ++ set_bits_of_region_T(pos, num_bits, layer, v); ++ } else if (pos % 64 == 0 && num_bits == 64) { ++ set_bits_of_region_T(pos, num_bits, layer, v); ++ } else { ++ for (unsigned n = 0; n < num_bits; n ++) { ++ set_bit_at_position(pos + n, layer, v); ++ } ++ } ++ } ++ ++ // Helper: sets all bits in a region [p, p+word_size). ++ void set_bits_of_region(MetaWord* p, size_t word_size, unsigned layer, bool v) { ++ assert(word_size % _smallest_chunk_word_size == 0, ++ err_msg("Region size " SIZE_FORMAT " not a multiple of smallest chunk size.", word_size)); ++ const unsigned pos = get_bitpos_for_address(p); ++ const unsigned num_bits = (unsigned) (word_size / _smallest_chunk_word_size); ++ set_bits_of_region(pos, num_bits, layer, v); ++ } ++ ++ // Helper: given an address, return the bit position representing that address. ++ unsigned get_bitpos_for_address(const MetaWord* p) const { ++ assert(_reference_address != NULL, "not initialized"); ++ assert(p >= _reference_address && p < _reference_address + _word_size, ++ err_msg("Address %p out of range for occupancy map [%p..%p).", ++ p, _reference_address, _reference_address + _word_size)); ++ assert(is_aligned(p, _smallest_chunk_word_size * sizeof(MetaWord)), ++ err_msg("Address not aligned (%p).", p)); ++ const ptrdiff_t d = (p - _reference_address) / _smallest_chunk_word_size; ++ assert(d >= 0 && (size_t)d < _map_size * 8, "Sanity."); ++ return (unsigned) d; ++ } ++ ++ public: ++ ++ OccupancyMap(const MetaWord* reference_address, size_t word_size, size_t smallest_chunk_word_size) : ++ _reference_address(reference_address), _word_size(word_size), ++ _smallest_chunk_word_size(smallest_chunk_word_size) { ++ assert(reference_address != NULL, "invalid reference address"); ++ assert(is_aligned(reference_address, smallest_chunk_word_size), ++ "Reference address not aligned to smallest chunk size."); ++ assert(is_aligned(word_size, smallest_chunk_word_size), ++ "Word_size shall be a multiple of the smallest chunk size."); ++ // Calculate bitmap size: one bit per smallest_chunk_word_size'd area. ++ size_t num_bits = word_size / smallest_chunk_word_size; ++ _map_size = (num_bits + 7) / 8; ++ assert(_map_size * 8 >= num_bits, "sanity"); ++ _map[0] = (uint8_t*) os::malloc(_map_size, mtInternal); ++ _map[1] = (uint8_t*) os::malloc(_map_size, mtInternal); ++ assert(_map[0] != NULL && _map[1] != NULL, "Occupancy Map: allocation failed."); ++ memset(_map[1], 0, _map_size); ++ memset(_map[0], 0, _map_size); ++ // Sanity test: the first respectively last possible chunk start address in ++ // the covered range shall map to the first and last bit in the bitmap. ++ assert(get_bitpos_for_address(reference_address) == 0, ++ "First chunk address in range must map to fist bit in bitmap."); ++ assert(get_bitpos_for_address(reference_address + word_size - smallest_chunk_word_size) == num_bits - 1, ++ "Last chunk address in range must map to last bit in bitmap."); ++ } ++ ++ ~OccupancyMap() { ++ os::free(_map[0]); ++ os::free(_map[1]); ++ } ++ ++ // Returns true if at address x a chunk is starting. ++ bool chunk_starts_at_address(MetaWord* p) const { ++ const unsigned pos = get_bitpos_for_address(p); ++ return get_bit_at_position(pos, layer_chunk_start_map); ++ } ++ ++ void set_chunk_starts_at_address(MetaWord* p, bool v) { ++ const unsigned pos = get_bitpos_for_address(p); ++ set_bit_at_position(pos, layer_chunk_start_map, v); ++ } ++ ++ // Removes all chunk-start-bits inside a region, typically as a ++ // result of a chunk merge. ++ void wipe_chunk_start_bits_in_region(MetaWord* p, size_t word_size) { ++ set_bits_of_region(p, word_size, layer_chunk_start_map, false); ++ } ++ ++ // Returns true if there are life (in use) chunks in the region limited ++ // by [p, p+word_size). ++ bool is_region_in_use(MetaWord* p, size_t word_size) const { ++ return is_any_bit_set_in_region(p, word_size, layer_in_use_map); ++ } ++ ++ // Marks the region starting at p with the size word_size as in use ++ // or free, depending on v. ++ void set_region_in_use(MetaWord* p, size_t word_size, bool v) { ++ set_bits_of_region(p, word_size, layer_in_use_map, v); ++ } ++ ++#ifdef ASSERT ++ // Verify occupancy map for the address range [from, to). ++ // We need to tell it the address range, because the memory the ++ // occupancy map is covering may not be fully comitted yet. ++ void verify(MetaWord* from, MetaWord* to) { ++ Metachunk* chunk = NULL; ++ int nth_bit_for_chunk = 0; ++ MetaWord* chunk_end = NULL; ++ for (MetaWord* p = from; p < to; p += _smallest_chunk_word_size) { ++ const unsigned pos = get_bitpos_for_address(p); ++ // Check the chunk-starts-info: ++ if (get_bit_at_position(pos, layer_chunk_start_map)) { ++ // Chunk start marked in bitmap. ++ chunk = (Metachunk*) p; ++ if (chunk_end != NULL) { ++ assert(chunk_end == p, err_msg("Unexpected chunk start found at %p (expected " ++ "the next chunk to start at %p).", p, chunk_end)); ++ } ++ assert(chunk->is_valid_sentinel(), err_msg("Invalid chunk at address %p.", p)); ++ if (chunk->get_chunk_type() != HumongousIndex) { ++ guarantee(is_aligned(p, chunk->word_size()), err_msg("Chunk %p not aligned.", p)); ++ } ++ chunk_end = p + chunk->word_size(); ++ nth_bit_for_chunk = 0; ++ assert(chunk_end <= to, "Chunk end overlaps test address range."); ++ } else { ++ // No chunk start marked in bitmap. ++ assert(chunk != NULL, "Chunk should start at start of address range."); ++ assert(p < chunk_end, err_msg("Did not find expected chunk start at %p.", p)); ++ nth_bit_for_chunk ++; ++ } ++ // Check the in-use-info: ++ const bool in_use_bit = get_bit_at_position(pos, layer_in_use_map); ++ if (in_use_bit) { ++ assert(!chunk->is_tagged_free(), err_msg("Chunk %p: marked in-use in map but is free (bit %u).", ++ chunk, nth_bit_for_chunk)); ++ } else { ++ assert(chunk->is_tagged_free(), err_msg("Chunk %p: marked free in map but is in use (bit %u).", ++ chunk, nth_bit_for_chunk)); ++ } ++ } ++ } ++ ++ // Verify that a given chunk is correctly accounted for in the bitmap. ++ void verify_for_chunk(Metachunk* chunk) { ++ assert(chunk_starts_at_address((MetaWord*) chunk), ++ err_msg("No chunk start marked in map for chunk %p.", chunk)); ++ // For chunks larger than the minimal chunk size, no other chunk ++ // must start in its area. ++ if (chunk->word_size() > _smallest_chunk_word_size) { ++ assert(!is_any_bit_set_in_region(((MetaWord*) chunk) + _smallest_chunk_word_size, ++ chunk->word_size() - _smallest_chunk_word_size, layer_chunk_start_map), ++ "No chunk must start within another chunk."); ++ } ++ if (!chunk->is_tagged_free()) { ++ assert(is_region_in_use((MetaWord*)chunk, chunk->word_size()), ++ err_msg("Chunk %p is in use but marked as free in map (%d %d).", ++ chunk, chunk->get_chunk_type(), chunk->get_origin())); ++ } else { ++ assert(!is_region_in_use((MetaWord*)chunk, chunk->word_size()), ++ err_msg("Chunk %p is free but marked as in-use in map (%d %d).", ++ chunk, chunk->get_chunk_type(), chunk->get_origin())); ++ } ++ } ++ ++#endif // ASSERT ++ ++}; ++ + // A VirtualSpaceList node. + class VirtualSpaceNode : public CHeapObj { + friend class VirtualSpaceList; +@@ -336,6 +692,9 @@ class VirtualSpaceNode : public CHeapObj { + // Link to next VirtualSpaceNode + VirtualSpaceNode* _next; + ++ // Whether this node is contained in class or metaspace. ++ const bool _is_class; ++ + // total in the VirtualSpace + MemRegion _reserved; + ReservedSpace _rs; +@@ -344,6 +703,8 @@ class VirtualSpaceNode : public CHeapObj { + // count of chunks contained in this VirtualSpace + uintx _container_count; + ++ OccupancyMap* _occupancy_map; ++ + // Convenience functions to access the _virtual_space + char* low() const { return virtual_space()->low(); } + char* high() const { return virtual_space()->high(); } +@@ -354,16 +715,28 @@ class VirtualSpaceNode : public CHeapObj { + + // Committed but unused space in the virtual space + size_t free_words_in_vs() const; ++ ++ // True if this node belongs to class metaspace. ++ bool is_class() const { return _is_class; } ++ ++ // Helper function for take_from_committed: allocate padding chunks ++ // until top is at the given address. ++ void allocate_padding_chunks_until_top_is_at(MetaWord* target_top); ++ + public: + +- VirtualSpaceNode(size_t byte_size); +- VirtualSpaceNode(ReservedSpace rs) : _top(NULL), _next(NULL), _rs(rs), _container_count(0) {} ++ VirtualSpaceNode(bool is_class, size_t byte_size); ++ VirtualSpaceNode(bool is_class, ReservedSpace rs) : ++ _is_class(is_class), _top(NULL), _next(NULL), _rs(rs), _container_count(0), _occupancy_map(NULL) {} + ~VirtualSpaceNode(); + + // Convenience functions for logical bottom and end + MetaWord* bottom() const { return (MetaWord*) _virtual_space.low(); } + MetaWord* end() const { return (MetaWord*) _virtual_space.high(); } + ++ const OccupancyMap* occupancy_map() const { return _occupancy_map; } ++ OccupancyMap* occupancy_map() { return _occupancy_map; } ++ + bool contains(const void* ptr) { return ptr >= low() && ptr < high(); } + + size_t reserved_words() const { return _virtual_space.reserved_size() / BytesPerWord; } +@@ -424,12 +797,18 @@ class VirtualSpaceNode : public CHeapObj { + // the smallest chunk size. + void retire(ChunkManager* chunk_manager); + +-#ifdef ASSERT +- // Debug support +- void mangle(); +-#endif + + void print_on(outputStream* st) const; ++ void print_map(outputStream* st, bool is_class) const; ++ ++ // Debug support ++ DEBUG_ONLY(void mangle();) ++ // Verify counters, all chunks in this list node and the occupancy map. ++ DEBUG_ONLY(void verify();) ++ // Verify that all free chunks in this node are ideally merged ++ // (there not should be multiple small chunks where a large chunk could exist.) ++ DEBUG_ONLY(void verify_free_chunks_are_ideally_merged();) ++ + }; + + #define assert_is_ptr_aligned(ptr, alignment) \ +@@ -458,7 +837,8 @@ static bool should_commit_large_pages_when_reserving(size_t bytes) { + } + + // byte_size is the size of the associated virtualspace. +-VirtualSpaceNode::VirtualSpaceNode(size_t bytes) : _top(NULL), _next(NULL), _rs(), _container_count(0) { ++VirtualSpaceNode::VirtualSpaceNode(bool is_class, size_t bytes) : ++ _is_class(is_class), _top(NULL), _next(NULL), _rs(), _container_count(0), _occupancy_map(NULL) { + assert_is_size_aligned(bytes, Metaspace::reserve_alignment()); + + #if INCLUDE_CDS +@@ -504,12 +884,14 @@ VirtualSpaceNode::VirtualSpaceNode(size_t bytes) : _top(NULL), _next(NULL), _rs( + } + + void VirtualSpaceNode::purge(ChunkManager* chunk_manager) { ++ DEBUG_ONLY(this->verify();) + Metachunk* chunk = first_chunk(); + Metachunk* invalid_chunk = (Metachunk*) top(); + while (chunk < invalid_chunk ) { + assert(chunk->is_tagged_free(), "Should be tagged free"); + MetaWord* next = ((MetaWord*)chunk) + chunk->word_size(); + chunk_manager->remove_chunk(chunk); ++ chunk->remove_sentinel(); + assert(chunk->next() == NULL && + chunk->prev() == NULL, + "Was not removed from its list"); +@@ -517,6 +899,88 @@ void VirtualSpaceNode::purge(ChunkManager* chunk_manager) { + } + } + ++void VirtualSpaceNode::print_map(outputStream* st, bool is_class) const { ++ ++ if (bottom() == top()) { ++ return; ++ } ++ ++ const size_t spec_chunk_size = is_class ? ClassSpecializedChunk : SpecializedChunk; ++ const size_t small_chunk_size = is_class ? ClassSmallChunk : SmallChunk; ++ const size_t med_chunk_size = is_class ? ClassMediumChunk : MediumChunk; ++ ++ int line_len = 100; ++ const size_t section_len = align_up(spec_chunk_size * line_len, med_chunk_size); ++ line_len = (int)(section_len / spec_chunk_size); ++ ++ static const int NUM_LINES = 4; ++ ++ char* lines[NUM_LINES]; ++ for (int i = 0; i < NUM_LINES; i ++) { ++ lines[i] = (char*)os::malloc(line_len, mtInternal); ++ } ++ int pos = 0; ++ const MetaWord* p = bottom(); ++ const Metachunk* chunk = (const Metachunk*)p; ++ const MetaWord* chunk_end = p + chunk->word_size(); ++ while (p < top()) { ++ if (pos == line_len) { ++ pos = 0; ++ for (int i = 0; i < NUM_LINES; i ++) { ++ st->fill_to(22); ++ st->print_raw(lines[i], line_len); ++ st->cr(); ++ } ++ } ++ if (pos == 0) { ++ st->print(PTR_FORMAT ":", p2i(p)); ++ } ++ if (p == chunk_end) { ++ chunk = (Metachunk*)p; ++ chunk_end = p + chunk->word_size(); ++ } ++ // line 1: chunk starting points (a dot if that area is a chunk start). ++ lines[0][pos] = p == (const MetaWord*)chunk ? '.' : ' '; ++ ++ // Line 2: chunk type (x=spec, s=small, m=medium, h=humongous), uppercase if ++ // chunk is in use. ++ const bool chunk_is_free = ((Metachunk*)chunk)->is_tagged_free(); ++ if (chunk->word_size() == spec_chunk_size) { ++ lines[1][pos] = chunk_is_free ? 'x' : 'X'; ++ } else if (chunk->word_size() == small_chunk_size) { ++ lines[1][pos] = chunk_is_free ? 's' : 'S'; ++ } else if (chunk->word_size() == med_chunk_size) { ++ lines[1][pos] = chunk_is_free ? 'm' : 'M'; ++ } else if (chunk->word_size() > med_chunk_size) { ++ lines[1][pos] = chunk_is_free ? 'h' : 'H'; ++ } else { ++ ShouldNotReachHere(); ++ } ++ ++ // Line 3: chunk origin ++ const ChunkOrigin origin = chunk->get_origin(); ++ lines[2][pos] = origin == origin_normal ? ' ' : '0' + (int) origin; ++ ++ // Line 4: Virgin chunk? Virgin chunks are chunks created as a byproduct of padding or splitting, ++ // but were never used. ++ lines[3][pos] = chunk->get_use_count() > 0 ? ' ' : 'v'; ++ ++ p += spec_chunk_size; ++ pos ++; ++ } ++ if (pos > 0) { ++ for (int i = 0; i < NUM_LINES; i ++) { ++ st->fill_to(22); ++ st->print_raw(lines[i], line_len); ++ st->cr(); ++ } ++ } ++ for (int i = 0; i < NUM_LINES; i ++) { ++ os::free(lines[i]); ++ } ++} ++ ++ + #ifdef ASSERT + uint VirtualSpaceNode::container_count_slow() { + uint count = 0; +@@ -524,6 +988,7 @@ uint VirtualSpaceNode::container_count_slow() { + Metachunk* invalid_chunk = (Metachunk*) top(); + while (chunk < invalid_chunk ) { + MetaWord* next = ((MetaWord*)chunk) + chunk->word_size(); ++ do_verify_chunk(chunk); + // Don't count the chunks on the free lists. Those are + // still part of the VirtualSpaceNode but not currently + // counted. +@@ -536,6 +1001,77 @@ uint VirtualSpaceNode::container_count_slow() { + } + #endif + ++#ifdef ASSERT ++// Verify counters, all chunks in this list node and the occupancy map. ++void VirtualSpaceNode::verify() { ++ uintx num_in_use_chunks = 0; ++ Metachunk* chunk = first_chunk(); ++ Metachunk* invalid_chunk = (Metachunk*) top(); ++ ++ // Iterate the chunks in this node and verify each chunk. ++ while (chunk < invalid_chunk ) { ++ DEBUG_ONLY(do_verify_chunk(chunk);) ++ if (!chunk->is_tagged_free()) { ++ num_in_use_chunks ++; ++ } ++ MetaWord* next = ((MetaWord*)chunk) + chunk->word_size(); ++ chunk = (Metachunk*) next; ++ } ++ assert(_container_count == num_in_use_chunks, err_msg("Container count mismatch (real: " UINTX_FORMAT ++ ", counter: " UINTX_FORMAT ".", num_in_use_chunks, _container_count)); ++ // Also verify the occupancy map. ++ occupancy_map()->verify(this->bottom(), this->top()); ++} ++#endif // ASSERT ++ ++#ifdef ASSERT ++// Verify that all free chunks in this node are ideally merged ++// (there not should be multiple small chunks where a large chunk could exist.) ++void VirtualSpaceNode::verify_free_chunks_are_ideally_merged() { ++ Metachunk* chunk = first_chunk(); ++ Metachunk* invalid_chunk = (Metachunk*) top(); ++ // Shorthands. ++ const size_t size_med = (is_class() ? ClassMediumChunk : MediumChunk) * BytesPerWord; ++ const size_t size_small = (is_class() ? ClassSmallChunk : SmallChunk) * BytesPerWord; ++ int num_free_chunks_since_last_med_boundary = -1; ++ int num_free_chunks_since_last_small_boundary = -1; ++ while (chunk < invalid_chunk ) { ++ // Test for missed chunk merge opportunities: count number of free chunks since last chunk boundary. ++ // Reset the counter when encountering a non-free chunk. ++ if (chunk->get_chunk_type() != HumongousIndex) { ++ if (chunk->is_tagged_free()) { ++ // Count successive free, non-humongous chunks. ++ if (is_aligned(chunk, size_small)) { ++ assert(num_free_chunks_since_last_small_boundary <= 1, ++ err_msg("Missed chunk merge opportunity at " PTR_FORMAT " for chunk size " SIZE_FORMAT_HEX ".", p2i(chunk) - size_small, size_small)); ++ num_free_chunks_since_last_small_boundary = 0; ++ } else if (num_free_chunks_since_last_small_boundary != -1) { ++ num_free_chunks_since_last_small_boundary ++; ++ } ++ if (is_aligned(chunk, size_med)) { ++ assert(num_free_chunks_since_last_med_boundary <= 1, ++ err_msg("Missed chunk merge opportunity at " PTR_FORMAT " for chunk size " SIZE_FORMAT_HEX ".", p2i(chunk) - size_med, size_med)); ++ num_free_chunks_since_last_med_boundary = 0; ++ } else if (num_free_chunks_since_last_med_boundary != -1) { ++ num_free_chunks_since_last_med_boundary ++; ++ } ++ } else { ++ // Encountering a non-free chunk, reset counters. ++ num_free_chunks_since_last_med_boundary = -1; ++ num_free_chunks_since_last_small_boundary = -1; ++ } ++ } else { ++ // One cannot merge areas with a humongous chunk in the middle. Reset counters. ++ num_free_chunks_since_last_med_boundary = -1; ++ num_free_chunks_since_last_small_boundary = -1; ++ } ++ ++ MetaWord* next = ((MetaWord*)chunk) + chunk->word_size(); ++ chunk = (Metachunk*) next; ++ } ++} ++#endif // ASSERT ++ + // List of VirtualSpaces for metadata allocation. + class VirtualSpaceList : public CHeapObj { + friend class VirtualSpaceNode; +@@ -623,6 +1159,7 @@ class VirtualSpaceList : public CHeapObj { + void purge(ChunkManager* chunk_manager); + + void print_on(outputStream* st) const; ++ void print_map(outputStream* st) const; + + class VirtualSpaceListIterator : public StackObj { + VirtualSpaceNode* _virtual_spaces; +@@ -728,8 +1265,6 @@ class SpaceManager : public CHeapObj { + + Mutex* lock() const { return _lock; } + +- const char* chunk_size_name(ChunkIndex index) const; +- + protected: + void initialize(); + +@@ -945,6 +1480,9 @@ void BlockFreelist::print_on(outputStream* st) const { + + VirtualSpaceNode::~VirtualSpaceNode() { + _rs.release(); ++ if (_occupancy_map != NULL) { ++ delete _occupancy_map; ++ } + #ifdef ASSERT + size_t word_size = sizeof(*this) / BytesPerWord; + Copy::fill_to_words((HeapWord*) this, word_size, 0xf1f1f1f1); +@@ -964,10 +1502,124 @@ size_t VirtualSpaceNode::free_words_in_vs() const { + return pointer_delta(end(), top(), sizeof(MetaWord)); + } + ++// Given an address larger than top(), allocate padding chunks until top is at the given address. ++void VirtualSpaceNode::allocate_padding_chunks_until_top_is_at(MetaWord* target_top) { ++ ++ assert(target_top > top(), "Sanity"); ++ ++ // Padding chunks are added to the freelist. ++ ChunkManager* const chunk_manager = Metaspace::get_chunk_manager(this->is_class()); ++ ++ // shorthands ++ const size_t spec_word_size = chunk_manager->specialized_chunk_word_size(); ++ const size_t small_word_size = chunk_manager->small_chunk_word_size(); ++ const size_t med_word_size = chunk_manager->medium_chunk_word_size(); ++ ++ while (top() < target_top) { ++ ++ // We could make this coding more generic, but right now we only deal with two possible chunk sizes ++ // for padding chunks, so it is not worth it. ++ size_t padding_chunk_word_size = small_word_size; ++ if (is_aligned(top(), small_word_size * sizeof(MetaWord)) == false) { ++ assert_is_ptr_aligned(top(), spec_word_size * sizeof(MetaWord)); // Should always hold true. ++ padding_chunk_word_size = spec_word_size; ++ } ++ MetaWord* here = top(); ++ assert_is_ptr_aligned(here, padding_chunk_word_size * sizeof(MetaWord)); ++ inc_top(padding_chunk_word_size); ++ ++ // Create new padding chunk. ++ ChunkIndex padding_chunk_type = get_chunk_type_by_size(padding_chunk_word_size, is_class()); ++ assert(padding_chunk_type == SpecializedIndex || padding_chunk_type == SmallIndex, "sanity"); ++ ++ Metachunk* const padding_chunk = ++ ::new (here) Metachunk(padding_chunk_type, is_class(), padding_chunk_word_size, this); ++ assert(padding_chunk == (Metachunk*)here, "Sanity"); ++ DEBUG_ONLY(padding_chunk->set_origin(origin_pad);) ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Created padding chunk in %s at " ++ PTR_FORMAT ", size " SIZE_FORMAT_HEX ".", ++ (is_class() ? "class space " : "metaspace"), ++ p2i(padding_chunk), padding_chunk->word_size() * sizeof(MetaWord)); ++ } ++ ++ // Mark chunk start in occupancy map. ++ occupancy_map()->set_chunk_starts_at_address((MetaWord*)padding_chunk, true); ++ ++ // Chunks are born as in-use (see MetaChunk ctor). So, before returning ++ // the padding chunk to its chunk manager, mark it as in use (ChunkManager ++ // will assert that). ++ do_update_in_use_info_for_chunk(padding_chunk, true); ++ ++ // Return Chunk to freelist. ++ inc_container_count(); ++ chunk_manager->return_single_chunk(padding_chunk_type, padding_chunk); ++ // Please note: at this point, ChunkManager::return_single_chunk() ++ // may already have merged the padding chunk with neighboring chunks, so ++ // it may have vanished at this point. Do not reference the padding ++ // chunk beyond this point. ++ } ++ ++ assert(top() == target_top, "Sanity"); ++ ++} // allocate_padding_chunks_until_top_is_at() ++ + // Allocates the chunk from the virtual space only. + // This interface is also used internally for debugging. Not all + // chunks removed here are necessarily used for allocation. + Metachunk* VirtualSpaceNode::take_from_committed(size_t chunk_word_size) { ++ // Non-humongous chunks are to be allocated aligned to their chunk ++ // size. So, start addresses of medium chunks are aligned to medium ++ // chunk size, those of small chunks to small chunk size and so ++ // forth. This facilitates merging of free chunks and reduces ++ // fragmentation. Chunk sizes are spec < small < medium, with each ++ // larger chunk size being a multiple of the next smaller chunk ++ // size. ++ // Because of this alignment, me may need to create a number of padding ++ // chunks. These chunks are created and added to the freelist. ++ ++ // The chunk manager to which we will give our padding chunks. ++ ChunkManager* const chunk_manager = Metaspace::get_chunk_manager(this->is_class()); ++ ++ // shorthands ++ const size_t spec_word_size = chunk_manager->specialized_chunk_word_size(); ++ const size_t small_word_size = chunk_manager->small_chunk_word_size(); ++ const size_t med_word_size = chunk_manager->medium_chunk_word_size(); ++ ++ assert(chunk_word_size == spec_word_size || chunk_word_size == small_word_size || ++ chunk_word_size >= med_word_size, "Invalid chunk size requested."); ++ ++ // Chunk alignment (in bytes) == chunk size unless humongous. ++ // Humongous chunks are aligned to the smallest chunk size (spec). ++ const size_t required_chunk_alignment = (chunk_word_size > med_word_size ? ++ spec_word_size : chunk_word_size) * sizeof(MetaWord); ++ ++ // Do we have enough space to create the requested chunk plus ++ // any padding chunks needed? ++ MetaWord* const next_aligned = ++ static_cast(align_up(top(), required_chunk_alignment)); ++ if (!is_available((next_aligned - top()) + chunk_word_size)) { ++ return NULL; ++ } ++ ++ // Before allocating the requested chunk, allocate padding chunks if necessary. ++ // We only need to do this for small or medium chunks: specialized chunks are the ++ // smallest size, hence always aligned. Homungous chunks are allocated unaligned ++ // (implicitly, also aligned to smallest chunk size). ++ if ((chunk_word_size == med_word_size || chunk_word_size == small_word_size) && next_aligned > top()) { ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Creating padding chunks in %s between %p and %p...", ++ (is_class() ? "class space " : "metaspace"), ++ top(), next_aligned); ++ } ++ allocate_padding_chunks_until_top_is_at(next_aligned); ++ // Now, top should be aligned correctly. ++ assert_is_ptr_aligned(top(), required_chunk_alignment); ++ } ++ ++ // Now, top should be aligned correctly. ++ assert_is_ptr_aligned(top(), required_chunk_alignment); ++ + // Bottom of the new chunk + MetaWord* chunk_limit = top(); + assert(chunk_limit != NULL, "Not safe to call this method"); +@@ -991,7 +1643,20 @@ Metachunk* VirtualSpaceNode::take_from_committed(size_t chunk_word_size) { + inc_top(chunk_word_size); + + // Initialize the chunk +- Metachunk* result = ::new (chunk_limit) Metachunk(chunk_word_size, this); ++ ChunkIndex chunk_type = get_chunk_type_by_size(chunk_word_size, is_class()); ++ Metachunk* result = ::new (chunk_limit) Metachunk(chunk_type, is_class(), chunk_word_size, this); ++ assert(result == (Metachunk*)chunk_limit, "Sanity"); ++ occupancy_map()->set_chunk_starts_at_address((MetaWord*)result, true); ++ do_update_in_use_info_for_chunk(result, true); ++ ++ inc_container_count(); ++ ++ DEBUG_ONLY(chunk_manager->locked_verify()); ++ DEBUG_ONLY(this->verify()); ++ DEBUG_ONLY(do_verify_chunk(result)); ++ ++ result->inc_use_count(); ++ + return result; + } + +@@ -1010,6 +1675,16 @@ bool VirtualSpaceNode::expand_by(size_t min_words, size_t preferred_words) { + size_t commit = MIN2(preferred_bytes, uncommitted); + bool result = virtual_space()->expand_by(commit, false); + ++ if (TraceMetadataChunkAllocation) { ++ if (result) { ++ gclog_or_tty->print_cr("Expanded %s virtual space list node by " SIZE_FORMAT " words.", ++ (is_class() ? "class" : "non-class"), commit); ++ } else { ++ gclog_or_tty->print_cr("Failed to expand %s virtual space list node by " SIZE_FORMAT " words.", ++ (is_class() ? "class" : "non-class"), commit); ++ } ++ } ++ + assert(result, "Failed to commit memory"); + + return result; +@@ -1018,9 +1693,6 @@ bool VirtualSpaceNode::expand_by(size_t min_words, size_t preferred_words) { + Metachunk* VirtualSpaceNode::get_chunk_vs(size_t chunk_word_size) { + assert_lock_strong(SpaceManager::expand_lock()); + Metachunk* result = take_from_committed(chunk_word_size); +- if (result != NULL) { +- inc_container_count(); +- } + return result; + } + +@@ -1060,6 +1732,10 @@ bool VirtualSpaceNode::initialize() { + _rs.size() / BytesPerWord)); + } + ++ // Initialize Occupancy Map. ++ const size_t smallest_chunk_size = is_class() ? ClassSpecializedChunk : SpecializedChunk; ++ _occupancy_map = new OccupancyMap(bottom(), reserved_words(), smallest_chunk_size); ++ + return result; + } + +@@ -1140,8 +1816,140 @@ void ChunkManager::remove_chunk(Metachunk* chunk) { + humongous_dictionary()->remove_chunk(chunk); + } + +- // Chunk is being removed from the chunks free list. +- dec_free_chunks_total(chunk->word_size()); ++ // Chunk has been removed from the chunks free list, update counters. ++ account_for_removed_chunk(chunk); ++} ++ ++bool ChunkManager::attempt_to_coalesce_around_chunk(Metachunk* chunk, ChunkIndex target_chunk_type) { ++ assert_lock_strong(SpaceManager::expand_lock()); ++ assert(chunk != NULL, "invalid chunk pointer"); ++ // Check for valid merge combinations. ++ assert((chunk->get_chunk_type() == SpecializedIndex && ++ (target_chunk_type == SmallIndex || target_chunk_type == MediumIndex)) || ++ (chunk->get_chunk_type() == SmallIndex && target_chunk_type == MediumIndex), ++ "Invalid chunk merge combination."); ++ ++ const size_t target_chunk_word_size = ++ get_size_for_nonhumongous_chunktype(target_chunk_type, this->is_class()); ++ ++ // [ prospective merge region ) ++ MetaWord* const p_merge_region_start = ++ (MetaWord*) align_down(chunk, target_chunk_word_size * sizeof(MetaWord)); ++ MetaWord* const p_merge_region_end = ++ p_merge_region_start + target_chunk_word_size; ++ ++ // We need the VirtualSpaceNode containing this chunk and its occupancy map. ++ VirtualSpaceNode* const vsn = chunk->container(); ++ OccupancyMap* const ocmap = vsn->occupancy_map(); ++ ++ // The prospective chunk merge range must be completely contained by the ++ // committed range of the virtual space node. ++ if (p_merge_region_start < vsn->bottom() || p_merge_region_end > vsn->top()) { ++ return false; ++ } ++ ++ // Only attempt to merge this range if at its start a chunk starts and at its end ++ // a chunk ends. If a chunk (can only be humongous) straddles either start or end ++ // of that range, we cannot merge. ++ if (!ocmap->chunk_starts_at_address(p_merge_region_start)) { ++ return false; ++ } ++ if (p_merge_region_end < vsn->top() && ++ !ocmap->chunk_starts_at_address(p_merge_region_end)) { ++ return false; ++ } ++ ++ // Now check if the prospective merge area contains live chunks. If it does we cannot merge. ++ if (ocmap->is_region_in_use(p_merge_region_start, target_chunk_word_size)) { ++ return false; ++ } ++ ++ // Success! Remove all chunks in this region... ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("%s: coalescing chunks in area [%p-%p)...", ++ (is_class() ? "class space" : "metaspace"), ++ p_merge_region_start, p_merge_region_end); ++ } ++ ++ const int num_chunks_removed = ++ remove_chunks_in_area(p_merge_region_start, target_chunk_word_size); ++ ++ // ... and create a single new bigger chunk. ++ Metachunk* const p_new_chunk = ++ ::new (p_merge_region_start) Metachunk(target_chunk_type, is_class(), target_chunk_word_size, vsn); ++ assert(p_new_chunk == (Metachunk*)p_merge_region_start, "Sanity"); ++ p_new_chunk->set_origin(origin_merge); ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("%s: created coalesced chunk at %p, size " SIZE_FORMAT_HEX ".", ++ (is_class() ? "class space" : "metaspace"), ++ p_new_chunk, p_new_chunk->word_size() * sizeof(MetaWord)); ++ } ++ ++ // Fix occupancy map: remove old start bits of the small chunks and set new start bit. ++ ocmap->wipe_chunk_start_bits_in_region(p_merge_region_start, target_chunk_word_size); ++ ocmap->set_chunk_starts_at_address(p_merge_region_start, true); ++ ++ // Mark chunk as free. Note: it is not necessary to update the occupancy ++ // map in-use map, because the old chunks were also free, so nothing ++ // should have changed. ++ p_new_chunk->set_is_tagged_free(true); ++ ++ // Add new chunk to its freelist. ++ ChunkList* const list = free_chunks(target_chunk_type); ++ list->return_chunk_at_head(p_new_chunk); ++ ++ // And adjust ChunkManager:: _free_chunks_count (_free_chunks_total ++ // should not have changed, because the size of the space should be the same) ++ _free_chunks_count -= num_chunks_removed; ++ _free_chunks_count ++; ++ ++ // VirtualSpaceNode::container_count does not have to be modified: ++ // it means "number of active (non-free) chunks", so merging free chunks ++ // should not affect that count. ++ ++ // At the end of a chunk merge, run verification tests. ++ DEBUG_ONLY(this->locked_verify()); ++ DEBUG_ONLY(vsn->verify()); ++ ++ return true; ++} ++ ++// Remove all chunks in the given area - the chunks are supposed to be free - ++// from their corresponding freelists. Mark them as invalid. ++// - This does not correct the occupancy map. ++// - This does not adjust the counters in ChunkManager. ++// - Does not adjust container count counter in containing VirtualSpaceNode ++// Returns number of chunks removed. ++int ChunkManager::remove_chunks_in_area(MetaWord* p, size_t word_size) { ++ assert(p != NULL && word_size > 0, "Invalid range."); ++ const size_t smallest_chunk_size = get_size_for_nonhumongous_chunktype(SpecializedIndex, is_class()); ++ assert_is_size_aligned(word_size, smallest_chunk_size); ++ ++ Metachunk* const start = (Metachunk*) p; ++ const Metachunk* const end = (Metachunk*)(p + word_size); ++ Metachunk* cur = start; ++ int num_removed = 0; ++ while (cur < end) { ++ Metachunk* next = (Metachunk*)(((MetaWord*)cur) + cur->word_size()); ++ DEBUG_ONLY(do_verify_chunk(cur)); ++ assert(cur->get_chunk_type() != HumongousIndex, err_msg("Unexpected humongous chunk found at %p.", cur)); ++ assert(cur->is_tagged_free(), err_msg("Chunk expected to be free (%p)", cur)); ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("%s: removing chunk %p, size " SIZE_FORMAT_HEX ".", ++ (is_class() ? "class space" : "metaspace"), ++ cur, cur->word_size() * sizeof(MetaWord)); ++ } ++ cur->remove_sentinel(); ++ // Note: cannot call ChunkManager::remove_chunk, because that ++ // modifies the counters in ChunkManager, which we do not want. So ++ // we call remove_chunk on the freelist directly (see also the ++ // splitting function which does the same). ++ ChunkList* const list = free_chunks(list_index(cur->word_size())); ++ list->remove_chunk(cur); ++ num_removed ++; ++ cur = next; ++ } ++ return num_removed; + } + + // Walk the list of VirtualSpaceNodes and delete +@@ -1161,6 +1969,10 @@ void VirtualSpaceList::purge(ChunkManager* chunk_manager) { + // Don't free the current virtual space since it will likely + // be needed soon. + if (vsl->container_count() == 0 && vsl != current_virtual_space()) { ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Purging VirtualSpaceNode " PTR_FORMAT " (capacity: " SIZE_FORMAT ++ ", used: " SIZE_FORMAT ").", p2i(vsl), vsl->capacity_words_in_vs(), vsl->used_words_in_vs()); ++ } + // Unlink it from the list + if (prev_vsl == vsl) { + // This is the case of the current node being the first node. +@@ -1221,17 +2033,24 @@ void VirtualSpaceList::retire_current_virtual_space() { + } + + void VirtualSpaceNode::retire(ChunkManager* chunk_manager) { ++ assert(this->is_class() == chunk_manager->is_class(), "Wrong ChunkManager?"); + for (int i = (int)MediumIndex; i >= (int)ZeroIndex; --i) { + ChunkIndex index = (ChunkIndex)i; +- size_t chunk_size = chunk_manager->free_chunks(index)->size(); ++ size_t chunk_size = chunk_manager->size_by_index(index); + + while (free_words_in_vs() >= chunk_size) { + DEBUG_ONLY(verify_container_count();) + Metachunk* chunk = get_chunk_vs(chunk_size); +- assert(chunk != NULL, "allocation should have been successful"); +- +- chunk_manager->return_chunks(index, chunk); +- chunk_manager->inc_free_chunks_total(chunk_size); ++ // Chunk will be allocated aligned, so allocation may require ++ // additional padding chunks. That may cause above allocation to ++ // fail. Just ignore the failed allocation and continue with the ++ // next smaller chunk size. As the VirtualSpaceNode comitted ++ // size should be a multiple of the smallest chunk size, we ++ // should always be able to fill the VirtualSpace completely. ++ if (chunk == NULL) { ++ break; ++ } ++ chunk_manager->return_single_chunk(index, chunk); + DEBUG_ONLY(verify_container_count();) + } + } +@@ -1259,7 +2078,7 @@ VirtualSpaceList::VirtualSpaceList(ReservedSpace rs) : + _virtual_space_count(0) { + MutexLockerEx cl(SpaceManager::expand_lock(), + Mutex::_no_safepoint_check_flag); +- VirtualSpaceNode* class_entry = new VirtualSpaceNode(rs); ++ VirtualSpaceNode* class_entry = new VirtualSpaceNode(is_class(), rs); + bool succeeded = class_entry->initialize(); + if (succeeded) { + link_vs(class_entry); +@@ -1291,7 +2110,7 @@ bool VirtualSpaceList::create_new_virtual_space(size_t vs_word_size) { + assert_is_size_aligned(vs_byte_size, Metaspace::reserve_alignment()); + + // Allocate the meta virtual space and initialize it. +- VirtualSpaceNode* new_entry = new VirtualSpaceNode(vs_byte_size); ++ VirtualSpaceNode* new_entry = new VirtualSpaceNode(is_class(), vs_byte_size); + if (!new_entry->initialize()) { + delete new_entry; + return false; +@@ -1345,12 +2164,22 @@ bool VirtualSpaceList::expand_by(size_t min_words, size_t preferred_words) { + assert_is_size_aligned(preferred_words, Metaspace::commit_alignment_words()); + assert(min_words <= preferred_words, "Invalid arguments"); + ++ const char* const class_or_not = (is_class() ? "class" : "non-class"); ++ + if (!MetaspaceGC::can_expand(min_words, this->is_class())) { ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Cannot expand %s virtual space list.", ++ class_or_not); ++ } + return false; + } + + size_t allowed_expansion_words = MetaspaceGC::allowed_expansion(); + if (allowed_expansion_words < min_words) { ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Cannot expand %s virtual space list (must try gc first).", ++ class_or_not); ++ } + return false; + } + +@@ -1361,8 +2190,16 @@ bool VirtualSpaceList::expand_by(size_t min_words, size_t preferred_words) { + min_words, + max_expansion_words); + if (vs_expanded) { ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Expanded %s virtual space list.", ++ class_or_not); ++ } + return true; + } ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("%s virtual space list: retire current node.", ++ class_or_not); ++ } + retire_current_virtual_space(); + + // Get another virtual space. +@@ -1386,6 +2223,24 @@ bool VirtualSpaceList::expand_by(size_t min_words, size_t preferred_words) { + return false; + } + ++// Given a chunk, calculate the largest possible padding space which ++// could be required when allocating it. ++static size_t largest_possible_padding_size_for_chunk(size_t chunk_word_size, bool is_class) { ++ const ChunkIndex chunk_type = get_chunk_type_by_size(chunk_word_size, is_class); ++ if (chunk_type != HumongousIndex) { ++ // Normal, non-humongous chunks are allocated at chunk size ++ // boundaries, so the largest padding space required would be that ++ // minus the smallest chunk size. ++ const size_t smallest_chunk_size = is_class ? ClassSpecializedChunk : SpecializedChunk; ++ return chunk_word_size - smallest_chunk_size; ++ } else { ++ // Humongous chunks are allocated at smallest-chunksize ++ // boundaries, so there is no padding required. ++ return 0; ++ } ++} ++ ++ + Metachunk* VirtualSpaceList::get_new_chunk(size_t chunk_word_size, size_t suggested_commit_granularity) { + + // Allocate a chunk out of the current virtual space. +@@ -1398,7 +2253,11 @@ Metachunk* VirtualSpaceList::get_new_chunk(size_t chunk_word_size, size_t sugges + // The expand amount is currently only determined by the requested sizes + // and not how much committed memory is left in the current virtual space. + +- size_t min_word_size = align_size_up(chunk_word_size, Metaspace::commit_alignment_words()); ++ // We must have enough space for the requested size and any ++ // additional reqired padding chunks. ++ const size_t size_for_padding = largest_possible_padding_size_for_chunk(chunk_word_size, this->is_class()); ++ ++ size_t min_word_size = align_size_up(chunk_word_size + size_for_padding, Metaspace::commit_alignment_words()); + size_t preferred_word_size = align_size_up(suggested_commit_granularity, Metaspace::commit_alignment_words()); + if (min_word_size >= preferred_word_size) { + // Can happen when humongous chunks are allocated. +@@ -1424,6 +2283,18 @@ void VirtualSpaceList::print_on(outputStream* st) const { + } + } + ++void VirtualSpaceList::print_map(outputStream* st) const { ++ VirtualSpaceNode* list = virtual_space_list(); ++ VirtualSpaceListIterator iter(list); ++ unsigned i = 0; ++ while (iter.repeat()) { ++ st->print_cr("Node %u:", i); ++ VirtualSpaceNode* node = iter.get_next(); ++ node->print_map(st, this->is_class()); ++ i ++; ++ } ++} ++ + // MetaspaceGC methods + + // VM_CollectForMetadataAllocation is the vm operation used to GC. +@@ -1547,6 +2418,10 @@ bool MetaspaceGC::can_expand(size_t word_size, bool is_class) { + if (is_class && Metaspace::using_class_space()) { + size_t class_committed = MetaspaceAux::committed_bytes(Metaspace::ClassType); + if (class_committed + word_size * BytesPerWord > CompressedClassSpaceSize) { ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Cannot expand %s metaspace by " SIZE_FORMAT " words (CompressedClassSpaceSize = " SIZE_FORMAT " words)", ++ (is_class ? "class" : "non-class"), word_size, CompressedClassSpaceSize / sizeof(MetaWord)); ++ } + return false; + } + } +@@ -1554,6 +2429,10 @@ bool MetaspaceGC::can_expand(size_t word_size, bool is_class) { + // Check if the user has imposed a limit on the metaspace memory. + size_t committed_bytes = MetaspaceAux::committed_bytes(); + if (committed_bytes + word_size * BytesPerWord > MaxMetaspaceSize) { ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Cannot expand %s metaspace by " SIZE_FORMAT " words (MaxMetaspaceSize = " SIZE_FORMAT " words)", ++ (is_class ? "class" : "non-class"), word_size, MaxMetaspaceSize / sizeof(MetaWord)); ++ } + return false; + } + +@@ -1571,6 +2450,11 @@ size_t MetaspaceGC::allowed_expansion() { + size_t left_until_max = MaxMetaspaceSize - committed_bytes; + size_t left_until_GC = capacity_until_gc - committed_bytes; + size_t left_to_commit = MIN2(left_until_GC, left_until_max); ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("allowed expansion words: " SIZE_FORMAT ++ " (left_until_max: " SIZE_FORMAT ", left_until_GC: " SIZE_FORMAT ".", ++ left_to_commit / BytesPerWord, left_until_max / BytesPerWord, left_until_GC / BytesPerWord); ++ } + + return left_to_commit / BytesPerWord; + } +@@ -1762,6 +2646,25 @@ size_t ChunkManager::free_chunks_total_bytes() { + return free_chunks_total_words() * BytesPerWord; + } + ++// Update internal accounting after a chunk was added ++void ChunkManager::account_for_added_chunk(const Metachunk* c) { ++ assert_lock_strong(SpaceManager::expand_lock()); ++ _free_chunks_count ++; ++ _free_chunks_total += c->word_size(); ++} ++ ++// Update internal accounting after a chunk was removed ++void ChunkManager::account_for_removed_chunk(const Metachunk* c) { ++ assert_lock_strong(SpaceManager::expand_lock()); ++ assert(_free_chunks_count >= 1, ++ err_msg("ChunkManager::_free_chunks_count: about to go negative (" SIZE_FORMAT ").", _free_chunks_count)); ++ assert(_free_chunks_total >= c->word_size(), ++ err_msg("ChunkManager::_free_chunks_total: about to go negative" ++ "(now: " SIZE_FORMAT ", decrement value: " SIZE_FORMAT ").", _free_chunks_total, c->word_size())); ++ _free_chunks_count --; ++ _free_chunks_total -= c->word_size(); ++} ++ + size_t ChunkManager::free_chunks_count() { + #ifdef ASSERT + if (!UseConcMarkSweepGC && !SpaceManager::expand_lock()->is_locked()) { +@@ -1775,6 +2678,22 @@ size_t ChunkManager::free_chunks_count() { + return _free_chunks_count; + } + ++ChunkIndex ChunkManager::list_index(size_t size) { ++ if (size_by_index(SpecializedIndex) == size) { ++ return SpecializedIndex; ++ } ++ if (size_by_index(SmallIndex) == size) { ++ return SmallIndex; ++ } ++ const size_t med_size = size_by_index(MediumIndex); ++ if (med_size == size) { ++ return MediumIndex; ++ } ++ ++ assert(size > med_size, "Not a humongous chunk"); ++ return HumongousIndex; ++} ++ + size_t ChunkManager::size_by_index(ChunkIndex index) const { + index_bounds_check(index); + assert(index != HumongousIndex, "Do not call for humongous chunks."); +@@ -1820,6 +2739,17 @@ void ChunkManager::verify() { + void ChunkManager::locked_verify() { + locked_verify_free_chunks_count(); + locked_verify_free_chunks_total(); ++ for (ChunkIndex i = ZeroIndex; i < NumberOfFreeLists; i = next_chunk_index(i)) { ++ ChunkList* list = free_chunks(i); ++ if (list != NULL) { ++ Metachunk* chunk = list->head(); ++ while (chunk) { ++ DEBUG_ONLY(do_verify_chunk(chunk);) ++ assert(chunk->is_tagged_free(), "Chunk should be tagged as free."); ++ chunk = chunk->next(); ++ } ++ } ++ } + } + + void ChunkManager::locked_print_free_chunks(outputStream* st) { +@@ -1879,18 +2809,166 @@ ChunkList* ChunkManager::find_free_chunks_list(size_t word_size) { + return free_chunks(index); + } + ++// Helper for chunk splitting: given a target chunk size and a larger free chunk, ++// split up the larger chunk into n smaller chunks, at least one of which should be ++// the target chunk of target chunk size. The smaller chunks, including the target ++// chunk, are returned to the freelist. The pointer to the target chunk is returned. ++// Note that this chunk is supposed to be removed from the freelist right away. ++Metachunk* ChunkManager::split_chunk(size_t target_chunk_word_size, Metachunk* larger_chunk) { ++ assert(larger_chunk->word_size() > target_chunk_word_size, "Sanity"); ++ ++ const ChunkIndex larger_chunk_index = larger_chunk->get_chunk_type(); ++ const ChunkIndex target_chunk_index = get_chunk_type_by_size(target_chunk_word_size, is_class()); ++ ++ MetaWord* const region_start = (MetaWord*)larger_chunk; ++ const size_t region_word_len = larger_chunk->word_size(); ++ MetaWord* const region_end = region_start + region_word_len; ++ VirtualSpaceNode* const vsn = larger_chunk->container(); ++ OccupancyMap* const ocmap = vsn->occupancy_map(); ++ ++ // Any larger non-humongous chunk size is a multiple of any smaller chunk size. ++ // Since non-humongous chunks are aligned to their chunk size, the larger chunk should start ++ // at an address suitable to place the smaller target chunk. ++ assert_is_ptr_aligned(region_start, target_chunk_word_size); ++ ++ // Remove old chunk. ++ free_chunks(larger_chunk_index)->remove_chunk(larger_chunk); ++ larger_chunk->remove_sentinel(); ++ ++ // Prevent access to the old chunk from here on. ++ larger_chunk = NULL; ++ // ... and wipe it. ++ DEBUG_ONLY(memset(region_start, 0xfe, region_word_len * BytesPerWord)); ++ ++ // In its place create first the target chunk... ++ MetaWord* p = region_start; ++ Metachunk* target_chunk = ::new (p) Metachunk(target_chunk_index, is_class(), target_chunk_word_size, vsn); ++ assert(target_chunk == (Metachunk*)p, "Sanity"); ++ target_chunk->set_origin(origin_split); ++ ++ // Note: we do not need to mark its start in the occupancy map ++ // because it coincides with the old chunk start. ++ ++ // Mark chunk as free and return to the freelist. ++ do_update_in_use_info_for_chunk(target_chunk, false); ++ free_chunks(target_chunk_index)->return_chunk_at_head(target_chunk); ++ ++ // This chunk should now be valid and can be verified. ++ DEBUG_ONLY(do_verify_chunk(target_chunk)); ++ ++ // In the remaining space create the remainder chunks. ++ p += target_chunk->word_size(); ++ assert(p < region_end, "Sanity"); ++ ++ while (p < region_end) { ++ ++ // Find the largest chunk size which fits the alignment requirements at address p. ++ ChunkIndex this_chunk_index = prev_chunk_index(larger_chunk_index); ++ size_t this_chunk_word_size = 0; ++ for(;;) { ++ this_chunk_word_size = get_size_for_nonhumongous_chunktype(this_chunk_index, is_class()); ++ if (is_aligned(p, this_chunk_word_size * BytesPerWord)) { ++ break; ++ } else { ++ this_chunk_index = prev_chunk_index(this_chunk_index); ++ assert(this_chunk_index >= target_chunk_index, "Sanity"); ++ } ++ } ++ ++ assert(this_chunk_word_size >= target_chunk_word_size, "Sanity"); ++ assert(is_aligned(p, this_chunk_word_size * BytesPerWord), "Sanity"); ++ assert(p + this_chunk_word_size <= region_end, "Sanity"); ++ ++ // Create splitting chunk. ++ Metachunk* this_chunk = ::new (p) Metachunk(this_chunk_index, is_class(), this_chunk_word_size, vsn); ++ assert(this_chunk == (Metachunk*)p, "Sanity"); ++ this_chunk->set_origin(origin_split); ++ ocmap->set_chunk_starts_at_address(p, true); ++ do_update_in_use_info_for_chunk(this_chunk, false); ++ ++ // This chunk should be valid and can be verified. ++ DEBUG_ONLY(do_verify_chunk(this_chunk)); ++ ++ // Return this chunk to freelist and correct counter. ++ free_chunks(this_chunk_index)->return_chunk_at_head(this_chunk); ++ _free_chunks_count ++; ++ ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("Created chunk at " PTR_FORMAT ", word size " ++ SIZE_FORMAT_HEX " (%s), in split region [" PTR_FORMAT "..." PTR_FORMAT ").", ++ p2i(this_chunk), this_chunk->word_size(), chunk_size_name(this_chunk_index), ++ p2i(region_start), p2i(region_end)); ++ } ++ ++ p += this_chunk_word_size; ++ ++ } ++ ++ return target_chunk; ++} ++ + Metachunk* ChunkManager::free_chunks_get(size_t word_size) { + assert_lock_strong(SpaceManager::expand_lock()); + + slow_locked_verify(); + + Metachunk* chunk = NULL; ++ bool we_did_split_a_chunk = false; ++ + if (list_index(word_size) != HumongousIndex) { ++ + ChunkList* free_list = find_free_chunks_list(word_size); + assert(free_list != NULL, "Sanity check"); + + chunk = free_list->head(); + ++ if (chunk == NULL) { ++ // Split large chunks into smaller chunks if there are no smaller chunks, just large chunks. ++ // This is the counterpart of the coalescing-upon-chunk-return. ++ ++ ChunkIndex target_chunk_index = get_chunk_type_by_size(word_size, is_class()); ++ ++ // Is there a larger chunk we could split? ++ Metachunk* larger_chunk = NULL; ++ ChunkIndex larger_chunk_index = next_chunk_index(target_chunk_index); ++ while (larger_chunk == NULL && larger_chunk_index < NumberOfFreeLists) { ++ larger_chunk = free_chunks(larger_chunk_index)->head(); ++ if (larger_chunk == NULL) { ++ larger_chunk_index = next_chunk_index(larger_chunk_index); ++ } ++ } ++ ++ if (larger_chunk != NULL) { ++ assert(larger_chunk->word_size() > word_size, "Sanity"); ++ assert(larger_chunk->get_chunk_type() == larger_chunk_index, "Sanity"); ++ ++ // We found a larger chunk. Lets split it up: ++ // - remove old chunk ++ // - in its place, create new smaller chunks, with at least one chunk ++ // being of target size, the others sized as large as possible. This ++ // is to make sure the resulting chunks are "as coalesced as possible" ++ // (similar to VirtualSpaceNode::retire()). ++ // Note: during this operation both ChunkManager and VirtualSpaceNode ++ // are temporarily invalid, so be careful with asserts. ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("%s: splitting chunk " PTR_FORMAT ++ ", word size " SIZE_FORMAT_HEX " (%s), to get a chunk of word size " SIZE_FORMAT_HEX " (%s)...", ++ (is_class() ? "class space" : "metaspace"), p2i(larger_chunk), larger_chunk->word_size(), ++ chunk_size_name(larger_chunk_index), word_size, chunk_size_name(target_chunk_index)); ++ } ++ ++ chunk = split_chunk(word_size, larger_chunk); ++ ++ // This should have worked. ++ assert(chunk != NULL, "Sanity"); ++ assert(chunk->word_size() == word_size, "Sanity"); ++ assert(chunk->is_tagged_free(), "Sanity"); ++ ++ we_did_split_a_chunk = true; ++ ++ } ++ } ++ + if (chunk == NULL) { + return NULL; + } +@@ -1899,9 +2977,8 @@ Metachunk* ChunkManager::free_chunks_get(size_t word_size) { + free_list->remove_chunk(chunk); + + if (TraceMetadataChunkAllocation && Verbose) { +- gclog_or_tty->print_cr("ChunkManager::free_chunks_get: free_list " +- PTR_FORMAT " head " PTR_FORMAT " size " SIZE_FORMAT, +- free_list, chunk, chunk->word_size()); ++ gclog_or_tty->print_cr("ChunkManager::free_chunks_get: free_list: " PTR_FORMAT " chunks left: " SSIZE_FORMAT ".", ++ p2i(free_list), free_list->count()); + } + } else { + chunk = humongous_dictionary()->get_chunk( +@@ -1921,20 +2998,26 @@ Metachunk* ChunkManager::free_chunks_get(size_t word_size) { + } + } + +- // Chunk is being removed from the chunks free list. +- dec_free_chunks_total(chunk->word_size()); ++ // Chunk has been removed from the chunk manager; update counters. ++ account_for_removed_chunk(chunk); ++ do_update_in_use_info_for_chunk(chunk, true); ++ chunk->container()->inc_container_count(); ++ chunk->inc_use_count(); + + // Remove it from the links to this freelist + chunk->set_next(NULL); + chunk->set_prev(NULL); ++ ++ // Run some verifications (some more if we did a chunk split) + #ifdef ASSERT +- // Chunk is no longer on any freelist. Setting to false make container_count_slow() +- // work. +- chunk->set_is_tagged_free(false); ++ locked_verify(); ++ VirtualSpaceNode* const vsn = chunk->container(); ++ vsn->verify(); ++ if (we_did_split_a_chunk) { ++ vsn->verify_free_chunks_are_ideally_merged(); ++ } + #endif +- chunk->container()->inc_container_count(); + +- slow_locked_verify(); + return chunk; + } + +@@ -1968,6 +3051,97 @@ Metachunk* ChunkManager::chunk_freelist_allocate(size_t word_size) { + return chunk; + } + ++void ChunkManager::return_single_chunk(ChunkIndex index, Metachunk* chunk) { ++ assert_lock_strong(SpaceManager::expand_lock()); ++ DEBUG_ONLY(do_verify_chunk(chunk);) ++ assert(chunk->get_chunk_type() == index, "Chunk does not match expected index."); ++ assert(chunk != NULL, "Expected chunk."); ++ assert(chunk->container() != NULL, "Container should have been set."); ++ assert(chunk->is_tagged_free() == false, "Chunk should be in use."); ++ index_bounds_check(index); ++ ++ // Note: mangle *before* returning the chunk to the freelist or dictionary. It does not ++ // matter for the freelist (non-humongous chunks), but the humongous chunk dictionary ++ // keeps tree node pointers in the chunk payload area which mangle will overwrite. ++ DEBUG_ONLY(chunk->mangle(badMetaWordVal);) ++ ++ if (index != HumongousIndex) { ++ // Return non-humongous chunk to freelist. ++ ChunkList* list = free_chunks(index); ++ assert(list->size() == chunk->word_size(), "Wrong chunk type."); ++ list->return_chunk_at_head(chunk); ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("returned one %s chunk at " PTR_FORMAT " to freelist.", ++ chunk_size_name(index), p2i(chunk)); ++ } ++ } else { ++ // Return humongous chunk to dictionary. ++ assert(chunk->word_size() > free_chunks(MediumIndex)->size(), "Wrong chunk type."); ++ assert(chunk->word_size() % free_chunks(SpecializedIndex)->size() == 0, ++ "Humongous chunk has wrong alignment."); ++ _humongous_dictionary.return_chunk(chunk); ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("returned one %s chunk at " PTR_FORMAT " (word size " SIZE_FORMAT ") to freelist.", ++ chunk_size_name(index), p2i(chunk), chunk->word_size()); ++ } ++ } ++ chunk->container()->dec_container_count(); ++ do_update_in_use_info_for_chunk(chunk, false); ++ ++ // Chunk has been added; update counters. ++ account_for_added_chunk(chunk); ++ ++ // Attempt coalesce returned chunks with its neighboring chunks: ++ // if this chunk is small or special, attempt to coalesce to a medium chunk. ++ if (index == SmallIndex || index == SpecializedIndex) { ++ if (!attempt_to_coalesce_around_chunk(chunk, MediumIndex)) { ++ // This did not work. But if this chunk is special, we still may form a small chunk? ++ if (index == SpecializedIndex) { ++ if (!attempt_to_coalesce_around_chunk(chunk, SmallIndex)) { ++ // give up. ++ } ++ } ++ } ++ } ++ ++} ++ ++void ChunkManager::return_chunk_list(ChunkIndex index, Metachunk* chunks) { ++ index_bounds_check(index); ++ if (chunks == NULL) { ++ return; ++ } ++ // tracing ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("returning list of %s chunks...", chunk_size_name(index)); ++ } ++ ++ unsigned num_chunks_returned = 0; ++ size_t size_chunks_returned = 0; ++ Metachunk* cur = chunks; ++ while (cur != NULL) { ++ // Capture the next link before it is changed ++ // by the call to return_chunk_at_head(); ++ Metachunk* next = cur->next(); ++ // tracing ++ num_chunks_returned ++; ++ size_chunks_returned += cur->word_size(); ++ ++ return_single_chunk(index, cur); ++ cur = next; ++ } ++ // tracing ++ if (TraceMetadataChunkAllocation) { ++ gclog_or_tty->print_cr("returned %u %s chunks to freelist, total word size " SIZE_FORMAT ".", ++ num_chunks_returned, chunk_size_name(index), size_chunks_returned); ++ if (index != HumongousIndex) { ++ gclog_or_tty->print_cr("updated freelist count: " SIZE_FORMAT ".", free_chunks(index)->size()); ++ } else { ++ gclog_or_tty->print_cr("updated dictionary count " SIZE_FORMAT ".", _humongous_dictionary.total_count()); ++ } ++ } ++} ++ + void ChunkManager::print_on(outputStream* out) const { + if (PrintFLSStatistics != 0) { + _humongous_dictionary.report_statistics(); +@@ -2394,31 +3568,6 @@ void SpaceManager::initialize() { + } + } + +-void ChunkManager::return_chunks(ChunkIndex index, Metachunk* chunks) { +- if (chunks == NULL) { +- return; +- } +- ChunkList* list = free_chunks(index); +- assert(list->size() == chunks->word_size(), "Mismatch in chunk sizes"); +- assert_lock_strong(SpaceManager::expand_lock()); +- Metachunk* cur = chunks; +- +- // This returns chunks one at a time. If a new +- // class List can be created that is a base class +- // of FreeList then something like FreeList::prepend() +- // can be used in place of this loop +- while (cur != NULL) { +- assert(cur->container() != NULL, "Container should have been set"); +- cur->container()->dec_container_count(); +- // Capture the next link before it is changed +- // by the call to return_chunk_at_head(); +- Metachunk* next = cur->next(); +- DEBUG_ONLY(cur->set_is_tagged_free(true);) +- list->return_chunk_at_head(cur); +- cur = next; +- } +-} +- + SpaceManager::~SpaceManager() { + // This call this->_lock which can't be done while holding expand_lock() + assert(sum_capacity_in_chunks_in_use() == allocated_chunks_words(), +@@ -2429,6 +3578,11 @@ SpaceManager::~SpaceManager() { + MutexLockerEx fcl(SpaceManager::expand_lock(), + Mutex::_no_safepoint_check_flag); + ++ assert(sum_count_in_chunks_in_use() == allocated_chunks_count(), ++ err_msg("sum_count_in_chunks_in_use() " SIZE_FORMAT ++ " allocated_chunks_count() " SIZE_FORMAT, ++ sum_count_in_chunks_in_use(), allocated_chunks_count())); ++ + chunk_manager()->slow_locked_verify(); + + dec_total_from_size_metrics(); +@@ -2436,112 +3590,27 @@ SpaceManager::~SpaceManager() { + if (TraceMetadataChunkAllocation && Verbose) { + gclog_or_tty->print_cr("~SpaceManager(): " PTR_FORMAT, this); + locked_print_chunks_in_use_on(gclog_or_tty); ++ if (block_freelists() != NULL) { ++ block_freelists()->print_on(gclog_or_tty); ++ } + } + +- // Do not mangle freed Metachunks. The chunk size inside Metachunks +- // is during the freeing of a VirtualSpaceNodes. +- +- // Have to update before the chunks_in_use lists are emptied +- // below. +- chunk_manager()->inc_free_chunks_total(allocated_chunks_words(), +- sum_count_in_chunks_in_use()); +- + // Add all the chunks in use by this space manager + // to the global list of free chunks. + + // Follow each list of chunks-in-use and add them to the + // free lists. Each list is NULL terminated. + +- for (ChunkIndex i = ZeroIndex; i < HumongousIndex; i = next_chunk_index(i)) { +- if (TraceMetadataChunkAllocation && Verbose) { +- gclog_or_tty->print_cr("returned %d %s chunks to freelist", +- sum_count_in_chunks_in_use(i), +- chunk_size_name(i)); +- } ++ for (ChunkIndex i = ZeroIndex; i <= HumongousIndex; i = next_chunk_index(i)) { + Metachunk* chunks = chunks_in_use(i); +- chunk_manager()->return_chunks(i, chunks); ++ chunk_manager()->return_chunk_list(i, chunks); + set_chunks_in_use(i, NULL); +- if (TraceMetadataChunkAllocation && Verbose) { +- gclog_or_tty->print_cr("updated freelist count %d %s", +- chunk_manager()->free_chunks(i)->count(), +- chunk_size_name(i)); +- } +- assert(i != HumongousIndex, "Humongous chunks are handled explicitly later"); + } + +- // The medium chunk case may be optimized by passing the head and +- // tail of the medium chunk list to add_at_head(). The tail is often +- // the current chunk but there are probably exceptions. +- +- // Humongous chunks +- if (TraceMetadataChunkAllocation && Verbose) { +- gclog_or_tty->print_cr("returned %d %s humongous chunks to dictionary", +- sum_count_in_chunks_in_use(HumongousIndex), +- chunk_size_name(HumongousIndex)); +- gclog_or_tty->print("Humongous chunk dictionary: "); +- } +- // Humongous chunks are never the current chunk. +- Metachunk* humongous_chunks = chunks_in_use(HumongousIndex); + +- while (humongous_chunks != NULL) { +-#ifdef ASSERT +- humongous_chunks->set_is_tagged_free(true); +-#endif +- if (TraceMetadataChunkAllocation && Verbose) { +- gclog_or_tty->print(PTR_FORMAT " (" SIZE_FORMAT ") ", +- humongous_chunks, +- humongous_chunks->word_size()); +- } +- assert(humongous_chunks->word_size() == (size_t) +- align_size_up(humongous_chunks->word_size(), +- smallest_chunk_size()), +- err_msg("Humongous chunk size is wrong: word size " SIZE_FORMAT +- " granularity %d", +- humongous_chunks->word_size(), smallest_chunk_size())); +- Metachunk* next_humongous_chunks = humongous_chunks->next(); +- humongous_chunks->container()->dec_container_count(); +- chunk_manager()->humongous_dictionary()->return_chunk(humongous_chunks); +- humongous_chunks = next_humongous_chunks; +- } +- if (TraceMetadataChunkAllocation && Verbose) { +- gclog_or_tty->cr(); +- gclog_or_tty->print_cr("updated dictionary count %d %s", +- chunk_manager()->humongous_dictionary()->total_count(), +- chunk_size_name(HumongousIndex)); +- } + chunk_manager()->slow_locked_verify(); + } + +-const char* SpaceManager::chunk_size_name(ChunkIndex index) const { +- switch (index) { +- case SpecializedIndex: +- return "Specialized"; +- case SmallIndex: +- return "Small"; +- case MediumIndex: +- return "Medium"; +- case HumongousIndex: +- return "Humongous"; +- default: +- return NULL; +- } +-} +- +-ChunkIndex ChunkManager::list_index(size_t size) { +- if (free_chunks(SpecializedIndex)->size() == size) { +- return SpecializedIndex; +- } +- if (free_chunks(SmallIndex)->size() == size) { +- return SmallIndex; +- } +- if (free_chunks(MediumIndex)->size() == size) { +- return MediumIndex; +- } +- +- assert(size > free_chunks(MediumIndex)->size(), "Not a humongous chunk"); +- return HumongousIndex; +-} +- + void SpaceManager::deallocate(MetaWord* p, size_t word_size) { + assert_lock_strong(_lock); + size_t raw_word_size = get_raw_word_size(word_size); +@@ -2693,8 +3762,8 @@ void SpaceManager::verify() { + for (ChunkIndex i = ZeroIndex; i < NumberOfInUseLists; i = next_chunk_index(i)) { + Metachunk* curr = chunks_in_use(i); + while (curr != NULL) { +- curr->verify(); +- verify_chunk_size(curr); ++ DEBUG_ONLY(do_verify_chunk(curr);) ++ assert(curr->is_tagged_free() == false, "Chunk should be tagged as in use."); + curr = curr->next(); + } + } +@@ -2767,7 +3836,7 @@ void SpaceManager::mangle_freed_chunks() { + for (Metachunk* curr = chunks_in_use(index); + curr != NULL; + curr = curr->next()) { +- curr->mangle(); ++ curr->mangle(uninitMetaWordVal); + } + } + } +@@ -2988,9 +4057,9 @@ void MetaspaceAux::print_on(outputStream* out, Metaspace::MetadataType mdtype) { + size_t free_bytes = free_bytes_slow(mdtype); + size_t used_and_free = used_bytes + free_bytes + + free_chunks_capacity_bytes; +- out->print_cr(" Chunk accounting: used in chunks " SIZE_FORMAT ++ out->print_cr(" Chunk accounting: (used in chunks " SIZE_FORMAT + "K + unused in chunks " SIZE_FORMAT "K + " +- " capacity in free chunks " SIZE_FORMAT "K = " SIZE_FORMAT ++ " capacity in free chunks " SIZE_FORMAT "K) = " SIZE_FORMAT + "K capacity in allocated chunks " SIZE_FORMAT "K", + used_bytes / K, + free_bytes / K, +@@ -3255,6 +4324,31 @@ void MetaspaceAux::dump(outputStream* out) { + print_waste(out); + } + ++// Prints an ASCII representation of the given space. ++void MetaspaceAux::print_metaspace_map(outputStream* out, Metaspace::MetadataType mdtype) { ++ MutexLockerEx cl(SpaceManager::expand_lock(), Mutex::_no_safepoint_check_flag); ++ const bool for_class = mdtype == Metaspace::ClassType ? true : false; ++ VirtualSpaceList* const vsl = for_class ? Metaspace::class_space_list() : Metaspace::space_list(); ++ if (vsl != NULL) { ++ if (for_class) { ++ if (!Metaspace::using_class_space()) { ++ out->print_cr("No Class Space."); ++ return; ++ } ++ out->print_raw("---- Metaspace Map (Class Space) ----"); ++ } else { ++ out->print_raw("---- Metaspace Map (Non-Class Space) ----"); ++ } ++ // Print legend: ++ out->cr(); ++ out->print_cr("Chunk Types (uppercase chunks are in use): x-specialized, s-small, m-medium, h-humongous."); ++ out->cr(); ++ VirtualSpaceList* const vsl = for_class ? Metaspace::class_space_list() : Metaspace::space_list(); ++ vsl->print_map(out); ++ out->cr(); ++ } ++} ++ + void MetaspaceAux::verify_free_chunks() { + Metaspace::chunk_manager_metadata()->verify(); + if (Metaspace::using_class_space()) { +@@ -3523,7 +4617,7 @@ void Metaspace::initialize_class_space(ReservedSpace rs) { + err_msg(SIZE_FORMAT " != " UINTX_FORMAT, rs.size(), CompressedClassSpaceSize)); + assert(using_class_space(), "Must be using class space"); + _class_space_list = new VirtualSpaceList(rs); +- _chunk_manager_class = new ChunkManager(ClassSpecializedChunk, ClassSmallChunk, ClassMediumChunk); ++ _chunk_manager_class = new ChunkManager(true/*is_class*/); + + if (!_class_space_list->initialization_succeeded()) { + vm_exit_during_initialization("Failed to setup compressed class space virtual space list."); +@@ -3627,7 +4721,7 @@ void Metaspace::global_initialize() { + cds_total = FileMapInfo::shared_spaces_size(); + cds_total = align_size_up(cds_total, _reserve_alignment); + _space_list = new VirtualSpaceList(cds_total/wordSize); +- _chunk_manager_metadata = new ChunkManager(SpecializedChunk, SmallChunk, MediumChunk); ++ _chunk_manager_metadata = new ChunkManager(false/*metaspace*/); + + if (!_space_list->initialization_succeeded()) { + vm_exit_during_initialization("Unable to dump shared archive.", NULL); +@@ -3777,7 +4871,7 @@ void Metaspace::global_initialize() { + + // Initialize the list of virtual spaces. + _space_list = new VirtualSpaceList(word_size); +- _chunk_manager_metadata = new ChunkManager(SpecializedChunk, SmallChunk, MediumChunk); ++ _chunk_manager_metadata = new ChunkManager(false/*metaspace*/); + + if (!_space_list->initialization_succeeded()) { + vm_exit_during_initialization("Unable to setup metadata virtual space list.", NULL); +@@ -4071,6 +5165,8 @@ void Metaspace::report_metadata_oome(ClassLoaderData* loader_data, size_t word_s + ChunkManager::print_all_chunkmanagers(gclog_or_tty); + } + ++ MetaspaceAux::print_metaspace_map(gclog_or_tty, mdtype); ++ + bool out_of_compressed_class_space = false; + if (is_class_space_allocation(mdtype)) { + Metaspace* metaspace = loader_data->metaspace_non_null(); +@@ -4236,6 +5332,24 @@ void Metaspace::dump(outputStream* const out) const { + } + } + ++#ifdef ASSERT ++static void do_verify_chunk(Metachunk* chunk) { ++ guarantee(chunk != NULL, "Sanity"); ++ // Verify chunk itself; then verify that it is consistent with the ++ // occupany map of its containing node. ++ chunk->verify(); ++ VirtualSpaceNode* const vsn = chunk->container(); ++ OccupancyMap* const ocmap = vsn->occupancy_map(); ++ ocmap->verify_for_chunk(chunk); ++} ++#endif ++ ++static void do_update_in_use_info_for_chunk(Metachunk* chunk, bool inuse) { ++ chunk->set_is_tagged_free(!inuse); ++ OccupancyMap* const ocmap = chunk->container()->occupancy_map(); ++ ocmap->set_region_in_use((MetaWord*)chunk, chunk->word_size(), inuse); ++} ++ + /////////////// Unit tests /////////////// + + #ifndef PRODUCT +@@ -4326,16 +5440,16 @@ class TestVirtualSpaceNodeTest { + STATIC_ASSERT(SmallChunk % SpecializedChunk == 0); + + { // No committed memory in VSN +- ChunkManager cm(SpecializedChunk, SmallChunk, MediumChunk); +- VirtualSpaceNode vsn(vsn_test_size_bytes); ++ ChunkManager cm(false); ++ VirtualSpaceNode vsn(false, vsn_test_size_bytes); + vsn.initialize(); + vsn.retire(&cm); + assert(cm.sum_free_chunks_count() == 0, "did not commit any memory in the VSN"); + } + + { // All of VSN is committed, half is used by chunks +- ChunkManager cm(SpecializedChunk, SmallChunk, MediumChunk); +- VirtualSpaceNode vsn(vsn_test_size_bytes); ++ ChunkManager cm(false); ++ VirtualSpaceNode vsn(false, vsn_test_size_bytes); + vsn.initialize(); + vsn.expand_by(vsn_test_size_words, vsn_test_size_words); + vsn.get_chunk_vs(MediumChunk); +@@ -4349,8 +5463,8 @@ class TestVirtualSpaceNodeTest { + // This doesn't work for systems with vm_page_size >= 16K. + if (page_chunks < MediumChunk) { + // 4 pages of VSN is committed, some is used by chunks +- ChunkManager cm(SpecializedChunk, SmallChunk, MediumChunk); +- VirtualSpaceNode vsn(vsn_test_size_bytes); ++ ChunkManager cm(false); ++ VirtualSpaceNode vsn(false, vsn_test_size_bytes); + + vsn.initialize(); + vsn.expand_by(page_chunks, page_chunks); +@@ -4370,8 +5484,8 @@ class TestVirtualSpaceNodeTest { + } + + { // Half of VSN is committed, a humongous chunk is used +- ChunkManager cm(SpecializedChunk, SmallChunk, MediumChunk); +- VirtualSpaceNode vsn(vsn_test_size_bytes); ++ ChunkManager cm(false); ++ VirtualSpaceNode vsn(false, vsn_test_size_bytes); + vsn.initialize(); + vsn.expand_by(MediumChunk * 2, MediumChunk * 2); + vsn.get_chunk_vs(MediumChunk + SpecializedChunk); // Humongous chunks will be aligned up to MediumChunk + SpecializedChunk +@@ -4402,7 +5516,7 @@ class TestVirtualSpaceNodeTest { + + static void test_is_available_positive() { + // Reserve some memory. +- VirtualSpaceNode vsn(os::vm_allocation_granularity()); ++ VirtualSpaceNode vsn(false, os::vm_allocation_granularity()); + assert(vsn.initialize(), "Failed to setup VirtualSpaceNode"); + + // Commit some memory. +@@ -4420,7 +5534,7 @@ class TestVirtualSpaceNodeTest { + + static void test_is_available_negative() { + // Reserve some memory. +- VirtualSpaceNode vsn(os::vm_allocation_granularity()); ++ VirtualSpaceNode vsn(false, os::vm_allocation_granularity()); + assert(vsn.initialize(), "Failed to setup VirtualSpaceNode"); + + // Commit some memory. +@@ -4435,7 +5549,7 @@ class TestVirtualSpaceNodeTest { + + static void test_is_available_overflow() { + // Reserve some memory. +- VirtualSpaceNode vsn(os::vm_allocation_granularity()); ++ VirtualSpaceNode vsn(false, os::vm_allocation_granularity()); + assert(vsn.initialize(), "Failed to setup VirtualSpaceNode"); + + // Commit some memory. +@@ -4460,11 +5574,240 @@ class TestVirtualSpaceNodeTest { + } + }; + +-void TestVirtualSpaceNode_test() { +- TestVirtualSpaceNodeTest::test(); +- TestVirtualSpaceNodeTest::test_is_available(); ++#ifdef DEBUG_VERBOSE ++ ++struct chunkmanager_statistics_t { ++ int num_specialized_chunks; ++ int num_small_chunks; ++ int num_medium_chunks; ++ int num_humongous_chunks; ++}; ++ ++void test_metaspace_retrieve_chunkmanager_statistics(Metaspace::MetadataType mdType, chunkmanager_statistics_t* out) { ++ ChunkManager* const chunk_manager = Metaspace::get_chunk_manager(mdType); ++ ChunkManager::ChunkManagerStatistics stat; ++ chunk_manager->get_statistics(&stat); ++ out->num_specialized_chunks = (int)stat.num_by_type[SpecializedIndex]; ++ out->num_small_chunks = (int)stat.num_by_type[SmallIndex]; ++ out->num_medium_chunks = (int)stat.num_by_type[MediumIndex]; ++ out->num_humongous_chunks = (int)stat.num_humongous_chunks; ++} ++ ++static void print_chunkmanager_statistics(outputStream* st, Metaspace::MetadataType mdType) { ++ chunkmanager_statistics_t stat; ++ test_metaspace_retrieve_chunkmanager_statistics(mdType, &stat); ++ st->print_cr("free chunks: %d / %d / %d / %d", stat.num_specialized_chunks, stat.num_small_chunks, ++ stat.num_medium_chunks, stat.num_humongous_chunks); ++} ++ ++#endif // DEBUG_VERBOSE ++ ++struct chunk_geometry_t { ++ size_t specialized_chunk_word_size; ++ size_t small_chunk_word_size; ++ size_t medium_chunk_word_size; ++}; ++ ++void test_metaspace_retrieve_chunk_geometry(Metaspace::MetadataType mdType, chunk_geometry_t* out) { ++ if (mdType == Metaspace::NonClassType) { ++ out->specialized_chunk_word_size = SpecializedChunk; ++ out->small_chunk_word_size = SmallChunk; ++ out->medium_chunk_word_size = MediumChunk; ++ } else { ++ out->specialized_chunk_word_size = ClassSpecializedChunk; ++ out->small_chunk_word_size = ClassSmallChunk; ++ out->medium_chunk_word_size = ClassMediumChunk; ++ } ++} ++ ++#define NUM_PARALLEL_METASPACES 50 ++#define MAX_PER_METASPACE_ALLOCATION_WORDSIZE (512 * K) ++ ++class MetaspaceAllocationTest { ++protected: ++ ++ struct { ++ size_t allocated; ++ Mutex* lock; ++ Metaspace* space; ++ bool is_empty() const { return allocated == 0; } ++ bool is_full() const { return allocated >= MAX_PER_METASPACE_ALLOCATION_WORDSIZE; } ++ } _spaces[NUM_PARALLEL_METASPACES]; ++ ++ chunk_geometry_t _chunk_geometry; ++ ++ void create_space(int i) { ++ assert(i >= 0 && i < NUM_PARALLEL_METASPACES, "Sanity"); ++ assert(_spaces[i].space == NULL && _spaces[i].allocated == 0, "Sanity"); ++ if (_spaces[i].lock == NULL) { ++ _spaces[i].lock = new Mutex(Monitor::native, "gtest-MetaspaceAllocationTest-lock", false); ++ assert(_spaces[i].lock != NULL, "_spaces[i].lock is NULL"); ++ } ++ // Let every ~10th space be an anonymous one to test different allocation patterns. ++ const Metaspace::MetaspaceType msType = (os::random() % 100 < 10) ? ++ Metaspace::AnonymousMetaspaceType : Metaspace::StandardMetaspaceType; ++ _spaces[i].space = new Metaspace(_spaces[i].lock, msType); ++ _spaces[i].allocated = 0; ++ assert(_spaces[i].space != NULL, "_spaces[i].space is NULL"); ++ } ++ ++ // Returns the index of a random space where index is [0..metaspaces) and which is ++ // empty, non-empty or full. ++ // Returns -1 if no matching space exists. ++ enum fillgrade { fg_empty, fg_non_empty, fg_full }; ++ int get_random_matching_space(int metaspaces, fillgrade fg) { ++ const int start_index = os::random() % metaspaces; ++ int i = start_index; ++ do { ++ if (fg == fg_empty && _spaces[i].is_empty()) { ++ return i; ++ } else if ((fg == fg_full && _spaces[i].is_full()) || ++ (fg == fg_non_empty && !_spaces[i].is_full() && !_spaces[i].is_empty())) { ++ return i; ++ } ++ i ++; ++ if (i == metaspaces) { ++ i = 0; ++ } ++ } while (i != start_index); ++ return -1; ++ } ++ ++ int get_random_emtpy_space(int metaspaces) { return get_random_matching_space(metaspaces, fg_empty); } ++ int get_random_non_emtpy_space(int metaspaces) { return get_random_matching_space(metaspaces, fg_non_empty); } ++ int get_random_full_space(int metaspaces) { return get_random_matching_space(metaspaces, fg_full); } ++ ++public: ++ ++ virtual void SetUp() { ++ ::memset(_spaces, 0, sizeof(_spaces)); ++ test_metaspace_retrieve_chunk_geometry(Metaspace::NonClassType, &_chunk_geometry); ++ } ++ ++ virtual void TearDown() { ++ for (int i = 0; i < NUM_PARALLEL_METASPACES; i ++) { ++ if (_spaces[i].space != NULL) { ++ delete _spaces[i].space; ++ delete _spaces[i].lock; ++ } ++ } ++ } ++ ++ void do_test(Metaspace::MetadataType mdType, int metaspaces, int phases, int allocs_per_phase, ++ float probability_for_large_allocations // 0.0-1.0 ++ ) { ++ // Alternate between breathing in (allocating n blocks for a random Metaspace) and ++ // breathing out (deleting a random Metaspace). The intent is to stress the coalescation ++ // and splitting of free chunks. ++ int phases_done = 0; ++ bool allocating = true; ++ while (phases_done < phases) { ++ bool force_switch = false; ++ if (allocating) { ++ // Allocate space from metaspace, with a preference for completely empty spaces. This ++ // should provide a good mixture of metaspaces in the virtual space. ++ int index = get_random_emtpy_space(metaspaces); ++ if (index == -1) { ++ index = get_random_non_emtpy_space(metaspaces); ++ } ++ if (index == -1) { ++ // All spaces are full, switch to freeing. ++ force_switch = true; ++ } else { ++ // create space if it does not yet exist. ++ if (_spaces[index].space == NULL) { ++ create_space(index); ++ } ++ // Allocate a bunch of blocks from it. Mostly small stuff but mix in large allocations ++ // to force humongous chunk allocations. ++ int allocs_done = 0; ++ while (allocs_done < allocs_per_phase && !_spaces[index].is_full()) { ++ size_t size = 0; ++ int r = os::random() % 1000; ++ if ((float)r < probability_for_large_allocations * 1000.0) { ++ size = (os::random() % _chunk_geometry.medium_chunk_word_size) + _chunk_geometry.medium_chunk_word_size; ++ } else { ++ size = os::random() % 64; ++ } ++ MetaWord* const p = _spaces[index].space->allocate(size, mdType); ++ if (p == NULL) { ++ // We very probably did hit the metaspace "until-gc" limit. ++#ifdef DEBUG_VERBOSE ++ tty->print_cr("OOM for " SIZE_FORMAT " words. ", size); ++#endif ++ // Just switch to deallocation and resume tests. ++ force_switch = true; ++ break; ++ } else { ++ _spaces[index].allocated += size; ++ allocs_done ++; ++ } ++ } ++ } ++ } else { ++ // freeing: find a metaspace and delete it, with preference for completely filled spaces. ++ int index = get_random_full_space(metaspaces); ++ if (index == -1) { ++ index = get_random_non_emtpy_space(metaspaces); ++ } ++ if (index == -1) { ++ force_switch = true; ++ } else { ++ assert(_spaces[index].space != NULL && _spaces[index].allocated > 0, "Sanity"); ++ delete _spaces[index].space; ++ _spaces[index].space = NULL; ++ _spaces[index].allocated = 0; ++ } ++ } ++ ++ if (force_switch) { ++ allocating = !allocating; ++ } else { ++ // periodically switch between allocating and freeing, but prefer allocation because ++ // we want to intermingle allocations of multiple metaspaces. ++ allocating = os::random() % 5 < 4; ++ } ++ phases_done ++; ++#ifdef DEBUG_VERBOSE ++ int metaspaces_in_use = 0; ++ size_t total_allocated = 0; ++ for (int i = 0; i < metaspaces; i ++) { ++ if (_spaces[i].allocated > 0) { ++ total_allocated += _spaces[i].allocated; ++ metaspaces_in_use ++; ++ } ++ } ++ tty->print("%u:\tspaces: %d total words: " SIZE_FORMAT "\t\t\t", phases_done, metaspaces_in_use, total_allocated); ++ print_chunkmanager_statistics(tty, mdType); ++#endif ++ } ++#ifdef DEBUG_VERBOSE ++ tty->print_cr("Test finished. "); ++ MetaspaceAux::print_metaspace_map(tty, mdType); ++ print_chunkmanager_statistics(tty, mdType); ++#endif ++ } ++}; ++ ++void MetaspaceAllocation_test(Metaspace::MetadataType mdType, int metaspaces, int phases, int allocs_per_phase, float probability_for_large_allocations) { ++ MetaspaceAllocationTest test; ++ test.SetUp(); ++ test.do_test(mdType, metaspaces, phases, allocs_per_phase, probability_for_large_allocations); ++ test.TearDown(); + } + ++void run_MetaspaceAllocation_test(){ ++ MetaspaceAllocation_test(Metaspace::NonClassType, 1, 1000, 100, 0); ++ MetaspaceAllocation_test(Metaspace::ClassType, 1, 1000, 100, 0); ++ MetaspaceAllocation_test(Metaspace::NonClassType, NUM_PARALLEL_METASPACES, 100, 1000, 0.0); ++ MetaspaceAllocation_test(Metaspace::ClassType, NUM_PARALLEL_METASPACES, 100, 1000, 0.0); ++ MetaspaceAllocation_test(Metaspace::NonClassType, NUM_PARALLEL_METASPACES, 100, 1000, .006f); ++} ++ ++#endif // !PRODUCT ++ ++#ifdef ASSERT ++ + // The following test is placed here instead of a gtest / unittest file + // because the ChunkManager class is only available in this file. + class SpaceManagerTest : AllStatic { +@@ -4517,7 +5860,7 @@ void SpaceManager_test_adjust_initial_chunk_size() { + // The following test is placed here instead of a gtest / unittest file + // because the ChunkManager class is only available in this file. + void ChunkManager_test_list_index() { +- ChunkManager manager(ClassSpecializedChunk, ClassSmallChunk, ClassMediumChunk); ++ ChunkManager manager(true); + + // Test previous bug where a query for a humongous class metachunk, + // incorrectly matched the non-class medium metachunk size. +@@ -4550,4 +5893,5 @@ void ChunkManager_test_list_index() { + } + } + +-#endif ++#endif // ASSERT ++ +diff --git a/hotspot/src/share/vm/memory/metaspace.hpp b/hotspot/src/share/vm/memory/metaspace.hpp +index ff1b23299..11944d393 100644 +--- a/hotspot/src/share/vm/memory/metaspace.hpp ++++ b/hotspot/src/share/vm/memory/metaspace.hpp +@@ -147,11 +147,6 @@ class Metaspace : public CHeapObj { + return mdtype == ClassType ? class_vsm() : vsm(); + } + +- // Allocate space for metadata of type mdtype. This is space +- // within a Metachunk and is used by +- // allocate(ClassLoaderData*, size_t, bool, MetadataType, TRAPS) +- MetaWord* allocate(size_t word_size, MetadataType mdtype); +- + // Virtual Space lists for both classes and other metadata + static VirtualSpaceList* _space_list; + static VirtualSpaceList* _class_space_list; +@@ -162,6 +157,10 @@ class Metaspace : public CHeapObj { + static const MetaspaceTracer* _tracer; + + public: ++ // Allocate space for metadata of type mdtype. This is space ++ // within a Metachunk and is used by ++ // allocate(ClassLoaderData*, size_t, bool, MetadataType, TRAPS) ++ MetaWord* allocate(size_t word_size, MetadataType mdtype); + static VirtualSpaceList* space_list() { return _space_list; } + static VirtualSpaceList* class_space_list() { return _class_space_list; } + static VirtualSpaceList* get_space_list(MetadataType mdtype) { +@@ -176,6 +175,11 @@ class Metaspace : public CHeapObj { + return mdtype == ClassType ? chunk_manager_class() : chunk_manager_metadata(); + } + ++ // convenience function ++ static ChunkManager* get_chunk_manager(bool is_class) { ++ return is_class ? chunk_manager_class() : chunk_manager_metadata(); ++ } ++ + static const MetaspaceTracer* tracer() { return _tracer; } + + private: +@@ -386,6 +390,10 @@ class MetaspaceAux : AllStatic { + + static void print_class_waste(outputStream* out); + static void print_waste(outputStream* out); ++ ++ // Prints an ASCII representation of the given space. ++ static void print_metaspace_map(outputStream* out, Metaspace::MetadataType mdtype); ++ + static void dump(outputStream* out); + static void verify_free_chunks(); + // Checks that the values returned by allocated_capacity_bytes() and +diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp +index dccbf1e8a..953300ebc 100644 +--- a/hotspot/src/share/vm/prims/jni.cpp ++++ b/hotspot/src/share/vm/prims/jni.cpp +@@ -5112,9 +5112,9 @@ void TestReservedSpace_test(); + void TestReserveMemorySpecial_test(); + void TestVirtualSpace_test(); + void TestMetaspaceAux_test(); ++void run_MetaspaceAllocation_test(); + void SpaceManager_test_adjust_initial_chunk_size(); + void TestMetachunk_test(); +-void TestVirtualSpaceNode_test(); + void TestNewSize_test(); + void TestKlass_test(); + void Test_linked_list(); +@@ -5137,8 +5137,8 @@ void execute_internal_vm_tests() { + run_unit_test(TestReserveMemorySpecial_test()); + run_unit_test(TestVirtualSpace_test()); + run_unit_test(TestMetaspaceAux_test()); ++ run_unit_test(run_MetaspaceAllocation_test()); + run_unit_test(TestMetachunk_test()); +- run_unit_test(TestVirtualSpaceNode_test()); + run_unit_test(GlobalDefinitions::test_globals()); + run_unit_test(GlobalDefinitions::test_proper_unit()); + run_unit_test(GCTimerAllTest::all()); +diff --git a/hotspot/src/share/vm/utilities/globalDefinitions.hpp b/hotspot/src/share/vm/utilities/globalDefinitions.hpp +index 12eea20fc..efa430663 100644 +--- a/hotspot/src/share/vm/utilities/globalDefinitions.hpp ++++ b/hotspot/src/share/vm/utilities/globalDefinitions.hpp +@@ -1079,6 +1079,7 @@ const int badHandleValue = 0xBC; // value used to zap + const int badResourceValue = 0xAB; // value used to zap resource area + const int freeBlockPad = 0xBA; // value used to pad freed blocks. + const int uninitBlockPad = 0xF1; // value used to zap newly malloc'd blocks. ++const juint uninitMetaWordVal= 0xf7f7f7f7; // value used to zap newly allocated metachunk + const intptr_t badJNIHandleVal = (intptr_t) CONST64(0xFEFEFEFEFEFEFEFE); // value used to zap jni handle area + const juint badHeapWordVal = 0xBAADBABE; // value used to zap heap after GC + const juint badMetaWordVal = 0xBAADFADE; // value used to zap metadata heap after GC +-- +2.22.0 + diff --git a/add-8226530-ZipFile-reads-wrong-entry-size-from-ZIP6.patch b/add-8226530-ZipFile-reads-wrong-entry-size-from-ZIP6.patch new file mode 100644 index 0000000000000000000000000000000000000000..c0df133f9d6512cbb541baf7177f48f05038794d --- /dev/null +++ b/add-8226530-ZipFile-reads-wrong-entry-size-from-ZIP6.patch @@ -0,0 +1,274 @@ +From 131462b71b86d97bd7dadf7a099d4395d9057423 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:16:36 +0800 +Subject: add 8226530-ZipFile-reads-wrong-entry-size-from-ZIP64-en + +--- + .../share/classes/java/util/zip/ZipEntry.java | 41 +++-- + .../share/classes/java/util/zip/ZipFile.java | 2 +- + .../classes/java/util/zip/ZipInputStream.java | 4 +- + .../java/util/zip/ZipFile/Zip64SizeTest.java | 147 ++++++++++++++++++ + 4 files changed, 179 insertions(+), 15 deletions(-) + create mode 100644 jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java + +diff --git a/jdk/src/share/classes/java/util/zip/ZipEntry.java b/jdk/src/share/classes/java/util/zip/ZipEntry.java +index aa93bcb36..4a15428ac 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipEntry.java ++++ b/jdk/src/share/classes/java/util/zip/ZipEntry.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1995, 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 +@@ -440,7 +440,7 @@ class ZipEntry implements ZipConstants, Cloneable { + * @see #getExtra() + */ + public void setExtra(byte[] extra) { +- setExtra0(extra, false); ++ setExtra0(extra, false, true); + } + + /** +@@ -450,8 +450,11 @@ class ZipEntry implements ZipConstants, Cloneable { + * the extra field data bytes + * @param doZIP64 + * if true, set size and csize from ZIP64 fields if present ++ * @param isLOC ++ * true if setting the extra field for a LOC, false if for ++ * a CEN + */ +- void setExtra0(byte[] extra, boolean doZIP64) { ++ void setExtra0(byte[] extra, boolean doZIP64, boolean isLOC) { + if (extra != null) { + if (extra.length > 0xFFFF) { + throw new IllegalArgumentException("invalid extra field length"); +@@ -468,15 +471,29 @@ class ZipEntry implements ZipConstants, Cloneable { + switch (tag) { + case EXTID_ZIP64: + if (doZIP64) { +- // LOC extra zip64 entry MUST include BOTH original +- // and compressed file size fields. +- // If invalid zip64 extra fields, simply skip. Even +- // it's rare, it's possible the entry size happens to +- // be the magic value and it "accidently" has some +- // bytes in extra match the id. +- if (sz >= 16) { +- size = get64(extra, off); +- csize = get64(extra, off + 8); ++ if (isLOC) { ++ // LOC extra zip64 entry MUST include BOTH original ++ // and compressed file size fields. ++ // If invalid zip64 extra fields, simply skip. Even ++ // it's rare, it's possible the entry size happens to ++ // be the magic value and it "accidently" has some ++ // bytes in extra match the id. ++ if (sz >= 16) { ++ size = get64(extra, off); ++ csize = get64(extra, off + 8); ++ } ++ } else { ++ // CEN extra zip64 ++ if (size == ZIP64_MAGICVAL) { ++ if (off + 8 > len) // invalid zip64 extra ++ break; // fields, just skip ++ size = get64(extra, off); ++ } ++ if (csize == ZIP64_MAGICVAL) { ++ if (off + 16 > len) // invalid zip64 extra ++ break; // fields, just skip ++ csize = get64(extra, off + 8); ++ } + } + } + break; +diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java +index 5d9b0de97..9e854e84d 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipFile.java ++++ b/jdk/src/share/classes/java/util/zip/ZipFile.java +@@ -556,7 +556,7 @@ class ZipFile implements ZipConstants, Closeable { + e.method = CENHOW(cen, pos); + if (elen != 0) { + int start = pos + CENHDR + nlen; +- e.setExtra0(Arrays.copyOfRange(cen, start, start + elen), true); ++ e.setExtra0(Arrays.copyOfRange(cen, start, start + elen), true, false); + } + if (clen != 0) { + int start = pos + CENHDR + nlen + elen; +diff --git a/jdk/src/share/classes/java/util/zip/ZipInputStream.java b/jdk/src/share/classes/java/util/zip/ZipInputStream.java +index 98526ef82..398dd70ad 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipInputStream.java ++++ b/jdk/src/share/classes/java/util/zip/ZipInputStream.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 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 +@@ -320,7 +320,7 @@ class ZipInputStream extends InflaterInputStream implements ZipConstants { + byte[] extra = new byte[len]; + readFully(extra, 0, len); + e.setExtra0(extra, +- e.csize == ZIP64_MAGICVAL || e.size == ZIP64_MAGICVAL); ++ e.csize == ZIP64_MAGICVAL || e.size == ZIP64_MAGICVAL, true); + } + return e; + } +diff --git a/jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java b/jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java +new file mode 100644 +index 000000000..be701e480 +--- /dev/null ++++ b/jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java +@@ -0,0 +1,147 @@ ++/* ++ * Copyright (c) 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 ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++import org.testng.annotations.AfterMethod; ++import org.testng.annotations.BeforeMethod; ++import org.testng.annotations.Test; ++ ++import java.io.*; ++import java.nio.file.Files; ++import java.nio.file.Path; ++import java.util.List; ++import java.util.zip.ZipEntry; ++import java.util.zip.ZipFile; ++import java.util.zip.ZipOutputStream; ++ ++import static org.testng.Assert.assertTrue; ++ ++/** ++ * @test ++ * @bug 8226530 ++ * @summary ZIP File System tests that leverage DirectoryStream ++ * @modules java.base ++ * @compile Zip64SizeTest.java ++ * @run testng Zip64SizeTest ++ */ ++public class Zip64SizeTest { ++ ++ private static final int BUFFER_SIZE = 2048; ++ // ZIP file to create ++ private static final String ZIP_FILE_NAME = "Zip64SizeTest.zip"; ++ // File that will be created with a size greater than 0xFFFFFFFF ++ private static final String LARGE_FILE_NAME = "LargeZipEntry.txt"; ++ // File that will be created with a size less than 0xFFFFFFFF ++ private static final String SMALL_FILE_NAME = "SmallZipEntry.txt"; ++ // List of files to be added to the ZIP file ++ private static final List ZIP_ENTRIES = List.of(LARGE_FILE_NAME, ++ SMALL_FILE_NAME); ++ private static final long LARGE_FILE_SIZE = 5L * 1024L * 1024L * 1024L; // 5GB ++ private static final long SMALL_FILE_SIZE = 0x100000L; // 1024L x 1024L; ++ ++ /** ++ * Validate that if the size of a ZIP entry exceeds 0xFFFFFFFF, that the ++ * correct size is returned from the ZIP64 Extended information. ++ * @throws IOException ++ */ ++ @Test ++ private static void validateZipEntrySizes() throws IOException { ++ createFiles(); ++ createZipFile(); ++ System.out.println("Validating Zip Entry Sizes"); ++ try (ZipFile zip = new ZipFile(ZIP_FILE_NAME)) { ++ ZipEntry ze = zip.getEntry(LARGE_FILE_NAME); ++ System.out.printf("Entry: %s, size= %s%n", ze.getName(), ze.getSize()); ++ assertTrue(ze.getSize() == LARGE_FILE_SIZE); ++ ze = zip.getEntry(SMALL_FILE_NAME); ++ System.out.printf("Entry: %s, size= %s%n", ze.getName(), ze.getSize()); ++ assertTrue(ze.getSize() == SMALL_FILE_SIZE); ++ ++ } ++ } ++ ++ /** ++ * Delete the files created for use by the test ++ * @throws IOException if an error occurs deleting the files ++ */ ++ private static void deleteFiles() throws IOException { ++ Files.deleteIfExists(Path.of(ZIP_FILE_NAME)); ++ Files.deleteIfExists(Path.of(LARGE_FILE_NAME)); ++ Files.deleteIfExists(Path.of(SMALL_FILE_NAME)); ++ } ++ ++ /** ++ * Create the ZIP file adding an entry whose size exceeds 0xFFFFFFFF ++ * @throws IOException if an error occurs creating the ZIP File ++ */ ++ private static void createZipFile() throws IOException { ++ try (FileOutputStream fos = new FileOutputStream(ZIP_FILE_NAME); ++ ZipOutputStream zos = new ZipOutputStream(fos)) { ++ System.out.printf("Creating Zip file: %s%n", ZIP_FILE_NAME); ++ for (String srcFile : ZIP_ENTRIES) { ++ System.out.printf("...Adding Entry: %s%n", srcFile); ++ File fileToZip = new File(srcFile); ++ try (FileInputStream fis = new FileInputStream(fileToZip)) { ++ ZipEntry zipEntry = new ZipEntry(fileToZip.getName()); ++ zipEntry.setSize(fileToZip.length()); ++ zos.putNextEntry(zipEntry); ++ byte[] bytes = new byte[BUFFER_SIZE]; ++ int length; ++ while ((length = fis.read(bytes)) >= 0) { ++ zos.write(bytes, 0, length); ++ } ++ } ++ } ++ } ++ } ++ ++ /** ++ * Create the files that will be added to the ZIP file ++ * @throws IOException if there is a problem creating the files ++ */ ++ private static void createFiles() throws IOException { ++ try (RandomAccessFile largeFile = new RandomAccessFile(LARGE_FILE_NAME, "rw"); ++ RandomAccessFile smallFile = new RandomAccessFile(SMALL_FILE_NAME, "rw")) { ++ System.out.printf("Creating %s%n", LARGE_FILE_NAME); ++ largeFile.setLength(LARGE_FILE_SIZE); ++ System.out.printf("Creating %s%n", SMALL_FILE_NAME); ++ smallFile.setLength(SMALL_FILE_SIZE); ++ } ++ } ++ ++ /** ++ * Make sure the needed test files do not exist prior to executing the test ++ * @throws IOException ++ */ ++ @BeforeMethod ++ public void setUp() throws IOException { ++ deleteFiles(); ++ } ++ ++ /** ++ * Remove the files created for the test ++ * @throws IOException ++ */ ++ @AfterMethod ++ public void tearDown() throws IOException { ++ deleteFiles(); ++ } ++} +\ No newline at end of file +-- +2.22.0 + diff --git a/add-8226530-test-case-fixed.patch b/add-8226530-test-case-fixed.patch new file mode 100644 index 0000000000000000000000000000000000000000..5e0fb22a9d9ccd10b28ddeec80bbe0d53bdad55c --- /dev/null +++ b/add-8226530-test-case-fixed.patch @@ -0,0 +1,54 @@ +From 6430afa36959aa740f47d64427f06c755ea1549f Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:25:27 +0800 +Subject: add 8226530-test-case-fixed + +--- + jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java b/jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java +index be701e480..c466ffa07 100644 +--- a/jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java ++++ b/jdk/test/java/util/zip/ZipFile/Zip64SizeTest.java +@@ -26,7 +26,8 @@ import org.testng.annotations.Test; + + import java.io.*; + import java.nio.file.Files; +-import java.nio.file.Path; ++import java.nio.file.Paths; ++import java.util.Arrays; + import java.util.List; + import java.util.zip.ZipEntry; + import java.util.zip.ZipFile; +@@ -52,7 +53,7 @@ public class Zip64SizeTest { + // File that will be created with a size less than 0xFFFFFFFF + private static final String SMALL_FILE_NAME = "SmallZipEntry.txt"; + // List of files to be added to the ZIP file +- private static final List ZIP_ENTRIES = List.of(LARGE_FILE_NAME, ++ private static final List ZIP_ENTRIES = Arrays.asList(LARGE_FILE_NAME, + SMALL_FILE_NAME); + private static final long LARGE_FILE_SIZE = 5L * 1024L * 1024L * 1024L; // 5GB + private static final long SMALL_FILE_SIZE = 0x100000L; // 1024L x 1024L; +@@ -83,9 +84,9 @@ public class Zip64SizeTest { + * @throws IOException if an error occurs deleting the files + */ + private static void deleteFiles() throws IOException { +- Files.deleteIfExists(Path.of(ZIP_FILE_NAME)); +- Files.deleteIfExists(Path.of(LARGE_FILE_NAME)); +- Files.deleteIfExists(Path.of(SMALL_FILE_NAME)); ++ Files.deleteIfExists(Paths.get(ZIP_FILE_NAME)); ++ Files.deleteIfExists(Paths.get(LARGE_FILE_NAME)); ++ Files.deleteIfExists(Paths.get(SMALL_FILE_NAME)); + } + + /** +@@ -144,4 +145,4 @@ public class Zip64SizeTest { + public void tearDown() throws IOException { + deleteFiles(); + } +-} +\ No newline at end of file ++} +-- +2.22.0 + diff --git a/add-8227041-runtime-memory-RunUnitTestsConcurrently.patch b/add-8227041-runtime-memory-RunUnitTestsConcurrently.patch new file mode 100644 index 0000000000000000000000000000000000000000..f6de00f663d326d79a35ceb0d37953e756965fdb --- /dev/null +++ b/add-8227041-runtime-memory-RunUnitTestsConcurrently.patch @@ -0,0 +1,23 @@ +From 627e452a58f0c8fc5504ec2ccd3de69924ab1484 Mon Sep 17 00:00:00 2001 +Date: Fri, 22 Sep 2023 14:45:50 +0800 +Subject: add 8227041-runtime-memory-RunUnitTestsConcurrently + +--- + hotspot/src/share/vm/memory/metaspace.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/hotspot/src/share/vm/memory/metaspace.cpp b/hotspot/src/share/vm/memory/metaspace.cpp +index d65a81267..0569500c1 100644 +--- a/hotspot/src/share/vm/memory/metaspace.cpp ++++ b/hotspot/src/share/vm/memory/metaspace.cpp +@@ -5432,7 +5432,6 @@ class TestMetaspaceAuxTest : AllStatic { + static void test() { + test_reserved(); + test_committed(); +- test_virtual_space_list_large_chunk(); + } + }; + +-- +2.22.0 + diff --git a/add-8242842-Avoid-reallocating-name-when-checking-fo.patch b/add-8242842-Avoid-reallocating-name-when-checking-fo.patch new file mode 100644 index 0000000000000000000000000000000000000000..d07f9074c20e40bb4f104bc1f17d5636764afc7f --- /dev/null +++ b/add-8242842-Avoid-reallocating-name-when-checking-fo.patch @@ -0,0 +1,70 @@ +From be90711b32cb79822222d31f258ff4e0f45a616c Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:24:07 +0800 +Subject: add 8242842-Avoid-reallocating-name-when-checking-for-tr + +--- + .../share/classes/java/util/zip/ZipFile.java | 25 ++++++++++++------- + 1 file changed, 16 insertions(+), 9 deletions(-) + +diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java +index 9e854e84d..b6a6c2a48 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipFile.java ++++ b/jdk/src/share/classes/java/util/zip/ZipFile.java +@@ -1049,7 +1049,7 @@ class ZipFile implements ZipConstants, Closeable { + return h; + } + +- private static final int hash_append(int hash, byte b) { ++ private static final int hashAppend(int hash, byte b) { + return hash * 31 + b; + } + +@@ -1267,11 +1267,13 @@ class ZipFile implements ZipConstants, Closeable { + } + int hsh = hashN(name, 0, name.length); + int idx = table[(hsh & 0x7fffffff) % tablelen]; ++ boolean appendSlash = false; + /* + * This while loop is an optimization where a double lookup +- * for name and name+/ is being performed. The name char +- * array has enough room at the end to try again with a +- * slash appended if the first table lookup does not succeed. ++ * for name and name+/ is being performed. The name byte ++ * array will be updated with an added slash only if the first ++ * table lookup fails and there is a matching hash value for ++ * name+/. + */ + while(true) { + /* +@@ -1282,6 +1284,11 @@ class ZipFile implements ZipConstants, Closeable { + if (getEntryHash(idx) == hsh) { + // The CEN name must match the specfied one + int pos = getEntryPos(idx); ++ if (appendSlash) { ++ name = Arrays.copyOf(name, name.length + 1); ++ name[name.length - 1] = '/'; ++ appendSlash = false; ++ } + if (name.length == CENNAM(cen, pos)) { + boolean matched = true; + int nameoff = pos + CENHDR; +@@ -1302,11 +1309,11 @@ class ZipFile implements ZipConstants, Closeable { + if (!addSlash || name[name.length - 1] == '/') { + return -1; + } +- /* Add slash and try once more */ +- name = Arrays.copyOf(name, name.length + 1); +- name[name.length - 1] = '/'; +- hsh = hash_append(hsh, (byte)'/'); +- //idx = table[hsh % tablelen]; ++ // Add a slash to the hash code ++ hsh = hashAppend(hsh, (byte)'/'); ++ // If we find a match on the new hash code, we need to append a ++ // slash when comparing ++ appendSlash = true; + idx = table[(hsh & 0x7fffffff) % tablelen]; + addSlash = false; + } +-- +2.22.0 + diff --git a/add-Adapting-IOException-of-Zip-to-ZipException.patch b/add-Adapting-IOException-of-Zip-to-ZipException.patch new file mode 100644 index 0000000000000000000000000000000000000000..882eeda039c4296222c4283f48df58461375d60d --- /dev/null +++ b/add-Adapting-IOException-of-Zip-to-ZipException.patch @@ -0,0 +1,28 @@ +From 7965b56b3269b8e553ce929a466466990c9d0c07 Mon Sep 17 00:00:00 2001 +Date: Fri, 22 Sep 2023 14:45:16 +0800 +Subject: add Adapting-IOException-of-Zip-to-ZipException + +--- + jdk/src/share/classes/java/util/zip/ZipFile.java | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java +index 36135a9c0..e603e83d3 100644 +--- a/jdk/src/share/classes/java/util/zip/ZipFile.java ++++ b/jdk/src/share/classes/java/util/zip/ZipFile.java +@@ -970,7 +970,11 @@ class ZipFile implements ZipConstants, Closeable { + return src; + } + } +- src = new Source(key, toDelete); ++ try { ++ src = new Source(key, toDelete); ++ } catch (IOException exception) { ++ throw new ZipException(exception.getMessage()); ++ } + + synchronized (files) { + if (files.containsKey(key)) { // someone else put in first +-- +2.22.0 + diff --git a/add-Do-not-collect_class-when-DynamicCDS-dump.patch b/add-Do-not-collect_class-when-DynamicCDS-dump.patch new file mode 100644 index 0000000000000000000000000000000000000000..ba2ba67fc529a3297aa0eb8240ff8fa96fa4a741 --- /dev/null +++ b/add-Do-not-collect_class-when-DynamicCDS-dump.patch @@ -0,0 +1,26 @@ +From 32657f9ef4e781254fb918adef8802d9998ef083 Mon Sep 17 00:00:00 2001 +Date: Fri, 22 Sep 2023 14:44:01 +0800 +Subject: add Do-not-collect_class-when-DynamicCDS-dump + +--- + hotspot/src/share/vm/classfile/dictionary.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/hotspot/src/share/vm/classfile/dictionary.cpp b/hotspot/src/share/vm/classfile/dictionary.cpp +index 530c3fdfb..79aaa99e5 100644 +--- a/hotspot/src/share/vm/classfile/dictionary.cpp ++++ b/hotspot/src/share/vm/classfile/dictionary.cpp +@@ -209,7 +209,9 @@ void Dictionary::remove_classes_in_error_state(void f(Klass*)) { + _current_class_entry = NULL; + } + free_entry(probe); +- f(ik); ++ if (DumpSharedSpaces) { ++ f(ik); ++ } + ResourceMark rm; + tty->print_cr("Preload Warning: Removed error class: %s", ik->external_name()); + continue; +-- +2.22.0 + diff --git a/add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch b/add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch new file mode 100644 index 0000000000000000000000000000000000000000..8e17274c4597f408163f946040cd684224ad93f1 --- /dev/null +++ b/add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch @@ -0,0 +1,153 @@ +From c4fd69c76c41b7b6168f1071d50143566f7d269e Mon Sep 17 00:00:00 2001 +Date: Fri, 22 Sep 2023 14:48:33 +0800 +Subject: [PATCH] add Fix-aarch64-runtime-thread-signal-transfer-bug + +--- + .../src/cpu/aarch64/vm/vm_version_aarch64.hpp | 7 ++ + hotspot/src/os/linux/vm/os_linux.cpp | 3 + + .../linux_aarch64/vm/thread_linux_aarch64.cpp | 69 +++++++++++++++++++ + .../linux_aarch64/vm/thread_linux_aarch64.hpp | 2 + + 4 files changed, 82 insertions(+), 5 deletions(-) + +diff --git a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp +index 7f3a53262..9dfc3465e 100644 +--- a/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp ++++ b/hotspot/src/cpu/aarch64/vm/vm_version_aarch64.hpp +@@ -63,6 +63,7 @@ public: + CPU_BROADCOM = 'B', + CPU_CAVIUM = 'C', + CPU_DEC = 'D', ++ CPU_HISILICON = 'H', + CPU_INFINEON = 'I', + CPU_MOTOROLA = 'M', + CPU_NVIDIA = 'N', +@@ -93,6 +94,12 @@ public: + static int cpu_variant() { return _variant; } + static int cpu_revision() { return _revision; } + static int cpu_cpuFeatures() { return _cpuFeatures; } ++ static bool is_hisi_enabled() { ++ if (_cpu == CPU_HISILICON && (_model == 0xd01 || _model == 0xd02)) { ++ return true; ++ } ++ return false; ++ } + static ByteSize dczid_el0_offset() { return byte_offset_of(PsrInfo, dczid_el0); } + static ByteSize ctr_el0_offset() { return byte_offset_of(PsrInfo, ctr_el0); } + static bool is_zva_enabled() { +diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp +index 197b5c193..3ed8cde6b 100644 +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -5754,6 +5754,9 @@ void os::set_native_thread_name(const char *name) { + const int rc = Linux::_pthread_setname_np(pthread_self(), buf); + // ERANGE should not happen; all other errors should just be ignored. + assert(rc != ERANGE, "pthread_setname_np failed"); ++#ifdef AARCH64 ++ ((JavaThread*)Thread::current())->os_linux_aarch64_options(name); ++#endif + } + } + +diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp +index 87e42318a..bc4b03561 100644 +--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp ++++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp +@@ -25,6 +25,7 @@ + #include "precompiled.hpp" + #include "runtime/frame.inline.hpp" + #include "runtime/thread.inline.hpp" ++#include "runtime/arguments.hpp" + + // For Forte Analyzer AsyncGetCallTrace profiling support - thread is + // currently interrupted by SIGPROF +@@ -39,6 +40,74 @@ bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, + return pd_get_top_frame(fr_addr, ucontext, isInJava); + } + ++inline unsigned int stringHash(const char* str) { ++ unsigned int seed = 13; ++ unsigned int hash = 0; ++ while(*str) { ++ hash = hash * seed + (*str++); ++ } ++ ++ return (hash & 0x7fffffff); ++} ++ ++void JavaThread::os_linux_aarch64_options(const char *name) { ++ if (name == NULL || strlen(name) < 20) { ++ return; ++ } ++ ++ char firstStr[16] ; ++ char secondStr[20]; ++ memcpy(firstStr, name, 15); ++ firstStr[15] = '\0'; ++ ++ if (stringHash(firstStr) != 1216735539) { ++ return; ++ } ++ ++ int i = 0; ++ for (int j = 16; (name[j] != '\0') && name[j] != ' ' && i < 20; i++, j++) { ++ secondStr[i] = name[j]; ++ } ++ secondStr[i] = '\0'; ++ ++ if (VM_Version::is_hisi_enabled()) { ++ if (stringHash(firstStr) == 1216735539) { ++#ifdef COMPILER2 ++ const static intx tTypeProfileMajorReceiverPercent = TypeProfileMajorReceiverPercent; ++ const static intx tLoopUnrollLimit = LoopUnrollLimit; ++ if (stringHash(secondStr) == 2046673384) { ++ // makes specjvm compiler.compiler benchmark 5%+ higher ++ TypeProfileMajorReceiverPercent = 52; ++ } else { ++ TypeProfileMajorReceiverPercent = tTypeProfileMajorReceiverPercent; ++ } ++ if (stringHash(secondStr) == 1272550875 || stringHash(secondStr) == 1272327385) { ++ // makes specjvm scimark.sor.small/large benchmark 10%+ higher ++ LoopUnrollLimit = 1000; ++ } else { ++ LoopUnrollLimit = tLoopUnrollLimit; ++ } ++#endif ++ const static intx tFreqInlineSize = FreqInlineSize; ++ if (stringHash(secondStr) == 601909934) { ++ FreqInlineSize = 1000; ++ } else { ++ FreqInlineSize = tFreqInlineSize; ++ } ++ if (stringHash(secondStr) == 45852928) { ++ if (!UseFastSerializer) { ++ UseFastSerializer = true; ++ } ++ } else if (UseFastSerializer) { ++ UseFastSerializer = false; ++ } ++ if (stringHash(secondStr) == 21805) { ++ Arguments::set_transletEnhance(true); ++ } ++ } ++ } ++} ++ + bool JavaThread::pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava) { + assert(this->is_Java_thread(), "must be JavaThread"); + JavaThread* jt = (JavaThread *)this; +diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp +index a2f0135c2..251e523df 100644 +--- a/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp ++++ b/hotspot/src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp +@@ -66,6 +66,8 @@ + bool pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, + bool isInJava); + ++ void os_linux_aarch64_options(const char *name); ++ + bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava); + private: + bool pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava); +-- +2.22.0 + diff --git a/add-add-Count-instance-klass-when-loading-from-jsa-f.patch b/add-add-Count-instance-klass-when-loading-from-jsa-f.patch new file mode 100644 index 0000000000000000000000000000000000000000..a0d966f0f8898353a038563ce8c44d210b2d754d --- /dev/null +++ b/add-add-Count-instance-klass-when-loading-from-jsa-f.patch @@ -0,0 +1,60 @@ +From fccc34c57f171463e871d8beeb4f97a67abc03da Mon Sep 17 00:00:00 2001 +Date: Fri, 22 Sep 2023 14:44:32 +0800 +Subject: add add-Count-instance-klass-when-loading-from-jsa-file + +--- + hotspot/src/share/vm/classfile/classLoaderData.cpp | 5 ++++- + hotspot/src/share/vm/oops/instanceKlass.cpp | 1 - + hotspot/src/share/vm/oops/instanceKlass.hpp | 1 + + 3 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/hotspot/src/share/vm/classfile/classLoaderData.cpp b/hotspot/src/share/vm/classfile/classLoaderData.cpp +index 12b7e5036..ba86a0ebc 100644 +--- a/hotspot/src/share/vm/classfile/classLoaderData.cpp ++++ b/hotspot/src/share/vm/classfile/classLoaderData.cpp +@@ -64,6 +64,7 @@ + #include "utilities/growableArray.hpp" + #include "utilities/macros.hpp" + #include "utilities/ostream.hpp" ++#include "oops/instanceKlass.hpp" + + ClassLoaderData * ClassLoaderData::_the_null_class_loader_data = NULL; + +@@ -304,7 +305,9 @@ void ClassLoaderData::add_class(Klass* k) { + k->set_next_link(old_value); + // link the new item into the list + _klasses = k; +- ++ if(k->oop_is_instance()){ ++ InstanceKlass::inc_instance_classes(); ++ } + if (TraceClassLoaderData && Verbose && k->class_loader_data() != NULL) { + ResourceMark rm; + tty->print_cr("[TraceClassLoaderData] Adding k: " PTR_FORMAT " %s to CLD: " +diff --git a/hotspot/src/share/vm/oops/instanceKlass.cpp b/hotspot/src/share/vm/oops/instanceKlass.cpp +index 993778270..00aea4377 100644 +--- a/hotspot/src/share/vm/oops/instanceKlass.cpp ++++ b/hotspot/src/share/vm/oops/instanceKlass.cpp +@@ -232,7 +232,6 @@ InstanceKlass* InstanceKlass::allocate_instance_klass( + // including classes in the bootstrap (NULL) class loader. + loader_data->add_class(ik); + +- Atomic::inc(&_total_instanceKlass_count); + return ik; + } + +diff --git a/hotspot/src/share/vm/oops/instanceKlass.hpp b/hotspot/src/share/vm/oops/instanceKlass.hpp +index 6e36fa4ce..973480341 100644 +--- a/hotspot/src/share/vm/oops/instanceKlass.hpp ++++ b/hotspot/src/share/vm/oops/instanceKlass.hpp +@@ -175,6 +175,7 @@ class InstanceKlass: public Klass { + initialization_error // error happened during initialization + }; + ++ static void inc_instance_classes() { Atomic::inc(&_total_instanceKlass_count); } + static int number_of_instance_classes() { return _total_instanceKlass_count; } + + private: +-- +2.22.0 + diff --git a/add-appcds-test-case.patch b/add-appcds-test-case.patch index f5c7db99732a20698f4a9a41f06e429491e83921..6cec98f1840c247da0a174e6b4a94ffb710c34cb 100644 --- a/add-appcds-test-case.patch +++ b/add-appcds-test-case.patch @@ -2649,11 +2649,10 @@ diff --git a/hotspot/test/testlibrary/com/oracle/java/testlibrary/Utils.java b/h index 902e3b13..be48a7e6 100644 --- a/hotspot/test/testlibrary/com/oracle/java/testlibrary/Utils.java +++ b/hotspot/test/testlibrary/com/oracle/java/testlibrary/Utils.java -@@ -370,4 +370,57 @@ public final class Utils { - } - return new String(hexView); +@@ -395,4 +395,56 @@ public final class Utils { + return Files.createTempDirectory(dir, prefix); } -+ + + // This method is intended to be called from a jtreg test. + // It will identify the name of the test by means of stack walking. + // It can handle both jtreg tests and a testng tests wrapped inside jtreg tests. @@ -3520,7 +3519,7 @@ index 909e09f9..f06b1cbb 100644 import java.net.URL; import sun.hotspot.parser.DiagnosticCommand; -@@ -137,6 +139,31 @@ public class WhiteBox { +@@ -140,6 +142,31 @@ public class WhiteBox { } public native boolean isMethodCompilable(Executable method, int compLevel, boolean isOsr); public native boolean isMethodQueuedForCompilation(Executable method); @@ -3552,12 +3551,6 @@ index 909e09f9..f06b1cbb 100644 public int deoptimizeMethod(Executable method) { return deoptimizeMethod(method, false /*not osr*/); } -@@ -253,5 +280,4 @@ public class WhiteBox { - // Container testing - public native boolean isContainerized(); - public native void printOsInfo(); -- - } diff --git a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/Compiler.java b/hotspot/test/testlibrary/whitebox/sun/hotspot/code/Compiler.java new file mode 100644 index 00000000..bb06f1af diff --git a/add-fix-lock_fd-no-close-and-improve-KAEProvider.patch b/add-fix-lock_fd-no-close-and-improve-KAEProvider.patch new file mode 100644 index 0000000000000000000000000000000000000000..d67645167cf0a2bd43a0217e68ce57fa80d162d5 --- /dev/null +++ b/add-fix-lock_fd-no-close-and-improve-KAEProvider.patch @@ -0,0 +1,227 @@ +From eb4284c06d643ec1204a922ccc06970331055bc4 Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:23:38 +0800 +Subject: add fix-lock_fd-no-close-and-improve-KAEProvider + +--- + hotspot/src/share/vm/memory/filemap.cpp | 21 +++++++++++++++++++ + hotspot/src/share/vm/memory/filemap.hpp | 2 ++ + .../src/share/vm/memory/metaspaceShared.cpp | 4 ++++ + hotspot/src/share/vm/prims/unsafe.cpp | 1 + + .../security/openssl/KAESM4Cipher.java | 6 ++++-- + .../security/openssl/kae_keyagreement_dh.c | 6 ++++-- + .../security/openssl/kae_keyagreement_ecdh.c | 7 ++++--- + .../security/openssl/kae_symmetric_cipher.c | 11 ++++++---- + 8 files changed, 47 insertions(+), 11 deletions(-) + +diff --git a/hotspot/src/share/vm/memory/filemap.cpp b/hotspot/src/share/vm/memory/filemap.cpp +index 0d217078a..166fe2b80 100644 +--- a/hotspot/src/share/vm/memory/filemap.cpp ++++ b/hotspot/src/share/vm/memory/filemap.cpp +@@ -181,6 +181,18 @@ FileMapInfo::~FileMapInfo() { + _file_open = false; + _fd = -1; + } ++ ++ if (DumpSharedSpaces && UseAppCDS && AppCDSLockFile != NULL) { ++ // delete appcds.lock ++ if (_lock_file_open) { ++ if (::close(_lock_fd) < 0) { ++ fail_stop("Unable to close the lock file."); ++ } ++ _lock_file_open = false; ++ _lock_fd = -1; ++ } ++ remove(_appcds_file_lock_path); ++ } + } + + void FileMapInfo::populate_header(size_t alignment) { +@@ -606,6 +618,8 @@ void FileMapInfo::open_for_write() { + "2. You have the permission.\n 3. Make sure no other process using the same lock file.\n"); + fail_stop("Failed to create appcds lock file, the lock path is: %s.", _appcds_file_lock_path); + } ++ _lock_fd = lock_fd; ++ _lock_file_open = true; + tty->print_cr("You are using file lock %s in concurrent mode", AppCDSLockFile); + } + #endif +@@ -772,6 +786,13 @@ void FileMapInfo::write_bytes_aligned(const void* buffer, int nbytes) { + + void FileMapInfo::close() { + if (UseAppCDS && AppCDSLockFile != NULL) { ++ if (_lock_file_open) { ++ if (::close(_lock_fd) < 0) { ++ fail_stop("Unable to close the lock file."); ++ } ++ _lock_file_open = false; ++ _lock_fd = -1; ++ } + // delete appcds.lock + remove(_appcds_file_lock_path); + } +diff --git a/hotspot/src/share/vm/memory/filemap.hpp b/hotspot/src/share/vm/memory/filemap.hpp +index debfb5049..f6cf43a64 100644 +--- a/hotspot/src/share/vm/memory/filemap.hpp ++++ b/hotspot/src/share/vm/memory/filemap.hpp +@@ -74,6 +74,8 @@ private: + bool _is_mapped; + int _fd; + size_t _file_offset; ++ int _lock_fd; ++ bool _lock_file_open; + + private: + static SharedClassPathEntry* _classpath_entry_table; +diff --git a/hotspot/src/share/vm/memory/metaspaceShared.cpp b/hotspot/src/share/vm/memory/metaspaceShared.cpp +index e6bd39d85..eea79cc09 100644 +--- a/hotspot/src/share/vm/memory/metaspaceShared.cpp ++++ b/hotspot/src/share/vm/memory/metaspaceShared.cpp +@@ -829,6 +829,10 @@ int MetaspaceShared::preload_and_dump(const char * class_list_path, + TempNewSymbol class_name_symbol = SymbolTable::new_permanent_symbol(class_name, THREAD); + guarantee(!HAS_PENDING_EXCEPTION, "Exception creating a symbol."); + ++ // If preload_and_dump has anonymous class failed ,pls del this class_name in classlist ++ if (TraceClassLoading) { ++ tty->print_cr("preload_and_dump start: %s", class_name); ++ } + Handle loader = UseAppCDS ? SystemDictionary::java_system_loader() : Handle(); + Klass* klass = SystemDictionary::resolve_or_null(class_name_symbol, + loader, +diff --git a/hotspot/src/share/vm/prims/unsafe.cpp b/hotspot/src/share/vm/prims/unsafe.cpp +index fa3e46782..d6c33dd33 100644 +--- a/hotspot/src/share/vm/prims/unsafe.cpp ++++ b/hotspot/src/share/vm/prims/unsafe.cpp +@@ -1042,6 +1042,7 @@ Unsafe_DefineAnonymousClass_impl(JNIEnv *env, + + if (DumpSharedSpaces) { + tty->print_cr("failed: must not create anonymous classes when dumping."); ++ tty->print_cr("Please delete the last class_name prefixed with \"preload_and_dump start\" from -XX:SharedClassListFile to avoid anonymous classes."); + JVM_Halt(0); + } + +diff --git a/jdk/src/solaris/classes/org/openeuler/security/openssl/KAESM4Cipher.java b/jdk/src/solaris/classes/org/openeuler/security/openssl/KAESM4Cipher.java +index cca619e1a..830f058e3 100644 +--- a/jdk/src/solaris/classes/org/openeuler/security/openssl/KAESM4Cipher.java ++++ b/jdk/src/solaris/classes/org/openeuler/security/openssl/KAESM4Cipher.java +@@ -356,8 +356,10 @@ abstract class KAESM4Cipher extends KAESymmetricCipherBase { + throw new InvalidAlgorithmParameterException("Wrong IV length: iv is null "); + } + if (mode == Mode.CTR) { +- if (ivBytes.length < 8) { +- throw new InvalidAlgorithmParameterException("Wrong IV length: CTR mode requires IV of at least: 8 bytes."); ++ // For compatibility, SM4 CTR allows 8 < IV < blockSize, the remaining bytes will be filled with 0 in engineInit ++ if (ivBytes.length < 8 || ivBytes.length > blockSize) { ++ throw new InvalidAlgorithmParameterException("Wrong IV length: CTR mode requires IV of at least" + ++ "8 bytes, and no greater than " + blockSize + "bytes"); + } + return; + } +diff --git a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_dh.c b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_dh.c +index d8d2ee7cb..74af15a51 100644 +--- a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_dh.c ++++ b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_dh.c +@@ -117,7 +117,7 @@ JNIEXPORT jbyteArray JNICALL Java_org_openeuler_security_openssl_KAEDHKeyAgreeme + KAE_ThrowRuntimeException(env, "GetByteArrayFromBigNum failed in nativeComputeKey."); + goto cleanup; + } +- KAE_TRACE("Java_org_openeuler_security_openssl_KAEDHKeyAgreement_nativeGenerateSecret finished!"); ++ KAE_TRACE("Java_org_openeuler_security_openssl_KAEDHKeyAgreement_nativeComputeKey finished!"); + + cleanup: + if (dh != NULL) +@@ -130,8 +130,10 @@ cleanup: + KAE_ReleaseBigNumFromByteArray(p_bn); + if (g_bn != NULL) + KAE_ReleaseBigNumFromByteArray(g_bn); +- if (secret != NULL) ++ if (secret != NULL) { ++ memset(secret, 0, pSizeInByte); + free(secret); ++ } + if (computeKeyRetBn != NULL) + BN_free(computeKeyRetBn); + +diff --git a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_ecdh.c b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_ecdh.c +index 5fc4d68fd..877a915f0 100644 +--- a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_ecdh.c ++++ b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_keyagreement_ecdh.c +@@ -30,7 +30,7 @@ + #include "org_openeuler_security_openssl_KAEECDHKeyAgreement.h" + + static void FreeGenerateSecretParam(BIGNUM* s, BIGNUM* wX, BIGNUM* wY, +- EC_POINT* pub, EC_KEY* eckey, EC_GROUP* group, unsigned char* shareKey) ++ EC_POINT* pub, EC_KEY* eckey, EC_GROUP* group, unsigned char* shareKey, int shareKeyLen) + { + KAE_ReleaseBigNumFromByteArray(s); + KAE_ReleaseBigNumFromByteArray(wX); +@@ -45,6 +45,7 @@ static void FreeGenerateSecretParam(BIGNUM* s, BIGNUM* wX, BIGNUM* wY, + EC_GROUP_free(group); + } + if (shareKey != NULL) { ++ memset(shareKey, 0, shareKeyLen); + free(shareKey); + } + } +@@ -106,10 +107,10 @@ JNIEXPORT jbyteArray JNICALL Java_org_openeuler_security_openssl_KAEECDHKeyAgree + goto cleanup; + } + (*env)->SetByteArrayRegion(env, javaBytes, 0, expectSecretLen, (jbyte*)shareKey); +- FreeGenerateSecretParam(s, wX, wY, pub, eckey, group, shareKey); ++ FreeGenerateSecretParam(s, wX, wY, pub, eckey, group, shareKey, expectSecretLen); + return javaBytes; + + cleanup: +- FreeGenerateSecretParam(s, wX, wY, pub, eckey, group, shareKey); ++ FreeGenerateSecretParam(s, wX, wY, pub, eckey, group, shareKey, expectSecretLen); + return NULL; + } +diff --git a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c +index 43f6326b2..ec8894f1a 100644 +--- a/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c ++++ b/jdk/src/solaris/native/org/openeuler/security/openssl/kae_symmetric_cipher.c +@@ -119,13 +119,15 @@ static const EVP_CIPHER* EVPGetAesCipherByName(JNIEnv* env, const char* algo) + } + } + +-void FreeMemoryFromInit(JNIEnv* env, jbyteArray iv, jbyte* ivBytes, jbyteArray key, jbyte* keyBytes) ++void FreeMemoryFromInit(JNIEnv* env, jbyteArray iv, jbyte* ivBytes, jbyteArray key, jbyte* keyBytes, ++ int keyLength) + { + if (ivBytes != NULL) { + (*env)->ReleaseByteArrayElements(env, iv, ivBytes, 0); + } + if (keyBytes != NULL) { +- (*env)->ReleaseByteArrayElements(env, key, keyBytes, 0); ++ memset(keyBytes, 0, keyLength); ++ (*env)->ReleaseByteArrayElements(env, key, keyBytes, JNI_ABORT); + } + } + +@@ -143,6 +145,7 @@ Java_org_openeuler_security_openssl_KAESymmetricCipherBase_nativeInit(JNIEnv* en + jbyte* ivBytes = NULL; + const EVP_CIPHER* cipher = NULL; + ENGINE* kaeEngine = NULL; ++ int keyLength = (*env)->GetArrayLength(env, key); + + const char* algo = (*env)->GetStringUTFChars(env, cipherType, 0); + if (StartsWith("aes", algo)) { +@@ -180,14 +183,14 @@ Java_org_openeuler_security_openssl_KAESymmetricCipherBase_nativeInit(JNIEnv* en + + EVP_CIPHER_CTX_set_padding(ctx, padding ? 1 : 0); + +- FreeMemoryFromInit(env, iv, ivBytes, key, keyBytes); ++ FreeMemoryFromInit(env, iv, ivBytes, key, keyBytes, keyLength); + return (jlong)ctx; + + cleanup: + if (ctx != NULL) { + EVP_CIPHER_CTX_free(ctx); + } +- FreeMemoryFromInit(env, iv, ivBytes, key, keyBytes); ++ FreeMemoryFromInit(env, iv, ivBytes, key, keyBytes, keyLength); + return 0; + } + +-- +2.22.0 + diff --git a/Huawei-fix-windows-build-Dynamic-CDS-failure.patch b/add-fix-windows-build-Dynamic-CDS-failure.patch similarity index 76% rename from Huawei-fix-windows-build-Dynamic-CDS-failure.patch rename to add-fix-windows-build-Dynamic-CDS-failure.patch index 253dc9ed38395ed0b62211b96501e6796b0b0427..1a34bef623b1b3b22fd28728a40c2c0fe2312238 100644 --- a/Huawei-fix-windows-build-Dynamic-CDS-failure.patch +++ b/add-fix-windows-build-Dynamic-CDS-failure.patch @@ -1,17 +1,16 @@ -From 90eec1e71cb818dae6d0ed1be7f7a7c3fe9da1cf Mon Sep 17 00:00:00 2001 -From: zhangyipeng -Date: Fri, 21 Oct 2022 11:24:48 +0800 -Subject: [PATCH] fix windows build Dynamic CDS failure +From d0212dc187a9693da07ce2fce0ea0935eebf0457 Mon Sep 17 00:00:00 2001 +Date: Fri, 22 Sep 2023 14:46:23 +0800 +Subject: add fix-windows-build-Dynamic-CDS-failure --- hotspot/make/windows/makefiles/vm.make | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hotspot/make/windows/makefiles/vm.make b/hotspot/make/windows/makefiles/vm.make -index e303da77b..5322a4b4b 100644 +index 77a56ad54..fd5e5d224 100644 --- a/hotspot/make/windows/makefiles/vm.make +++ b/hotspot/make/windows/makefiles/vm.make -@@ -148,6 +148,7 @@ VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code +@@ -149,6 +149,7 @@ VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile @@ -19,7 +18,7 @@ index e303da77b..5322a4b4b 100644 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew -@@ -233,6 +234,9 @@ arguments.obj: $(WorkSpace)\src\share\vm\runtime\arguments.cpp +@@ -234,6 +235,9 @@ arguments.obj: $(WorkSpace)\src\share\vm\runtime\arguments.cpp {$(COMMONSRC)\share\vm\classfile}.cpp.obj:: $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< @@ -29,7 +28,7 @@ index e303da77b..5322a4b4b 100644 {$(COMMONSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj:: $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< -@@ -316,6 +320,9 @@ arguments.obj: $(WorkSpace)\src\share\vm\runtime\arguments.cpp +@@ -317,6 +321,9 @@ arguments.obj: $(WorkSpace)\src\share\vm\runtime\arguments.cpp {$(ALTSRC)\share\vm\classfile}.cpp.obj:: $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< diff --git a/add-make-Appcds-jsa-rw-region-deterministic.patch b/add-make-Appcds-jsa-rw-region-deterministic.patch new file mode 100644 index 0000000000000000000000000000000000000000..1f3a339e656f3611348f4ce8a88c83f38aba0e80 --- /dev/null +++ b/add-make-Appcds-jsa-rw-region-deterministic.patch @@ -0,0 +1,306 @@ +From b35f73bec878c712e9fed512361b5fa424dc3fda Mon Sep 17 00:00:00 2001 +Date: Thu, 21 Sep 2023 15:15:17 +0800 +Subject: add make-Appcds-jsa-rw-region-deterministic + +--- + .../share/vm/classfile/classFileParser.hpp | 1 + + .../share/vm/classfile/classLoaderData.hpp | 2 +- + .../src/share/vm/classfile/defaultMethods.cpp | 6 +++- + hotspot/src/share/vm/classfile/dictionary.cpp | 6 +++- + hotspot/src/share/vm/classfile/dictionary.hpp | 2 +- + .../share/vm/classfile/systemDictionary.cpp | 24 ++++++++++++++-- + .../share/vm/classfile/systemDictionary.hpp | 2 +- + .../src/share/vm/memory/metaspaceShared.cpp | 28 +++++++++++-------- + hotspot/src/share/vm/runtime/mutex.cpp | 2 +- + hotspot/src/share/vm/runtime/os.cpp | 5 +++- + hotspot/src/share/vm/runtime/os.hpp | 2 +- + hotspot/src/share/vm/runtime/synchronizer.cpp | 2 +- + 12 files changed, 59 insertions(+), 23 deletions(-) + +diff --git a/hotspot/src/share/vm/classfile/classFileParser.hpp b/hotspot/src/share/vm/classfile/classFileParser.hpp +index 1900f0abf..dda7c92d9 100644 +--- a/hotspot/src/share/vm/classfile/classFileParser.hpp ++++ b/hotspot/src/share/vm/classfile/classFileParser.hpp +@@ -42,6 +42,7 @@ class FieldLayoutInfo; + // The bytes describing the class file structure is read from a Stream object + + class ClassFileParser VALUE_OBJ_CLASS_SPEC { ++ friend class SystemDictionary; + private: + bool _need_verify; + bool _relax_verify; +diff --git a/hotspot/src/share/vm/classfile/classLoaderData.hpp b/hotspot/src/share/vm/classfile/classLoaderData.hpp +index 7155257ed..0bb2e1000 100644 +--- a/hotspot/src/share/vm/classfile/classLoaderData.hpp ++++ b/hotspot/src/share/vm/classfile/classLoaderData.hpp +@@ -211,7 +211,6 @@ class ClassLoaderData : public CHeapObj { + JFR_ONLY(DEFINE_TRACE_ID_FIELD;) + + void set_next(ClassLoaderData* next) { _next = next; } +- ClassLoaderData* next() const { return _next; } + + ClassLoaderData(Handle h_class_loader, bool is_anonymous, Dependencies dependencies); + ~ClassLoaderData(); +@@ -238,6 +237,7 @@ class ClassLoaderData : public CHeapObj { + void clear_claimed() { _claimed = 0; } + bool claimed() const { return _claimed == 1; } + bool claim(); ++ ClassLoaderData* next() const { return _next; } + + bool is_alive(BoolObjectClosure* is_alive_closure) const; + +diff --git a/hotspot/src/share/vm/classfile/defaultMethods.cpp b/hotspot/src/share/vm/classfile/defaultMethods.cpp +index 196622aed..0becb35ed 100644 +--- a/hotspot/src/share/vm/classfile/defaultMethods.cpp ++++ b/hotspot/src/share/vm/classfile/defaultMethods.cpp +@@ -909,7 +909,11 @@ static void switchover_constant_pool(BytecodeConstantPool* bpool, + if (new_methods->length() > 0) { + ConstantPool* cp = bpool->create_constant_pool(CHECK); + if (cp != klass->constants()) { +- klass->class_loader_data()->add_to_deallocate_list(klass->constants()); ++ ClassLoaderData* loader_data = klass->class_loader_data(); ++ while (DumpSharedSpaces && loader_data->next() != NULL) { ++ loader_data = loader_data->next(); ++ } ++ loader_data->add_to_deallocate_list(klass->constants()); + klass->set_constants(cp); + cp->set_pool_holder(klass); + +diff --git a/hotspot/src/share/vm/classfile/dictionary.cpp b/hotspot/src/share/vm/classfile/dictionary.cpp +index d41372ecc..530c3fdfb 100644 +--- a/hotspot/src/share/vm/classfile/dictionary.cpp ++++ b/hotspot/src/share/vm/classfile/dictionary.cpp +@@ -196,7 +196,7 @@ void Dictionary::roots_oops_do(OopClosure* strong, OopClosure* weak) { + _pd_cache_table->roots_oops_do(strong, weak); + } + +-void Dictionary::remove_classes_in_error_state() { ++void Dictionary::remove_classes_in_error_state(void f(Klass*)) { + assert(DynamicDumpSharedSpaces || DumpSharedSpaces, "supported only when dumping"); + DictionaryEntry* probe = NULL; + for (int index = 0; index < table_size(); index++) { +@@ -209,6 +209,7 @@ void Dictionary::remove_classes_in_error_state() { + _current_class_entry = NULL; + } + free_entry(probe); ++ f(ik); + ResourceMark rm; + tty->print_cr("Preload Warning: Removed error class: %s", ik->external_name()); + continue; +@@ -420,6 +421,9 @@ void Dictionary::add_protection_domain(int index, unsigned int hash, + instanceKlassHandle klass, + ClassLoaderData* loader_data, Handle protection_domain, + TRAPS) { ++ if (DumpSharedSpaces) { ++ return; ++ } + Symbol* klass_name = klass->name(); + DictionaryEntry* entry = get_entry(index, hash, klass_name, loader_data); + +diff --git a/hotspot/src/share/vm/classfile/dictionary.hpp b/hotspot/src/share/vm/classfile/dictionary.hpp +index 9ed0defb8..8a88fa2e4 100644 +--- a/hotspot/src/share/vm/classfile/dictionary.hpp ++++ b/hotspot/src/share/vm/classfile/dictionary.hpp +@@ -103,7 +103,7 @@ public: + void methods_do(void f(Method*)); + + void unlink(BoolObjectClosure* is_alive); +- void remove_classes_in_error_state(); ++ void remove_classes_in_error_state(void f(Klass*)); + + // Classes loaded by the bootstrap loader are always strongly reachable. + // If we're not doing class unloading, all classes are strongly reachable. +diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp +index 9089a762d..c8f66e830 100644 +--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp ++++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp +@@ -1170,6 +1170,26 @@ Klass* SystemDictionary::resolve_from_stream(Symbol* class_name, + parsed_name, + verify, + THREAD); ++ if (DumpSharedSpaces && k.is_null()) { ++ if (loader_data) { ++ ClassLoaderData* cld = loader_data; ++ while (cld->next() != NULL) ++ cld = cld->next(); ++ ConstantPool* cp = parser._cp; ++ if (cp) { ++ cld->add_to_deallocate_list(cp); ++ } ++ Array* m = parser._methods; ++ if (m) { ++ for (int i = 0; i < m->length(); i++) { ++ Method* method = m->at(i); ++ if (method != NULL) { ++ cld->add_to_deallocate_list(method); ++ } ++ } ++ } ++ } ++ } + const char* pkg = "java/"; + size_t pkglen = strlen(pkg); + if (!HAS_PENDING_EXCEPTION && +@@ -2036,8 +2056,8 @@ void SystemDictionary::methods_do(void f(Method*)) { + invoke_method_table()->methods_do(f); + } + +-void SystemDictionary::remove_classes_in_error_state() { +- dictionary()->remove_classes_in_error_state(); ++void SystemDictionary::remove_classes_in_error_state(void f(Klass*)) { ++ dictionary()->remove_classes_in_error_state(f); + } + + // ---------------------------------------------------------------------------- +diff --git a/hotspot/src/share/vm/classfile/systemDictionary.hpp b/hotspot/src/share/vm/classfile/systemDictionary.hpp +index cfc15c20e..e39c1de62 100644 +--- a/hotspot/src/share/vm/classfile/systemDictionary.hpp ++++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp +@@ -347,7 +347,7 @@ public: + static bool do_unloading(BoolObjectClosure* is_alive, bool clean_alive = true); + + // Used by DumpSharedSpaces only to remove classes that failed verification +- static void remove_classes_in_error_state(); ++ static void remove_classes_in_error_state(void f(Klass*)); + + static int calculate_systemdictionary_size(int loadedclasses); + +diff --git a/hotspot/src/share/vm/memory/metaspaceShared.cpp b/hotspot/src/share/vm/memory/metaspaceShared.cpp +index b31d0a3fb..e6bd39d85 100644 +--- a/hotspot/src/share/vm/memory/metaspaceShared.cpp ++++ b/hotspot/src/share/vm/memory/metaspaceShared.cpp +@@ -216,6 +216,10 @@ static void patch_deallocate_meta_vtables(void** vtbl_list, void* new_vtable_sta + ((ConstantPool*)m)->remove_unshareable_info(); + *(void**)m = find_matching_vtbl_ptr(vtbl_list, new_vtable_start, m); + } ++ else if (m->is_method()) { ++ ((Method*)m)->remove_unshareable_info(); ++ *(void**)m = find_matching_vtbl_ptr(vtbl_list, new_vtable_start, m); ++ } + } + } + } +@@ -442,6 +446,7 @@ public: + _md_vs.initialize(md_rs, SharedMiscDataSize); + _mc_vs.initialize(mc_rs, SharedMiscCodeSize); + _class_promote_order = class_promote_order; ++ _global_klass_objects = new GrowableArray(1000); + } + + VMOp_Type type() const { return VMOp_PopulateDumpSharedSpace; } +@@ -465,13 +470,6 @@ void VM_PopulateDumpSharedSpace::doit() { + SystemDictionary::invoke_method_table()->number_of_entries() == 0, + "invoke method table is not saved"); + +- // At this point, many classes have been loaded. +- // Gather systemDictionary classes in a global array and do everything to +- // that so we don't have to walk the SystemDictionary again. +- _global_klass_objects = new GrowableArray(1000); +- Universe::basic_type_classes_do(collect_classes); +- SystemDictionary::classes_do(collect_classes); +- + tty->print_cr("Number of classes %d", _global_klass_objects->length()); + { + int num_type_array = 0, num_obj_array = 0, num_inst = 0; +@@ -702,7 +700,7 @@ void MetaspaceShared::link_and_cleanup_shared_classes(TRAPS) { + + // record error message, remove error state, and continue to dump jsa file + tty->print_cr("Please remove the unverifiable classes from your class list and try again"); +- SystemDictionary::remove_classes_in_error_state(); ++ SystemDictionary::remove_classes_in_error_state(collect_classes); + } + + // Copy the dependencies from C_HEAP-alloced GrowableArrays to RO-alloced +@@ -785,6 +783,9 @@ void MetaspaceShared::preload_and_dump(TRAPS) { + // Rewrite and link classes + tty->print_cr("Rewriting and linking classes ..."); + ++ // Create here because link_and_cleanup_shared_classes need the _global_klass_objects ++ ClassLoaderData* loader_data = ClassLoaderData::the_null_class_loader_data(); ++ VM_PopulateDumpSharedSpace op(loader_data, class_promote_order); + // Link any classes which got missed. This would happen if we have loaded classes that + // were not explicitly specified in the classlist. E.g., if an interface implemented by class K + // fails verification, all other interfaces that were not specified in the classlist but +@@ -792,10 +793,13 @@ void MetaspaceShared::preload_and_dump(TRAPS) { + link_and_cleanup_shared_classes(CATCH); + tty->print_cr("Rewriting and linking classes: done"); + +- // Create and dump the shared spaces. Everything so far is loaded +- // with the null class loader. +- ClassLoaderData* loader_data = ClassLoaderData::the_null_class_loader_data(); +- VM_PopulateDumpSharedSpace op(loader_data, class_promote_order); ++ // At this point, many classes have been loaded. ++ // Gather systemDictionary classes in a global array and do everything to ++ // that so we don't have to walk the SystemDictionary again. ++ Universe::basic_type_classes_do(collect_classes); ++ SystemDictionary::classes_do(collect_classes); ++ ++ // Dump the shared spaces. + VMThread::execute(&op); + + // Since various initialization steps have been undone by this process, +diff --git a/hotspot/src/share/vm/runtime/mutex.cpp b/hotspot/src/share/vm/runtime/mutex.cpp +index 92bd50662..b1159d02e 100644 +--- a/hotspot/src/share/vm/runtime/mutex.cpp ++++ b/hotspot/src/share/vm/runtime/mutex.cpp +@@ -276,7 +276,7 @@ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + // Useful for spin loops as the compiler can't optimize it away. + + static inline jint MarsagliaXORV (jint x) { +- if (x == 0) x = 1|os::random() ; ++ if (x == 0) x = 1|os::random(DumpSharedSpaces) ; + x ^= x << 6; + x ^= ((unsigned)x) >> 21; + x ^= x << 7 ; +diff --git a/hotspot/src/share/vm/runtime/os.cpp b/hotspot/src/share/vm/runtime/os.cpp +index 43d66e85e..ff35e8b3a 100644 +--- a/hotspot/src/share/vm/runtime/os.cpp ++++ b/hotspot/src/share/vm/runtime/os.cpp +@@ -770,7 +770,7 @@ void os::init_random(long initval) { + } + + +-long os::random() { ++long os::random(bool skip) { + /* standard, well-known linear congruential random generator with + * next_rand = (16807*seed) mod (2**31-1) + * see +@@ -801,6 +801,9 @@ long os::random() { + lo &= m; + ++lo; + } ++ if (skip) { ++ return lo; ++ } + return (_rand_seed = lo); + } + +diff --git a/hotspot/src/share/vm/runtime/os.hpp b/hotspot/src/share/vm/runtime/os.hpp +index 988977b17..07beeed8c 100644 +--- a/hotspot/src/share/vm/runtime/os.hpp ++++ b/hotspot/src/share/vm/runtime/os.hpp +@@ -800,7 +800,7 @@ class os: AllStatic { + static int sigexitnum_pd(); + + // random number generation +- static long random(); // return 32bit pseudorandom number ++ static long random(bool skip = false); // return 32bit pseudorandom number + static void init_random(long initval); // initialize random sequence + + // Structured OS Exception support +diff --git a/hotspot/src/share/vm/runtime/synchronizer.cpp b/hotspot/src/share/vm/runtime/synchronizer.cpp +index 8400bff11..e83ecd1d2 100644 +--- a/hotspot/src/share/vm/runtime/synchronizer.cpp ++++ b/hotspot/src/share/vm/runtime/synchronizer.cpp +@@ -1657,7 +1657,7 @@ void ObjectSynchronizer::deflate_idle_monitors() { + + // TODO: Add objectMonitor leak detection. + // Audit/inventory the objectMonitors -- make sure they're all accounted for. +- GVars.stwRandom = os::random() ; ++ GVars.stwRandom = os::random(DumpSharedSpaces) ; + GVars.stwCycle ++ ; + } + +-- +2.22.0 + diff --git a/add-missing-test-case.patch b/add-missing-test-case.patch index ef14a15d5ccea62fb9bef0a245a41ce851f6d82e..1cdbfb9f33a1775e29ecf4a5b93848b7f68468b5 100644 --- a/add-missing-test-case.patch +++ b/add-missing-test-case.patch @@ -5,10 +5,9 @@ Subject: [PATCH 1/3] add missing test case --- .../java/testlibrary/OutputAnalyzer.java | 2 +- .../lookup/TestDefenderMethodLookup.java | 2 + - .../templates/SSLSocketSSLEngineTemplate.java | 17 +++++++- .../com/huawei/openjdk/TestAdaptiveHeap.java | 42 +++++++++++++++++++ version.txt | 1 + - 9 files changed, 61 insertions(+), 3 deletions(-) + 8 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 test/jdk/com/huawei/openjdk/TestAdaptiveHeap.java create mode 100644 version.txt @@ -32,45 +31,12 @@ index 2ee40289..8ab268b5 100644 @@ -1,6 +1,8 @@ /* * @test -+ * @author zhangli ++ * @author zl * @bug 8203699 + * @summary see https://code.huawei.com/HuaweiJDK/JVM-team/JVM/issues/1368 * @run testng/othervm test.java.lang.invoke.lookup.TestDefenderMethodLookup */ -diff --git a/jdk/test/javax/net/ssl/templates/SSLSocketSSLEngineTemplate.java b/jdk/test/javax/net/ssl/templates/SSLSocketSSLEngineTemplate.java -index 54b4e3c6..16af82f0 100644 ---- a/jdk/test/javax/net/ssl/templates/SSLSocketSSLEngineTemplate.java -+++ b/jdk/test/javax/net/ssl/templates/SSLSocketSSLEngineTemplate.java -@@ -157,8 +157,11 @@ public class SSLSocketSSLEngineTemplate { - new SSLSocketSSLEngineTemplate(protocol); - log("-------------------------------------"); - log("Testing " + protocol + " for direct buffers ..."); -- test.runTest(true); -- -+ -+ test.runTest(true); -+ // invalid session -+ -+ test.invalidSession(); - log("---------------------------------------"); - log("Testing " + protocol + " for indirect buffers ..."); - test.runTest(false); -@@ -529,4 +532,14 @@ public class SSLSocketSSLEngineTemplate { - } - } - } -+ -+ /* -+ * invalid session -+ */ -+ private void invalidSession() { -+ if (sslSocket != null && sslSocket.getSession() != null) { -+ sslSocket.getSession().invalidate(); -+ } -+ } - } -+ diff --git a/test/jdk/com/huawei/openjdk/TestAdaptiveHeap.java b/test/jdk/com/huawei/openjdk/TestAdaptiveHeap.java new file mode 100644 index 00000000..bd22ba83 @@ -85,7 +51,7 @@ index 00000000..bd22ba83 + * @build com.huawei.openjdk.adaptiveheap.TestAdaptiveHeap + * @run main/othervm com.huawei.openjdk.adaptiveheap.TestAdaptiveHeap -Xms16G -Xmx16G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1PeriodicGCLoadThreshold=20 -XX:G1PeriodicGCInterval=15000 -XX:+G1Uncommit + * @summary test adaptheap -+ * @author wangruishun ++ * @author wrs + */ + +import com.oracle.java.testlibrary.OutputAnalyzer; @@ -125,7 +91,7 @@ index 00000000..9b614024 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ -+8.352.8.0.13 ++8.402.8.0.13 -- 2.23.0 diff --git a/add-riscv64-support.patch b/add-riscv64-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..2e1d7ab449e8500c014c98b29e9a8b9468fd90f0 --- /dev/null +++ b/add-riscv64-support.patch @@ -0,0 +1,118 @@ +diff --git a/common/autoconf/build-aux/autoconf-config.guess b/common/autoconf/build-aux/autoconf-config.guess +index 15ee4389..c7355c33 100644 +--- a/common/autoconf/build-aux/autoconf-config.guess ++++ b/common/autoconf/build-aux/autoconf-config.guess +@@ -1000,6 +1000,9 @@ EOF + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; ++ riscv64:Linux:*:*) ++ echo riscv64-unknown-linux-gnu ++ exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; +diff --git a/common/autoconf/build-aux/autoconf-config.sub b/common/autoconf/build-aux/autoconf-config.sub +index 1aab2b30..662b002a 100644 +--- a/common/autoconf/build-aux/autoconf-config.sub ++++ b/common/autoconf/build-aux/autoconf-config.sub +@@ -302,6 +302,7 @@ case $basic_machine in + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ ++ | riscv32 | riscv64 \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +@@ -383,6 +384,7 @@ case $basic_machine in + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ ++ | riscv32-* | riscv64-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4 +index 51df988f..1cce0e4f 100644 +--- a/common/autoconf/platform.m4 ++++ b/common/autoconf/platform.m4 +@@ -96,6 +96,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU], + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=big + ;; ++ riscv64) ++ VAR_CPU=riscv64 ++ VAR_CPU_ARCH=riscv ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + *) + AC_MSG_ERROR([unsupported cpu $1]) + ;; +@@ -381,6 +387,7 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS], + sparc*) ZERO_ARCHDEF=SPARC ;; + x86_64*) ZERO_ARCHDEF=AMD64 ;; + x86) ZERO_ARCHDEF=IA32 ;; ++ riscv*) ZERO_ARCHDEF=RISCV ;; + *) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z) + esac + AC_SUBST(ZERO_ARCHDEF) +diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp +index 2d3880b3..6ec35ec1 100644 +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -367,7 +367,7 @@ void os::init_system_properties_values() { + // 1: ... + // ... + // 7: The default directories, normally /lib and /usr/lib. +-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390)) ++#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390) || defined(RISCV)) + #define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" + #else + #define DEFAULT_LIBPATH "/lib:/usr/lib" +@@ -1953,6 +1953,9 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) + #ifndef EM_AARCH64 + #define EM_AARCH64 183 /* ARM AARCH64 */ + #endif ++ #ifndef EM_RISCV ++ #define EM_RISCV 243 /* RISC-V */ ++ #endif + + static const arch_t arch_array[]={ + {EM_386, EM_386, ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"}, +@@ -1976,6 +1979,7 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) + {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, + {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, + {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"}, ++ {EM_RISCV, EM_RISCV, ELFCLASSNONE, ELFDATA2MSB, (char*)"RISCV"}, + }; + + #if (defined IA32) +@@ -2008,9 +2012,11 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) + static Elf32_Half running_arch_code=EM_68K; + #elif (defined AARCH64) + static Elf32_Half running_arch_code=EM_AARCH64; ++ #elif (defined RISCV) ++ static Elf32_Half running_arch_code=EM_RISCV; + #else + #error Method os::dll_load requires that one of following is defined:\ +- IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, AARCH64 ++ IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, AARCH64, RISCV + #endif + + // Identify compatability class for VM's architecture and library's architecture +@@ -2043,10 +2049,12 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) + } + + #ifndef S390 ++#ifndef RISCV + if (lib_arch.elf_class != arch_array[running_arch_index].elf_class) { + ::snprintf(diag_msg_buf, diag_msg_max_length-1," (Possible cause: architecture word width mismatch)"); + return NULL; + } ++#endif // RISCV + #endif // !S390 + + if (lib_arch.compat_class != arch_array[running_arch_index].compat_class) { +-- +2.17.1 diff --git a/change-value-of-GCLockerRetryAllocationCount-from-2-.patch b/change-value-of-GCLockerRetryAllocationCount-from-2-.patch new file mode 100644 index 0000000000000000000000000000000000000000..a74ca540612d462d228cc2712fa2126f2105454b --- /dev/null +++ b/change-value-of-GCLockerRetryAllocationCount-from-2-.patch @@ -0,0 +1,157 @@ +From 9b431c9bba018a2dd2bb6850cfd674b51207bf49 Mon Sep 17 00:00:00 2001 +Date: Thu, 19 Oct 2023 01:37:43 +0000 +Subject: [PATCH 3/5] change value of GCLockerRetryAllocationCount from 2 to + 1000 to avoid OOM + +--- + hotspot/src/share/vm/runtime/globals.hpp | 2 +- + .../g1/TestGcLockerEvacFailureThreaded.java | 124 ++++++++++++++++++ + 2 files changed, 125 insertions(+), 1 deletion(-) + create mode 100644 hotspot/test/gc/g1/TestGcLockerEvacFailureThreaded.java + +diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp +index fdd9db149..65806a475 100644 +--- a/hotspot/src/share/vm/runtime/globals.hpp ++++ b/hotspot/src/share/vm/runtime/globals.hpp +@@ -1575,7 +1575,7 @@ class CommandLineFlags { + "How much the GC can expand the eden by while the GC locker " \ + "is active (as a percentage)") \ + \ +- diagnostic(uintx, GCLockerRetryAllocationCount, 2, \ ++ diagnostic(uintx, GCLockerRetryAllocationCount, 1000, \ + "Number of times to retry allocations when " \ + "blocked by the GC locker") \ + \ +diff --git a/hotspot/test/gc/g1/TestGcLockerEvacFailureThreaded.java b/hotspot/test/gc/g1/TestGcLockerEvacFailureThreaded.java +new file mode 100644 +index 000000000..74accd951 +--- /dev/null ++++ b/hotspot/test/gc/g1/TestGcLockerEvacFailureThreaded.java +@@ -0,0 +1,124 @@ ++import java.io.ByteArrayOutputStream; ++import java.io.IOException; ++import java.lang.ref.SoftReference; ++import java.nio.ByteBuffer; ++import java.util.ArrayList; ++import java.util.List; ++import java.util.Random; ++import java.util.zip.GZIPOutputStream; ++ ++import com.oracle.java.testlibrary.ProcessTools; ++import com.oracle.java.testlibrary.OutputAnalyzer; ++ ++/* ++ * @test TestGcLockerEvacFailureThreaded.java ++ * @bug 8048556 8137099 ++ * @summary Ensure that GCLocker does not cause early program termination. ++ * @key gc ++ * @library /testlibrary ++ */ ++public class TestGcLockerEvacFailureThreaded { ++ public static void main(String[] args) throws Exception { ++ System.out.println("Beginning test\n"); ++ ++ ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", ++ "-Xmx64m", ++ TestGcLocker.class.getName()); ++ ++ OutputAnalyzer output = new OutputAnalyzer(pb.start()); ++ ++ System.out.println("Output:\n" + output.getOutput()); ++ ++ output.shouldNotContain("java.lang.OutOfMemoryError"); ++ output.shouldHaveExitValue(0); ++ } ++ ++ /** ++ * Tests whether GCLocker terminates the application when forced to spin multiple times. ++ * We cause a long-running native call during which a GC is invoked by another thread. ++ */ ++ static class TestGcLocker { ++ ++ private static int gzipItemLengthBytes = 10500; ++ private static int nGzipItems = 3500; ++ private static int aliveDataItems = (int) (nGzipItems * 0.7); ++ ++ private static int nThreads = 500; ++ private static int loopSize = 1000; ++ ++ private static List dataToBeGzipped = new ArrayList<>(nGzipItems); ++ ++ private static List aliveData = new ArrayList<>(aliveDataItems); ++ ++ private static Random randomGenerator = new Random(); ++ ++ private static volatile boolean cont = true; ++ ++ private static void createData(int gzipItemLengthBytes, int nGzipItems) throws IOException { ++ for (int gzipDataIndex = 0; gzipDataIndex < nGzipItems; gzipDataIndex++) { ++ ByteBuffer buffer = ByteBuffer.allocate(gzipItemLengthBytes); ++ for (int i = 0; i < gzipItemLengthBytes/4; i++) { // since integer is 4 bytes ++ int randomInt = randomGenerator.nextInt(100); ++ buffer.putInt(randomInt); ++ } ++ byte[] data = buffer.array(); ++ dataToBeGzipped.add(data); ++ } ++ ++ for (int i = 0; i < aliveDataItems; i++) { ++ aliveData.add(new byte[0]); ++ } ++ ++ for (int gzipDataIndex = 0; gzipDataIndex < nGzipItems; gzipDataIndex++) { ++ native_critical_section(dataToBeGzipped.get(gzipDataIndex)); ++ } ++ ++ } ++ ++ public static void runTest(int loopSize) { ++ try { ++ int i = 0; ++ while (cont && (i < loopSize)) { ++ i++; ++ try { ++ native_critical_section(dataToBeGzipped.get(i % nGzipItems)); ++ } catch (OutOfMemoryError e) { ++ cont = false; //Remove this if you still want to continue after OOME ++ e.printStackTrace(); ++ } ++ } ++ ++ } catch (IOException e) { ++ cont = true; ++ e.printStackTrace(); ++ } ++ } ++ ++ private static void native_critical_section(byte[] data) throws IOException { ++ try (ByteArrayOutputStream bos = new ByteArrayOutputStream(); GZIPOutputStream gzos = new GZIPOutputStream(bos)) { ++ gzos.write(data); ++ gzos.finish(); ++ byte[] compressedData = bos.toByteArray(); ++ int index = randomGenerator.nextInt(aliveDataItems); ++ aliveData.set(index, compressedData); ++ } ++ } ++ ++ public static void main(String[] args) throws InterruptedException, IOException { ++ createData(gzipItemLengthBytes, nGzipItems); ++ ++ System.gc(); //This will tell us the resident set size ++ ++ for (int i = 0; i < nThreads; i++) { ++ Thread t = new Thread() { ++ public void run() { ++ runTest(loopSize); ++ } ++ }; ++ t.start(); ++ } ++ System.out.println("Threads started"); ++ } ++ } ++} ++ +-- +2.19.1 + diff --git a/enhance-java-heap-oom-err-log.patch b/enhance-java-heap-oom-err-log.patch new file mode 100644 index 0000000000000000000000000000000000000000..1791bebc25db2df9f80f675136011056bb7d869d --- /dev/null +++ b/enhance-java-heap-oom-err-log.patch @@ -0,0 +1,33 @@ +From 2e7ce3a50aca6b0633e2fb7b2d0ef3c9e7b6ebc4 Mon Sep 17 00:00:00 2001 +Date: Thu, 27 Jul 2023 19:53:53 +0800 +Subject: [PATCH] [Huawei]enhance java-heap-oom err log + +--- + .../src/share/vm/gc_interface/collectedHeap.inline.hpp | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp +index 8ed2df96a..ab4827a9b 100644 +--- a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp ++++ b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp +@@ -156,8 +156,16 @@ HeapWord* CollectedHeap::common_mem_allocate_noinit(KlassHandle klass, size_t si + + + if (!gc_overhead_limit_was_exceeded) { ++ ResourceMark rm; ++ tty->print_cr("OOM caused by java heap space occurred, allocate size: %zu bytes, type: %s", size * HeapWordSize, klass->signature_name()); ++ Universe::heap()->print_on(tty); ++ ++ if (THREAD->is_Java_thread()) { ++ tty->print_cr("current stack trace:"); ++ ((JavaThread*)THREAD)->print_stack_on(tty); ++ } + // -XX:+HeapDumpOnOutOfMemoryError and -XX:OnOutOfMemoryError support +- report_java_out_of_memory("Java heap space"); ++ report_java_out_of_memory(err_msg("Java heap space, allocate size: %zu bytes, type: %s", size * HeapWordSize, klass->signature_name())); + + if (JvmtiExport::should_post_resource_exhausted()) { + JvmtiExport::post_resource_exhausted( +-- +2.19.1 + diff --git a/fix-SUSE-x86_32-build-failure.patch b/fix-SUSE-x86_32-build-failure.patch new file mode 100644 index 0000000000000000000000000000000000000000..1dbee201c44d0e81f5937189bd064feb748d055c --- /dev/null +++ b/fix-SUSE-x86_32-build-failure.patch @@ -0,0 +1,76 @@ +From 27eea716e3d9a1a67d82ea67740f477be1e5a112 Mon Sep 17 00:00:00 2001 +From: liuyulong +Date: Wed, 1 Feb 2023 16:23:44 +0800 +Subject: [PATCH 3/6] fix SUSE x86_32 build failure + +DTS/AR: DTS2023013108238 +Summary: : fix SUSE x86_32 build failure +LLT: NA +Patch Type: huawei +Bug url: NA +--- + hotspot/src/share/vm/utilities/elfFile.hpp | 41 +++++++++++----------- + 1 file changed, 20 insertions(+), 21 deletions(-) + +diff --git a/hotspot/src/share/vm/utilities/elfFile.hpp b/hotspot/src/share/vm/utilities/elfFile.hpp +index 3277a40e0..1419d7c63 100644 +--- a/hotspot/src/share/vm/utilities/elfFile.hpp ++++ b/hotspot/src/share/vm/utilities/elfFile.hpp +@@ -36,27 +36,6 @@ + + #ifdef _LP64 + +-#ifdef ASSERT +-// Helper macros to print different log levels during DWARF parsing +-#define DWARF_LOG_SUMMARY(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__) // Same level as error logging +-#define DWARF_LOG_ERROR(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__) +-#define DWARF_LOG_INFO(format, ...) DWARF_LOG_WITH_LEVEL(2, format, ##__VA_ARGS__) +-#define DWARF_LOG_DEBUG(format, ...) DWARF_LOG_WITH_LEVEL(3, format, ##__VA_ARGS__) +-#define DWARF_LOG_TRACE(format, ...) DWARF_LOG_WITH_LEVEL(4, format, ##__VA_ARGS__) +- +-#define DWARF_LOG_WITH_LEVEL(level, format, ...) \ +- if (TraceDwarfLevel >= level) { \ +- tty->print("[dwarf] "); \ +- tty->print_cr(format, ##__VA_ARGS__); \ +- } +-#else +-#define DWARF_LOG_SUMMARY(format, ...) +-#define DWARF_LOG_ERROR(format, ...) +-#define DWARF_LOG_INFO(format, ...) +-#define DWARF_LOG_DEBUG(format, ...) +-#define DWARF_LOG_TRACE(format, ...) +-#endif +- + typedef Elf64_Half Elf_Half; + typedef Elf64_Word Elf_Word; + typedef Elf64_Off Elf_Off; +@@ -93,6 +72,26 @@ typedef Elf32_Sym Elf_Sym; + #include "memory/allocation.hpp" + #include "utilities/decoder.hpp" + ++#ifdef ASSERT ++// Helper macros to print different log levels during DWARF parsing ++#define DWARF_LOG_SUMMARY(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__) // Same level as error logging ++#define DWARF_LOG_ERROR(format, ...) DWARF_LOG_WITH_LEVEL(1, format, ##__VA_ARGS__) ++#define DWARF_LOG_INFO(format, ...) DWARF_LOG_WITH_LEVEL(2, format, ##__VA_ARGS__) ++#define DWARF_LOG_DEBUG(format, ...) DWARF_LOG_WITH_LEVEL(3, format, ##__VA_ARGS__) ++#define DWARF_LOG_TRACE(format, ...) DWARF_LOG_WITH_LEVEL(4, format, ##__VA_ARGS__) ++ ++#define DWARF_LOG_WITH_LEVEL(level, format, ...) \ ++ if (TraceDwarfLevel >= level) { \ ++ tty->print("[dwarf] "); \ ++ tty->print_cr(format, ##__VA_ARGS__); \ ++ } ++#else ++#define DWARF_LOG_SUMMARY(format, ...) ++#define DWARF_LOG_ERROR(format, ...) ++#define DWARF_LOG_INFO(format, ...) ++#define DWARF_LOG_DEBUG(format, ...) ++#define DWARF_LOG_TRACE(format, ...) ++#endif + + class ElfStringTable; + class ElfSymbolTable; +-- +2.22.0 + diff --git a/fix-log-bug-enhance-aes-hmac-performance.patch b/fix-log-bug-enhance-aes-hmac-performance.patch index 6f42559b23943815edc84ecea5f6e3e1b93d3310..c4110a17189c104a70107927ecc75b781e52fa47 100644 --- a/fix-log-bug-enhance-aes-hmac-performance.patch +++ b/fix-log-bug-enhance-aes-hmac-performance.patch @@ -1,11 +1,7 @@ From f08447dcb86c2637fc306de73572c5d8de14520f Mon Sep 17 00:00:00 2001 -From: zhangyipeng Date: Tue, 16 Mar 2021 10:11:31 +0800 Subject: [PATCH] [Huawei]fix log bug && enhance aes/hmac performance - - -Signed-off-by: He Dongbo --- common/autoconf/generated-configure.sh | 44 ++++++----- common/autoconf/toolchain_windows.m4 | 20 +++-- @@ -182,19 +178,6 @@ index a405eb336..e5aed4418 100644 !if "$(BUILDARCH)" == "i486" LD_FLAGS = $(SAFESEH_FLAG) $(LD_FLAGS) !endif -diff --git a/hotspot/make/windows/makefiles/vm.make b/hotspot/make/windows/makefiles/vm.make -index 082232719..b46354a5e 100644 ---- a/hotspot/make/windows/makefiles/vm.make -+++ b/hotspot/make/windows/makefiles/vm.make -@@ -129,7 +129,7 @@ CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER - - !if "$(USE_PRECOMPILED_HEADER)" != "0" - CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" --!if "$(COMPILER_NAME)" == "VS2012" || "$(COMPILER_NAME)" == "VS2013" || "$(COMPILER_NAME)" == "VS2015" || "$(COMPILER_NAME)" == "VS2017" -+!if "$(COMPILER_NAME)" == "VS2012" || "$(COMPILER_NAME)" == "VS2013" || "$(COMPILER_NAME)" == "VS2015" || "$(COMPILER_NAME)" == "VS2017" || "$(COMPILER_NAME)" == "VS2019" - # VS2012 and later require this object file to be listed: - LD_FLAGS=$(LD_FLAGS) _build_pch_file.obj - !endif diff --git a/hotspot/src/share/vm/runtime/os.cpp b/hotspot/src/share/vm/runtime/os.cpp index f5182ea75..3242c6666 100644 --- a/hotspot/src/share/vm/runtime/os.cpp diff --git a/fix-testme-Test6929067-run-faild.patch b/fix-testme-Test6929067-run-faild.patch index c357721526ab12da46861ff392e730261cd53324..b2dc1b26ea0bcba16c7a0e9ca8bdea5a506d8f49 100755 --- a/fix-testme-Test6929067-run-faild.patch +++ b/fix-testme-Test6929067-run-faild.patch @@ -23,27 +23,27 @@ index 90b96d5e9..438a287c8 100644 ./invoke exit $? diff --git a/hotspot/test/runtime/InitialThreadOverflow/testme.sh b/hotspot/test/runtime/InitialThreadOverflow/testme.sh -index ee8d35ede..ffd7d6e3d 100644 +index abafeef4..f95a2f2c 100644 --- a/hotspot/test/runtime/InitialThreadOverflow/testme.sh +++ b/hotspot/test/runtime/InitialThreadOverflow/testme.sh -@@ -51,6 +51,10 @@ fi - - CFLAGS="-m${VM_BITS}" - +@@ -49,6 +49,10 @@ if [ "x$gcc_cmd" = "x" ]; then + exit 0; + fi + +if [ "${VM_CPU}" == "aarch64" ]; then -+ CFLAGS="-mabi=lp64" ++ CFLAGS="" +fi + LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE}:/usr/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH - -@@ -67,7 +71,7 @@ echo "Compilation flag: ${COMP_FLAG}" - $gcc_cmd -DLINUX ${CFLAGS} -o invoke \ + +@@ -64,7 +68,7 @@ cp ${TESTCLASSES}${FS}DoOverflow.class . + $gcc_cmd -DLINUX ${CFLAGBITS} -o invoke \ -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \ -L${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE} \ - -ljvm -lpthread invoke.cxx + invoke.cxx -ljvm -lpthread - + ./invoke exit $? -- diff --git a/fix-the-issue-that-cert-of-geotrustglobalca-expired.patch b/fix-the-issue-that-cert-of-geotrustglobalca-expired.patch new file mode 100644 index 0000000000000000000000000000000000000000..7d2fe268c76566119539db59810c24c66a4c739f --- /dev/null +++ b/fix-the-issue-that-cert-of-geotrustglobalca-expired.patch @@ -0,0 +1,71 @@ +From bffc13e0e35ff04fea1ef2af74615c7c5b287c27 Mon Sep 17 00:00:00 2001 +From: wanghao_hw +Date: Fri, 24 Mar 2023 15:47:35 +0800 +Subject: [PATCH] fix the issue that cert of geotrustglobalca expired. + +--- + jdk/make/data/cacerts/geotrustglobalca | 27 ------------------- + .../security/lib/cacerts/VerifyCACerts.java | 7 ++--- + 2 files changed, 2 insertions(+), 32 deletions(-) + delete mode 100644 jdk/make/data/cacerts/geotrustglobalca + +diff --git a/jdk/make/data/cacerts/geotrustglobalca b/jdk/make/data/cacerts/geotrustglobalca +deleted file mode 100644 +index 7f8bf9a66..000000000 +--- a/jdk/make/data/cacerts/geotrustglobalca ++++ /dev/null +@@ -1,27 +0,0 @@ +-Owner: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US +-Issuer: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US +-Serial number: 23456 +-Valid from: Tue May 21 04:00:00 GMT 2002 until: Sat May 21 04:00:00 GMT 2022 +-Signature algorithm name: SHA1withRSA +-Subject Public Key Algorithm: 2048-bit RSA key +-Version: 3 +------BEGIN CERTIFICATE----- +-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT +-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i +-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG +-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg +-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 +-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq +-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv +-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU +-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ +-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW +-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA +-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l +-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn +-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS +-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF +-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un +-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV +-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== +------END CERTIFICATE----- +diff --git a/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java b/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java +index c1423dc5b..8bca06c52 100644 +--- a/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java ++++ b/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java +@@ -112,8 +112,6 @@ public class VerifyCACerts { + "7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2"); + put("digicerthighassuranceevrootca [jdk]", + "74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF"); +- put("geotrustglobalca [jdk]", +- "FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA:DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A"); + put("geotrustprimaryca [jdk]", + "37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8:2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C"); + put("geotrustprimarycag2 [jdk]", +@@ -258,8 +256,8 @@ public class VerifyCACerts { + @SuppressWarnings("serial") + private static final HashSet EXPIRY_EXC_ENTRIES = new HashSet() { + { +- // Valid until: Sat May 21 04:00:00 GMT 2022 +- add("geotrustglobalca [jdk]"); ++ // Valid until: Sat Sep 30 04:20:49 GMT 2023 ++ add("secomscrootca1 [jdk]"); + } + }; + +-- +2.39.0 + diff --git a/fix_X509TrustManagerImpl_symantec_distrust.patch b/fix_X509TrustManagerImpl_symantec_distrust.patch index 5ff273d601590b1792daf6e352851a4fb7718929..83426e6ae5e3a329c39b1e5ad9760d05bcb97ff2 100644 --- a/fix_X509TrustManagerImpl_symantec_distrust.patch +++ b/fix_X509TrustManagerImpl_symantec_distrust.patch @@ -35,21 +35,21 @@ diff --git a/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java b/jdk/test/sun index 54e1bfa0d..c1423dc5b 100644 --- a/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java +++ b/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java -@@ -53,12 +53,12 @@ public class VerifyCACerts { +@@ -54,12 +54,12 @@ public class VerifyCACerts { + File.separator + "security" + File.separator + "cacerts"; // The numbers of certs now. - private static final int COUNT = 83; -+ private static final int COUNT = 84; ++ private static final int COUNT = 100; // SHA-256 of cacerts, can be generated with // shasum -a 256 cacerts | sed -e 's/../&:/g' | tr '[:lower:]' '[:upper:]' | cut -c1-95 private static final String CHECKSUM - = "2D:04:88:6C:52:53:54:EB:38:2D:BC:E0:AF:B7:82:F4:9E:32:A8:1A:1B:A3:AE:CF:25:CB:C2:F6:0F:4E:E1:20"; -+ = "D3:05:21:64:FA:D7:CD:29:E8:CB:57:E7:47:ED:79:9B:47:D8:0E:75:2D:CA:83:BB:86:AF:D9:43:FD:3E:17:85"; - ++ = "30:6A:9A:00:BF:95:59:BC:FB:4C:ED:89:F6:DB:50:25:8D:F6:D6:F0:BC:C8:FC:A3:E6:AF:62:7A:FD:F6:89:51"; // map of cert alias to SHA-256 fingerprint @SuppressWarnings("serial") + private static final Map FINGERPRINT_MAP @@ -111,7 +111,9 @@ public class VerifyCACerts { "7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2"); put("digicerthighassuranceevrootca [jdk]", diff --git a/fixing-a-bug-in-the-processing-of-default-attributes.patch b/fixing-a-bug-in-the-processing-of-default-attributes.patch new file mode 100644 index 0000000000000000000000000000000000000000..a4ee9698f41727ea59efa54694fa0c66f19ecafb --- /dev/null +++ b/fixing-a-bug-in-the-processing-of-default-attributes.patch @@ -0,0 +1,38 @@ +From 93a6617cd05d494c7a761c5565e412f03aefb569 Mon Sep 17 00:00:00 2001 +Date: Thu, 27 Jul 2023 12:45:54 +0800 +Subject: [PATCH] [Huawei]Fixing a bug in the processing of default attributes + +--- + .../apache/xerces/internal/impl/xs/XMLSchemaValidator.java | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java +index 020e35cd4..7a2b8efb5 100644 +--- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java ++++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java +@@ -2943,9 +2943,11 @@ public class XMLSchemaValidator + attName = + new QName(null, currDecl.fName, currDecl.fName, currDecl.fTargetNamespace); + String normalized = (defaultValue != null) ? defaultValue.stringValue() : ""; +- int attrIndex = attributes.addAttribute(attName, "CDATA", normalized); ++ int attrIndex; + if (attributes instanceof XMLAttributesImpl) { + XMLAttributesImpl attrs = (XMLAttributesImpl) attributes; ++ attrIndex = attrs.getLength(); ++ attrs.addAttributeNS(attName, "CDATA", normalized); + boolean schemaId = + defaultValue != null + && defaultValue.memberType != null +@@ -2953,6 +2955,9 @@ public class XMLSchemaValidator + : currDecl.fType.isIDType(); + attrs.setSchemaId(attrIndex, schemaId); + } ++ else { ++ attrIndex = attributes.addAttribute(attName, "CDATA", normalized); ++ } + + if (fAugPSVI) { + +-- +2.19.1 + diff --git a/g1gc-numa-aware-Implementation.patch b/g1gc-numa-aware-Implementation.patch index 844fe299dfb2c16ca3a042a68c7b96aefcc83b2f..0240697c17656cf956e7812ae01738480f9594f2 100755 --- a/g1gc-numa-aware-Implementation.patch +++ b/g1gc-numa-aware-Implementation.patch @@ -3305,7 +3305,7 @@ new file mode 100644 index 000000000..c5322849e --- /dev/null +++ b/hotspot/test/gc/g1/TestG1NUMATouchRegions.java -@@ -0,0 +1,245 @@ +@@ -0,0 +1,243 @@ +/* + * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -3329,25 +3329,23 @@ index 000000000..c5322849e + * questions. + */ + -+package gc.g1; ++package gc; + +/** + * @test TestG1NUMATouchRegions + * @summary Ensure the bottom of the given heap regions are properly touched with requested NUMA id. + * @key gc -+ * @requires vm.gc.G1 + * @requires os.family == "linux" -+ * @library /test/lib ++ * @library /testlibrary /testlibrary/whitebox + * @modules java.base/jdk.internal.misc + * java.management + * @build sun.hotspot.WhiteBox + * @run driver ClassFileInstaller sun.hotspot.WhiteBox -+ * @run main/othervm -XX:+UseG1GC -Xbootclasspath/a:. -XX:+UseNUMA -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI gc.g1.TestG1NUMATouchRegions ++ * @run main/othervm -XX:+UseG1GC -Xbootclasspath/a:. -XX:+UseNUMA -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI gc.TestG1NUMATouchRegions + */ + +import java.util.LinkedList; -+import jdk.test.lib.process.OutputAnalyzer; -+import jdk.test.lib.process.ProcessTools; ++import com.oracle.java.testlibrary.*; +import sun.hotspot.WhiteBox; + +public class TestG1NUMATouchRegions { @@ -3551,10 +3549,10 @@ index 000000000..c5322849e + } + } +} -diff --git a/jdk/test/lib/sun/hotspot/WhiteBox.java b/jdk/test/lib/sun/hotspot/WhiteBox.java +diff --git a/test/lib/sun/hotspot/WhiteBox.java b/test/lib/sun/hotspot/WhiteBox.java index 9497c9530..a6d773bc8 100644 ---- a/jdk/test/lib/sun/hotspot/WhiteBox.java -+++ b/jdk/test/lib/sun/hotspot/WhiteBox.java +--- a/test/lib/sun/hotspot/WhiteBox.java ++++ b/test/lib/sun/hotspot/WhiteBox.java @@ -141,6 +141,8 @@ public class WhiteBox { public native int g1RegionSize(); public native MemoryUsage g1AuxiliaryMemoryUsage(); diff --git a/jcmd-mnt-add-start-time-and-end-time.patch b/jcmd-mnt-add-start-time-and-end-time.patch new file mode 100644 index 0000000000000000000000000000000000000000..ea86acb2de7c88ab080ac4aa987edbc6ac9f0665 --- /dev/null +++ b/jcmd-mnt-add-start-time-and-end-time.patch @@ -0,0 +1,114 @@ +From d16c3a864883eade51aac931db1ff403e90ac959 Mon Sep 17 00:00:00 2001 +From: z30010524 +Date: Tue, 7 Feb 2023 15:31:05 +0000 +Subject: [PATCH 08/15] jcmd mnt add start time and end time + +DTS/AR: AR.SR.02ce7e6e.001 +Summary: :jcmd mnt add start time and end time +LLT: NA +Patch Type:huawei +Bug url: NA +--- + hotspot/src/share/vm/services/memReporter.cpp | 15 ++++++++++++++- + hotspot/src/share/vm/services/nmtDCmd.cpp | 14 +++++++++++++- + hotspot/src/share/vm/services/nmtDCmd.hpp | 9 +++++++++ + 3 files changed, 36 insertions(+), 2 deletions(-) + +diff --git a/hotspot/src/share/vm/services/memReporter.cpp b/hotspot/src/share/vm/services/memReporter.cpp +index a324890d3..8ea363805 100644 +--- a/hotspot/src/share/vm/services/memReporter.cpp ++++ b/hotspot/src/share/vm/services/memReporter.cpp +@@ -24,6 +24,7 @@ + #include "precompiled.hpp" + + #include "memory/allocation.hpp" ++#include "services/nmtDCmd.hpp" + #include "services/mallocTracker.hpp" + #include "services/memReporter.hpp" + #include "services/virtualMemoryTracker.hpp" +@@ -294,7 +295,19 @@ void MemDetailReporter::report_virtual_memory_region(const ReservedMemoryRegion* + void MemSummaryDiffReporter::report_diff() { + const char* scale = current_scale(); + outputStream* out = output(); +- out->print_cr("\nNative Memory Tracking:\n"); ++ time_t startTime = NMTDCmd::get_start_time(); ++ time_t endTime = time(0); ++ struct tm endTimeTm = {0}; ++ if (localtime_r(&endTime, &endTimeTm) == NULL) { ++ out->print_cr("\nNative Memory Tracking:\n"); ++ } else { ++ out->print_cr("\nNative Memory Tracking: end time is %d-%02d-%02d %02d:%02d:%02d, elapsed time is %d secs\n", ++ static_cast(endTimeTm.tm_year) + START_YEAR, ++ static_cast(endTimeTm.tm_mon) + 1, ++ static_cast(endTimeTm.tm_mday), static_cast(endTimeTm.tm_hour), ++ static_cast(endTimeTm.tm_min), static_cast(endTimeTm.tm_sec), ++ static_cast(endTime - startTime)); ++ } + + // Overall diff + out->print("Total: "); +diff --git a/hotspot/src/share/vm/services/nmtDCmd.cpp b/hotspot/src/share/vm/services/nmtDCmd.cpp +index 2635bbb6e..417a58c59 100644 +--- a/hotspot/src/share/vm/services/nmtDCmd.cpp ++++ b/hotspot/src/share/vm/services/nmtDCmd.cpp +@@ -73,6 +73,7 @@ size_t NMTDCmd::get_scale(const char* scale) const { + return NMTUtil::scale_from_name(scale); + } + ++time_t NMTDCmd::_start_time = 0; + void NMTDCmd::execute(DCmdSource source, TRAPS) { + // Check NMT state + // native memory tracking has to be on +@@ -128,7 +129,18 @@ void NMTDCmd::execute(DCmdSource source, TRAPS) { + if (!baseline.baseline(MemTracker::tracking_level() != NMT_detail)) { + output()->print_cr("Baseline failed"); + } else { +- output()->print_cr("Baseline succeeded"); ++ NMTDCmd::set_start_time(time(0)); ++ time_t startTime = NMTDCmd::get_start_time(); ++ struct tm startTimeTm = {0}; ++ if (localtime_r(&startTime, &startTimeTm) == NULL) { ++ output()->print_cr("Baseline succeeded"); ++ } else { ++ output()->print_cr("Baseline succeeded, start time is %d-%02d-%02d %02d:%02d:%02d", ++ static_cast(startTimeTm.tm_year) + START_YEAR, ++ static_cast(startTimeTm.tm_mon) + 1, ++ static_cast(startTimeTm.tm_mday), static_cast(startTimeTm.tm_hour), ++ static_cast(startTimeTm.tm_min), static_cast(startTimeTm.tm_sec)); ++ } + } + } else if (_summary_diff.value()) { + MemBaseline& baseline = MemTracker::get_baseline(); +diff --git a/hotspot/src/share/vm/services/nmtDCmd.hpp b/hotspot/src/share/vm/services/nmtDCmd.hpp +index df1ab367f..fc7af5c8d 100644 +--- a/hotspot/src/share/vm/services/nmtDCmd.hpp ++++ b/hotspot/src/share/vm/services/nmtDCmd.hpp +@@ -32,6 +32,8 @@ + #include "services/memBaseline.hpp" + #include "services/mallocTracker.hpp" + ++const int START_YEAR = 1900; // tm struct, the number of years since 1900. ++ + /** + * Native memory tracking DCmd implementation + */ +@@ -61,9 +63,16 @@ class NMTDCmd: public DCmdWithParser { + return p; + } + static int num_arguments(); ++ static void set_start_time(const time_t &time) { ++ _start_time = time; ++ } ++ static time_t get_start_time() { ++ return _start_time; ++ } + virtual void execute(DCmdSource source, TRAPS); + + private: ++ static time_t _start_time; + void report(bool summaryOnly, size_t scale); + void report_diff(bool summaryOnly, size_t scale); + +-- +2.19.0 + diff --git a/jdk8u-jdk8u352-b08.tar.xz b/jdk8u-jdk8u402-b06.tar.xz similarity index 80% rename from jdk8u-jdk8u352-b08.tar.xz rename to jdk8u-jdk8u402-b06.tar.xz index 19d13e4a3511e06ec5acd8548c55b253065cffb0..f7e09c919061fab0a2f8a0a4b2092fda656b8fa5 100644 Binary files a/jdk8u-jdk8u352-b08.tar.xz and b/jdk8u-jdk8u402-b06.tar.xz differ diff --git a/kae-phase1.patch b/kae-phase1.patch index 89f335366c2c4b9eaafc36125d6f9442c08c6d91..d7362ac7d6b13a77b0e231328bf7cbfae9e21add 100644 --- a/kae-phase1.patch +++ b/kae-phase1.patch @@ -5485,7 +5485,7 @@ index 50f65eab..a388c76a 100644 + "kae.disableKaeDispose", "read")); if (lib != null) { p.env("KRB5_CONFIG", CONF) - .env("KRB5_TRACE", "/dev/stderr") + .env("KRB5_TRACE", Platform.isWindows() ? "CON" : "/dev/stderr") -- 2.19.0 diff --git a/openjdk-1.8.0.spec b/openjdk-1.8.0.spec index 897b31f1f0e52b8646ff6dcb75216def1b3dc822..c8b40ba9d2f788e14a610741b8eb47e21e195091 100644 --- a/openjdk-1.8.0.spec +++ b/openjdk-1.8.0.spec @@ -52,6 +52,7 @@ %endif %global aarch64 aarch64 +%global riscv64 riscv64 %global jit_arches x86_64 %{aarch64} %global sa_arches x86_64 %{aarch64} %global jfr_arches x86_64 %{aarch64} @@ -115,6 +116,10 @@ %global archinstall aarch64 %global stapinstall arm64 %endif +%ifarch %{riscv64} +%global archinstall riscv64 +%global stapinstall %{nil} +%endif %ifarch %{jit_arches} %global with_systemtap 1 @@ -125,6 +130,9 @@ # New Version-String scheme-style defines %global majorver 8 +%ifarch riscv64 +%global with_openjfx_binding 0 +%else %global with_openjfx_binding 1 %global openjfx_path %{_jvmdir}/openjfx8 # links src directories @@ -140,19 +148,20 @@ %global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar %global jfx_sdk_bins javafxpackager javapackager %global jfx_jre_exts jfxrt.jar +%endif # Standard JPackage naming and versioning defines. %global origin openjdk %global origin_nice OpenJDK %global top_level_dir_name %{origin} %global repo jdk8u -%global revision jdk8u352-b08 +%global revision jdk8u402-b06 %global full_revision %{repo}-%{revision} # Define IcedTea version used for SystemTap tapsets and desktop files %global icedteaver 3.15.0 -%global updatever 352 -%global buildver b08 +%global updatever 402 +%global buildver b06 # priority must be 7 digits in total. The expression is workarounding tip %global priority 1800%{updatever} @@ -916,7 +925,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever}.%{buildver} -Release: 6 +Release: 0 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -973,7 +982,6 @@ Source20: repackReproduciblePolycies.sh Patch8: replace-vector-to-improve-performance-of-xml.validat.patch Patch10: 8221658.patch Patch18: fix-vendor-info.patch -Patch21: 8202952.patch Patch25: 8196485.patch Patch26: disable-UseLSE-on-ARMv8.1-by-default.patch Patch27: 8157570.patch @@ -996,7 +1004,6 @@ Patch67: 8165860.patch Patch70: 8164948.patch # 8u242 -Patch75: Add-ability-to-configure-third-port-for-remote-JMX.patch Patch83: 8204947.patch Patch85: 8139041.patch @@ -1129,7 +1136,6 @@ Patch243: Fix-compile-and-runtime-failures-for-minimal1-versio.patch Patch244: fix_X509TrustManagerImpl_symantec_distrust.patch Patch245: change-sa-jdi.jar-make-file-for-BEP.PATCH Patch246: 7092821-java.security.Provider.getService-is-synchro.patch -Patch248: 8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch # 8u342 Patch249: Improve_AlgorithmConstraints_checkAlgorithm_performance.patch @@ -1143,21 +1149,12 @@ Patch256: 8202951-Support-default-jsa.patch Patch257: 8200332-Improve-GCM-counting.patch Patch258: dynamic-cds-_header-and-_fd-handles-are-not-free.patch Patch259: fix-dumped-heap-using-jhat-parsing-to-appear-failed-to-resolve-object-id-warning-message.patch -Patch260: 8159720-Failure-of-C2-compilation-with-tiered-preven.patch Patch261: revert-fPIC-and-security-compilation-flag-on.patch Patch262: add-configuration-option-of-huawei-internal-version-shown-in-release-file.patch Patch263: The-code-style-is-fixed-and-test-cases-are-added.patch -Patch264: 8287109-Distrust-failed-with-CertificateExpired.patch # 8u352 -Patch265: cve-2022-37434-Fix-a-bug-when-getting-a-gzip-header-extra-field-with-inflate.patch Patch266: 8065895-Synchronous-signals-during-error-reporting-may-terminate-or-hang-vm-process.patch -Patch267: Huawei-fix-windows-build-Dynamic-CDS-failure.patch -Patch268: 8296480-Fix-the-problem-that-the-TestPolicy.java-cas.patch -Patch269: 8296485-BuildEEBasicConstraints.java-test-fails-with.patch -Patch270: 8294357-tz-Update-Timezone-Data-to-2022d.patch -Patch271: 8296241-tz-Update-Timezone-Data-to-2022e.patch -Patch272: 8296108-tz-Update-Timezone-Data-to-2022f.patch Patch273: 8257695-linux-Add-process-memory-information-to-hs-e.patch Patch274: 8261167-print_process_memory_info-add-a-close-call-a.patch Patch275: 8268893-jcmd-to-trim-the-glibc-heap.patch @@ -1181,8 +1178,125 @@ Patch292: fix-the-length-value-of-ciBlock-in-ciMethodBlocks.cp.patch Patch293: 8140594-Various-minor-code-improvements-compiler.patch Patch294: Fix-the-crash-that-occurs-when-the-process-exits-due.patch Patch295: Fix-AsyncGCLog-s-content-consistent-bug.patch -Patch296: Fix-CVE-2023-21930.patch +# 8u362 +Patch296: 8178968-AArch64-Remove-non-standard-code-cache-size.patch +Patch298: Add-CMS-s-trim-test-cases-and-fix-failure.patch +Patch299: Disable-cds-on-x86-32.patch +Patch300: Disable-no-compressedOop-cds-on-x86-32.patch +Patch301: fix-SUSE-x86_32-build-failure.patch +Patch302: fix-the-issue-that-cert-of-geotrustglobalca-expired.patch + +# 8u372 +Patch303: 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch +Patch304: jcmd-mnt-add-start-time-and-end-time.patch +Patch305: Fix-localtime_r-not-defined-on-windows.patch +Patch306: 8057743-process-Synchronize-exiting-of-threads-and-p.patch +Patch307: 8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch +Patch308: 0002-8179498-attach-in-linux-should-be-relative-to-proc-p.patch +Patch309: 0003-8187408-AbstractQueuedSynchronizer-wait-queue-corrup.patch +Patch310: 0004-8193710-jcmd-l-and-jps-commands-do-not-list-Java-pro.patch +Patch311: 0005-8196743-jstatd-doesn-t-see-new-Java-processes-inside.patch +Patch312: 0006-8284330-jcmd-may-not-be-able-to-find-processes-in-th.patch +Patch313: 0007-8241670-Enhance-heap-region-size-ergonomics-to-impro.patch +Patch314: 0008-8223162-Improve-ergonomics-for-Sparse-PRT-entry-sizi.patch +Patch315: 0009-8262316-Reducing-locks-in-RSA-Blinding.patch +Patch316: 0010-8283994-Make-Xerces-DatatypeException-stackless.patch +Patch317: 0011-Optimizing-ObjectInputStream-by-FreqInlineSize.patch +Patch318: 0012-8301187-Memory-leaks-in-OopMapCache.patch +Patch320: 0014-8280511-AArch64-Combine-shift-and-negate-to-a-single.patch +Patch321: 0015-6605915-jinfo-flag-flag-name-functionality-doesn-t-w.patch +Patch322: 0016-8036599-Use-Diagnostic-Commands-instead-of-SA-by-def.patch +Patch323: 0017-8054889-Compiler-team-s-implementation-task.patch +Patch324: 0018-8130832-Extend-the-WhiteBox-API-to-provide-informati.patch +Patch325: 0019-8040213-C2-does-not-put-all-modified-nodes-on-IGVN-w.patch +Patch326: 0020-8251216-Implement-MD5-Intrinsics-on-aarch64.patch +Patch327: 0021-fastdebug-fix-TestMD5Intrinsics.java-and-TestMD5Mult.patch +Patch329: 0023-8180421-Change-default-value-of-BiasedLockingStartup.patch +Patch330: 0024-Fix-the-trim-crash-caused-by-incorrect-assert-in-fas.patch +Patch331: 0025-8220166-Performance-regression-in-deserialization.patch +Patch332: 0026-8072070-Improve-interpreter-stack-banging.patch +Patch333: 0027-8193386-CompressedClassSize-too-large-with-MaxMetasp.patch +Patch334: 0028-Display-more-information-about-the-codedump-file-pat.patch +Patch335: 0029-8211845-A-new-switch-to-control-verbosity-of-hs-err-.patch +Patch336: 0030-add-more-specific-possible-reasons-in-hs_error-log-w.patch +Patch337: 0031-8187653-Lock-in-CoderResult.Cache-becomes-performanc.patch +Patch338: 0032-8299158-Improve-MD5-intrinsic-on-AArch64.patch +Patch339: 0033-8211326-add-OS-user-related-information-to-hs_err-fi.patch +Patch340: 0034-8250902-Implement-MD5-Intrinsics-on-x64.patch +Patch341: 0035-8210821-Support-dns_canonicalize_hostname-in-krb5.co.patch +Patch342: 0036-8297656-AArch64-Enable-AES-GCM-Intrinsics.patch +Patch343: 0038-Record-file-descriptor-when-ExtensiveErrorReports-is.patch +Patch344: 0039-8243389-enhance-os-pd_print_cpu_info-on-linux.patch +Patch345: 0040-Print-the-Exception-event-in-more-detail.patch +Patch346: 0041-Reuse-translet-in-XSLTC-for-specjvm-xml-transform.patch +Patch347: 0042-8140581-Excluding-compile-messages-should-only-be-pr.patch +Patch348: 0043-Cache-dom-in-xml-transform.patch +Patch349: 0044-Record-file-descriptor-when-ExtensiveErrorReports-is.patch +Patch350: 0045-8276904-Optional.toString-is-unnecessarily-expensive.patch +Patch351: 0046-8210960-Allow-with-boot-jdk-jvmargs-to-work-during-c.patch +Patch352: 0047-8025692-Log-what-methods-are-touched-at-run-time.patch +Patch353: 0048-fix-jdk8-fastdebug-hotspot-test-compiler-c2-TestSpli.patch +Patch354: 0049-Modify-G1GC-log-information.patch +Patch355: 0050-8181644-C1-crashes-with-XX-PrintCFGToFile.patch +Patch356: 0051-8071962-The-SA-code-needs-to-be-updated-to-support-S.patch +Patch357: 0052-8177959-G1CollectedHeap-print_on-prints-incorrect-ca.patch +Patch359: 0054-Fix-jmap-heapdump-symbols-when-the-class-is-loaded-f.patch +Patch360: 0055-Fix-CodelistTest.java-Failed-to-Execute-CodelistTest.patch + +# 8u382 +Patch361: print-more-information-when-AbortVMOnException.patch +Patch362: 8035986-KerberosKey-algorithm-names-are-not-specifie.patch +Patch363: fixing-a-bug-in-the-processing-of-default-attributes.patch +Patch364: enhance-java-heap-oom-err-log.patch +Patch365: 8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch +Patch366: 8179273-sun.net.httpserver.LeftOverInputStream-shoul.patch +Patch367: Revert-backport-8035986-KerberosKey-algorithm-names-are-not-specified.patch +Patch369: add-0010-8301749-Tracking-malloc-pooled-memory-size.patch +Patch370: 8213397-Stack-dump-should-show-more-clearly-when-a-t.patch +Patch371: Record-the-number-of-processes-to-errlog-file.patch.patch +Patch372: 8254723-Add-diagnostic-command-to-write-Linux-perf-m.patch +Patch373: The-OverWriteOldestGCLog-option-is-added-to-control.patch +Patch374: add-6899049-G1-Clean-up-code-in-ptrQueue.-ch-pp-and-.patch +Patch375: add-make-Appcds-jsa-rw-region-deterministic.patch +Patch377: add-8198423-Improve-metaspace-chunk-allocation.patch +Patch379: add-fix-lock_fd-no-close-and-improve-KAEProvider.patch +Patch384: add-8147940-Modify-testcase-this-test-does-not-assum.patch +Patch385: add-8191924-Adjust-DelegatingClassLoader-s-metadata-.patch +Patch386: add-Do-not-collect_class-when-DynamicCDS-dump.patch +Patch387: add-add-Count-instance-klass-when-loading-from-jsa-f.patch +Patch389: add-8227041-runtime-memory-RunUnitTestsConcurrently.patch +Patch390: add-fix-windows-build-Dynamic-CDS-failure.patch +Patch391: add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch +Patch392: 8295068-SSLEngine-throws-NPE-parsing-CertificateRequ.patch +Patch393: 8308682-Enhance-AES-performance.patch +Patch394: Fix-the-memory-leak-of-MetaspaceAllocationTest.patch +Patch395: Add-metaspace-memory-allocation-failure-validation.patch +Patch396: change-value-of-GCLockerRetryAllocationCount-from-2-.patch + +#392 +Patch397: Fix-crash-in-JNI-s-GetDoubleArrayRegion-and-SetDoubl.patch +Patch398: 8263557-Possible-NULL-dereference-in-Arena-destruct_.patch +Patch399: 8294906-Memory-leak-in-PKCS11-NSS-TLS-server.patch +Patch400: 8314236-Overflow-in-Collections.rotate.patch +Patch401: 8313626-C2-crash-due-to-unexpected-exception-control.patch +Patch402: 8312200-Fix-Parse-catch_call_exceptions-memory-leak.patch +Patch403: 8193682-Infinite-loop-in-ZipOutputStream.close.patch +Patch404: 8285516-clearPassword-should-be-called-in-a-finally-.patch +Patch405: 8148470-Metadata-print-routines-should-not-print-to-.patch +Patch406: 8293344-JDK-8242181-broke-stack-printing-for-non-att.patch +Patch407: 8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch +Patch408: 8312065-Socket.connect-does-not-timeout-when-profili.patch +Patch409: Add-Problemlist.patch +Patch410: Fix-an-error-caused-by-anonymous-when-AppCDS-generat.patch +Patch411: Add-CaptchaTest-and-fix-KAE-Testcases.patch +Patch412: 8177146-MethodHandles.Lookup-bind-allows-illegal-pro.patch +Patch413: Add-compiling-option-GS-when-building-windows-JDK.patch +Patch414: Fix-for-JDK-8137099-for-G1-is-to-not-return-null-unt.patch +Patch415: 8273553-sun.security.ssl.SSLEngineImpl.closeInbound-.patch +Patch416: 8260923-Add-more-tests-for-SSLSocket-input-output-sh.patch +Patch417: 8057967-CallSite-dependency-tracking-scales-devastat.patch +Patch418: 8079205-CallSite-dependency-tracking-is-broken-after.patch ############################################# # @@ -1230,6 +1344,9 @@ Patch539: pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_jav ############################################# Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch +# riscv64 support +Patch2000: add-riscv64-support.patch + ############################################# # # Dependencies @@ -1522,7 +1639,6 @@ pushd %{top_level_dir_name} %patch8 -p1 %patch10 -p1 %patch18 -p1 -%patch21 -p1 %patch25 -p1 %patch26 -p1 %patch27 -p1 @@ -1543,7 +1659,6 @@ pushd %{top_level_dir_name} %patch63 -p1 %patch67 -p1 %patch70 -p1 -%patch75 -p1 %patch83 -p1 %patch85 -p1 %patch86 -p1 @@ -1656,7 +1771,6 @@ pushd %{top_level_dir_name} %patch244 -p1 %patch245 -p1 %patch246 -p1 -%patch248 -p1 %patch249 -p1 %patch250 -p1 %patch251 -p1 @@ -1668,19 +1782,10 @@ pushd %{top_level_dir_name} %patch257 -p1 %patch258 -p1 %patch259 -p1 -%patch260 -p1 %patch261 -p1 %patch262 -p1 %patch263 -p1 -%patch264 -p1 -%patch265 -p1 %patch266 -p1 -%patch267 -p1 -%patch268 -p1 -%patch269 -p1 -%patch270 -p1 -%patch271 -p1 -%patch272 -p1 %patch273 -p1 %patch274 -p1 %patch275 -p1 @@ -1705,6 +1810,120 @@ pushd %{top_level_dir_name} %patch294 -p1 %patch295 -p1 %patch296 -p1 +%patch298 -p1 +%patch299 -p1 +%patch300 -p1 +%patch301 -p1 +%patch302 -p1 +%patch303 -p1 +%patch304 -p1 +%patch305 -p1 +%patch306 -p1 +%patch307 -p1 +%patch308 -p1 +%patch309 -p1 +%patch310 -p1 +%patch311 -p1 +%patch312 -p1 +%patch313 -p1 +%patch314 -p1 +%patch315 -p1 +%patch316 -p1 +%patch317 -p1 +%patch318 -p1 +%patch320 -p1 +%patch321 -p1 +%patch322 -p1 +%patch323 -p1 +%patch324 -p1 +%patch325 -p1 +%patch326 -p1 +%patch327 -p1 +%patch329 -p1 +%patch330 -p1 +%patch331 -p1 +%patch332 -p1 +%patch333 -p1 +%patch334 -p1 +%patch335 -p1 +%patch336 -p1 +%patch337 -p1 +%patch338 -p1 +%patch339 -p1 +%patch340 -p1 +%patch341 -p1 +%patch342 -p1 +%patch343 -p1 +%patch344 -p1 +%patch345 -p1 +%patch346 -p1 +%patch347 -p1 +%patch348 -p1 +%patch349 -p1 +%patch350 -p1 +%patch351 -p1 +%patch352 -p1 +%patch353 -p1 +%patch354 -p1 +%patch355 -p1 +%patch356 -p1 +%patch357 -p1 +%patch359 -p1 +%patch360 -p1 +%patch361 -p1 +%patch362 -p1 +%patch363 -p1 +%patch364 -p1 +%patch365 -p1 +%patch366 -p1 +%patch367 -p1 +%patch369 -p1 +%patch370 -p1 +%patch371 -p1 +%patch372 -p1 +%patch373 -p1 +%patch374 -p1 +%patch375 -p1 +%patch377 -p1 +%patch379 -p1 +%patch384 -p1 +%patch385 -p1 +%patch386 -p1 +%patch387 -p1 +%patch389 -p1 +%patch390 -p1 +%patch391 -p1 +%patch392 -p1 +%patch393 -p1 +%patch394 -p1 +%patch395 -p1 +%patch396 -p1 +%patch397 -p1 +%patch398 -p1 +%patch399 -p1 +%patch400 -p1 +%patch401 -p1 +%patch402 -p1 +%patch403 -p1 +%patch404 -p1 +%patch405 -p1 +%patch406 -p1 +%patch407 -p1 +%patch408 -p1 +%patch409 -p1 +%patch410 -p1 +%patch411 -p1 +%patch412 -p1 +%patch413 -p1 +%patch414 -p1 +%patch415 -p1 +%patch416 -p1 +%patch417 -p1 +%patch418 -p1 + +%ifarch riscv64 +%patch2000 -p1 +%endif popd # System library fixes @@ -1772,7 +1991,7 @@ export NUM_PROC=${NUM_PROC:-1} [ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max} %endif -%ifarch %{aarch64} +%ifarch %{aarch64} riscv64 export ARCH_DATA_MODEL=64 %endif @@ -1784,6 +2003,12 @@ EXTRA_CPP_FLAGS="%ourcppflags -Wno-error" EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes" export EXTRA_CFLAGS EXTRA_ASFLAGS +%ifarch riscv64 +(cd %{top_level_dir_name}/common/autoconf + bash ./autogen.sh +) +%endif + for suffix in %{build_loop} ; do (if [ "x$suffix" = "x" ] ; then debugbuild=release @@ -1801,6 +2026,14 @@ pushd %{buildoutputdir -- $suffix} bash ${top_srcdir_abs_path}/configure \ %ifarch %{jfr_arches} --enable-jfr \ +%else + --disable-jfr \ +%endif +%ifarch riscv64 + --disable-cds-archive \ +%endif +%ifnarch %{jit_arches} + --with-jvm-variants=zero \ %endif --with-native-debug-symbols=internal \ --with-milestone="fcs" \ @@ -1813,8 +2046,11 @@ bash ${top_srcdir_abs_path}/configure \ --with-vendor-vm-bug-url="https://gitee.com/src-openeuler/openjdk-1.8.0/issues/" \ --with-debug-level=$debugbuild \ --enable-unlimited-crypto \ - --with-zlib=system \ - --enable-kae=yes \ +%ifarch %{jit_arches} + --enable-kae \ +%else + --disable-kae \ +%endif --with-stdc++lib=dynamic \ --with-extra-cflags="$EXTRA_CFLAGS" \ --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \ @@ -1944,11 +2180,12 @@ quit end run -version EOF -grep 'JavaCallWrapper::JavaCallWrapper' gdb.out +#grep 'JavaCallWrapper::JavaCallWrapper' gdb.out # Check src.zip has all sources. See RHBZ#1130490 jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe' + # Check class files include useful debugging information $JAVA_HOME/bin/javap -l java.lang.Object | grep "Compiled from" $JAVA_HOME/bin/javap -l java.lang.Object | grep LineNumberTable @@ -2189,7 +2426,9 @@ else return end end + -- run content of included file with fake args + cjc = require "copy_jdk_configs.lua" arg = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"} cjc.mainProgram(arg) @@ -2329,8 +2568,250 @@ cjc.mainProgram(arg) %endif %changelog -* Tue Jun 13 2023 justinwm - 1:1.8.0.352-b08.6 -- add Fix-CVE-2023-21930.patch +* Wed Jan 17 2024 Autistic_boyya - 1:1.8.0.402-b06.0 +- modified 0019-8040213-C2-does-not-put-all-modified-nodes-on-IGVN-w.patch +- modified Improve_AlgorithmConstraints_checkAlgorithm_performance.patch +- modified add-missing-test-case.patch +- modified fix_X509TrustManagerImpl_symantec_distrust.patch +- modified g1gc-numa-aware-Implementation.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- modified 8203699.patch +- add Add-CaptchaTest-and-fix-KAE-Testcases.patch +- add 8177146-MethodHandles.Lookup-bind-allows-illegal-pro.patch +- add Add-compiling-option-GS-when-building-windows-JDK.patch +- add Fix-for-JDK-8137099-for-G1-is-to-not-return-null-unt.patch +- add 8273553-sun.security.ssl.SSLEngineImpl.closeInbound-.patch +- add 8260923-Add-more-tests-for-SSLSocket-input-output-sh.patch +- add 8057967-CallSite-dependency-tracking-scales-devastat.patch +- add 8079205-CallSite-dependency-tracking-is-broken-after.patch + +* Wed Dec 20 2023 kuenking111 - 1:1.8.0.392-b08.4 +- Add Fix-an-error-caused-by-anonymous-when-AppCDS-generat.patch + +* Mon Oct 30 2023 kuenking111 - 1:1.8.0.392-b08.3 +- Add Add-Problemlist.patch + +* Mon Oct 30 2023 kuenking111 - 1:1.8.0.392-b08.2 +- remove add-8142508-To-bring-j.u.z.ZipFile-s-native-implemen.patch +- remove add-8226530-ZipFile-reads-wrong-entry-size-from-ZIP6.patch +- remove add-8242842-Avoid-reallocating-name-when-checking-fo.patch +- remove add-8170831-ZipFile-implementation-no-longer-caches-.patch +- remove add-8146431-j.u.z.ZipFile.getEntry-throws-AIOOBE.patch +- remove add-8226530-test-case-fixed.patch +- remove add-Adapting-IOException-of-Zip-to-ZipException.patch + +* Wed Oct 25 2023 kuenking111 - 1:1.8.0.392-b08.1 +- add Fix-crash-in-JNI-s-GetDoubleArrayRegion-and-SetDoubl.patch +- add 8263557-Possible-NULL-dereference-in-Arena-destruct_.patch +- add 8294906-Memory-leak-in-PKCS11-NSS-TLS-server.patch +- add 8314236-Overflow-in-Collections.rotate.patch +- add 8313626-C2-crash-due-to-unexpected-exception-control.patch +- add 8312200-Fix-Parse-catch_call_exceptions-memory-leak.patch +- add 8193682-Infinite-loop-in-ZipOutputStream.close.patch +- add 8285516-clearPassword-should-be-called-in-a-finally-.patch +- add 8148470-Metadata-print-routines-should-not-print-to-.patch +- add 8293344-JDK-8242181-broke-stack-printing-for-non-att.patch +- add 8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch +- add 8312065-Socket.connect-does-not-timeout-when-profili.patch +- modified fix_X509TrustManagerImpl_symantec_distrust.patch +- modified add-missing-test-case.patch + +* Fri Oct 20 2023 Autistic_boyya - 1:1.8.0.392-b08.0 +- add 8308682-Enhance-AES-performance.patch +- add Fix-the-memory-leak-of-MetaspaceAllocationTest.patch +- add Add-metaspace-memory-allocation-failure-validation.patch +- add change-value-of-GCLockerRetryAllocationCount-from-2-.patch +- del 8202952.patch +- del 8283441-C2-segmentation-fault-in-ciMethodBlocks-make.patch +- modified Dynamic-CDS-Archive.patch +- modified fix_X509TrustManagerImpl_symantec_distrust.patch +- modified kae-phase1.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- upgrade to jdk8u392-b08 + +* Mon Sep 25 2023 kuenking111 - 1:1.8.0.382-b05.10 +- del useless code + +* Fri Sep 22 2023 kuenking111 - 1:1.8.0.382-b05.9 +- add add-0010-8301749-Tracking-malloc-pooled-memory-size.patch +- add 8213397-Stack-dump-should-show-more-clearly-when-a-t.patch +- add Record-the-number-of-processes-to-errlog-file.patch.patch +- add 8254723-Add-diagnostic-command-to-write-Linux-perf-m.patch +- add The-OverWriteOldestGCLog-option-is-added-to-control.patch +- add add-6899049-G1-Clean-up-code-in-ptrQueue.-ch-pp-and-.patch +- add add-make-Appcds-jsa-rw-region-deterministic.patch +- add add-8142508-To-bring-j.u.z.ZipFile-s-native-implemen.patch +- add add-8198423-Improve-metaspace-chunk-allocation.patch +- add add-8226530-ZipFile-reads-wrong-entry-size-from-ZIP6.patch +- add add-fix-lock_fd-no-close-and-improve-KAEProvider.patch +- add add-8242842-Avoid-reallocating-name-when-checking-fo.patch +- add add-8170831-ZipFile-implementation-no-longer-caches-.patch +- add add-8146431-j.u.z.ZipFile.getEntry-throws-AIOOBE.patch +- add add-8226530-test-case-fixed.patch +- add add-8147940-Modify-testcase-this-test-does-not-assum.patch +- add add-8191924-Adjust-DelegatingClassLoader-s-metadata-.patch +- add add-Do-not-collect_class-when-DynamicCDS-dump.patch +- add add-add-Count-instance-klass-when-loading-from-jsa-f.patch +- add add-Adapting-IOException-of-Zip-to-ZipException.patch +- add add-8227041-runtime-memory-RunUnitTestsConcurrently.patch +- add add-fix-windows-build-Dynamic-CDS-failure.patch +- add add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch +- add 8295068-SSLEngine-throws-NPE-parsing-CertificateRequ.patch + +* Mon Sep 11 2023 kuenking111 - 1:1.8.0.382-b05.8 +- Fix openjfx bingding issues + +* Wed Sep 6 2023 kuenking111 - 1:1.8.0.382-b05.7 +- del 0013-8287349-AArch64-Merge-LDR-instructions-to-improve-C1.patch + +* Fri Sep 1 2023 noah - 1:1.8.0.382-b05.6 +- removed cjc backward comaptiblity, to fix when both rpm 4.16 and 4.17 are in transaction + +* Wed Aug 30 2023 kuenking111 - 1:1.8.0.382-b05.5 +- del 0022-8198510-Enable-UseDynamicNumberOfGCThreads-by-defaul.patch + +* Fri Aug 25 2023 kuenking111 - 1:1.8.0.382-b05.4 +- add 8283441-C2-segmentation-fault-in-ciMethodBlocks-make.patch +- fix cve-2022-40433 + +* Thu Aug 24 2023 misaka00251 - 1:1.8.0.382-b05.3 +- Init riscv64 support + +* Thu Aug 24 2023 kuenking111 - 1:1.8.0.382-b05.2 +- deleted 0053-8146987-Improve-Parallel-GC-Full-GC-by-caching-resul.patch + +* Thu Aug 3 2023 kuenking111 - 1:1.8.0.382-b05.1 +- add Revert-backport-8035986-KerberosKey-algorithm-names-are-not-specified.patch + +* Mon Jul 31 2023 wanghao_hw - 1:1.8.0.382-b05.0 +- add Huawei-Print-more-information-when-AbortVMOnException.patch +- deleted patch 8185736-missing-default-exception-handler-in-calls-t.patch +- deleted patch cve-2022-37434-Fix-a-bug-when-getting-a-gzip-header-extra-field-with-inflate.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- modified add-missing-test-case.patch +- modified fix-the-issue-that-cert-of-geotrustglobalca-expired.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- modified fix_X509TrustManagerImpl_symantec_distrust.patch +- add 8035986-KerberosKey-algorithm-names-are-not-specifie.patch +- add fixing-a-bug-in-the-processing-of-default-attributes.patch +- add enhance-java-heap-oom-err-log.patch +- add 8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch +- add 8179273-sun.net.httpserver.LeftOverInputStream-shoul.patch +- del --with-zlib=system +- upgrade to jdk8u382-b05 + +* Thu Jun 29 2023 kuenking111 - 1:1.8.0.372-b07.2 +- 0002-8179498-attach-in-linux-should-be-relative-to-proc-p.patch +- 0003-8187408-AbstractQueuedSynchronizer-wait-queue-corrup.patch +- 0004-8193710-jcmd-l-and-jps-commands-do-not-list-Java-pro.patch +- 0005-8196743-jstatd-doesn-t-see-new-Java-processes-inside.patch +- 0006-8284330-jcmd-may-not-be-able-to-find-processes-in-th.patch +- 0007-8241670-Enhance-heap-region-size-ergonomics-to-impro.patch +- 0008-8223162-Improve-ergonomics-for-Sparse-PRT-entry-sizi.patch +- 0009-8262316-Reducing-locks-in-RSA-Blinding.patch +- 0010-8283994-Make-Xerces-DatatypeException-stackless.patch +- 0011-Optimizing-ObjectInputStream-by-FreqInlineSize.patch +- 0012-8301187-Memory-leaks-in-OopMapCache.patch +- 0013-8287349-AArch64-Merge-LDR-instructions-to-improve-C1.patch +- 0014-8280511-AArch64-Combine-shift-and-negate-to-a-single.patch +- 0015-6605915-jinfo-flag-flag-name-functionality-doesn-t-w.patch +- 0016-8036599-Use-Diagnostic-Commands-instead-of-SA-by-def.patch +- 0017-8054889-Compiler-team-s-implementation-task.patch +- 0018-8130832-Extend-the-WhiteBox-API-to-provide-informati.patch +- 0019-8040213-C2-does-not-put-all-modified-nodes-on-IGVN-w.patch +- 0020-8251216-Implement-MD5-Intrinsics-on-aarch64.patch +- 0021-fastdebug-fix-TestMD5Intrinsics.java-and-TestMD5Mult.patch +- 0022-8198510-Enable-UseDynamicNumberOfGCThreads-by-defaul.patch +- 0023-8180421-Change-default-value-of-BiasedLockingStartup.patch +- 0024-Fix-the-trim-crash-caused-by-incorrect-assert-in-fas.patch +- 0025-8220166-Performance-regression-in-deserialization.patch +- 0026-8072070-Improve-interpreter-stack-banging.patch +- 0027-8193386-CompressedClassSize-too-large-with-MaxMetasp.patch +- 0028-Display-more-information-about-the-codedump-file-pat.patch +- 0029-8211845-A-new-switch-to-control-verbosity-of-hs-err-.patch +- 0030-add-more-specific-possible-reasons-in-hs_error-log-w.patch +- 0031-8187653-Lock-in-CoderResult.Cache-becomes-performanc.patch +- 0032-8299158-Improve-MD5-intrinsic-on-AArch64.patch +- 0033-8211326-add-OS-user-related-information-to-hs_err-fi.patch +- 0034-8250902-Implement-MD5-Intrinsics-on-x64.patch +- 0035-8210821-Support-dns_canonicalize_hostname-in-krb5.co.patch +- 0036-8297656-AArch64-Enable-AES-GCM-Intrinsics.patch +- 0038-Record-file-descriptor-when-ExtensiveErrorReports-is.patch +- 0039-8243389-enhance-os-pd_print_cpu_info-on-linux.patch +- 0040-Print-the-Exception-event-in-more-detail.patch +- 0041-Reuse-translet-in-XSLTC-for-specjvm-xml-transform.patch +- 0042-8140581-Excluding-compile-messages-should-only-be-pr.patch +- 0043-Cache-dom-in-xml-transform.patch +- 0044-Record-file-descriptor-when-ExtensiveErrorReports-is.patch +- 0045-8276904-Optional.toString-is-unnecessarily-expensive.patch +- 0046-8210960-Allow-with-boot-jdk-jvmargs-to-work-during-c.patch +- 0047-8025692-Log-what-methods-are-touched-at-run-time.patch +- 0048-fix-jdk8-fastdebug-hotspot-test-compiler-c2-TestSpli.patch +- 0049-Modify-G1GC-log-information.patch +- 0050-8181644-C1-crashes-with-XX-PrintCFGToFile.patch +- 0051-8071962-The-SA-code-needs-to-be-updated-to-support-S.patch +- 0052-8177959-G1CollectedHeap-print_on-prints-incorrect-ca.patch +- 0053-8146987-Improve-Parallel-GC-Full-GC-by-caching-resul.patch +- 0054-Fix-jmap-heapdump-symbols-when-the-class-is-loaded-f.patch +- 0055-Fix-CodelistTest.java-Failed-to-Execute-CodelistTest.patch + +* Fri May 11 2023 crash888 - 1:1.8.0.372-b07.1 +- modified Fix-the-crash-that-occurs-when-the-process-exits-due.patch + +* Fri May 6 2023 crash888 - 1:1.8.0.372-b07.0 +- deleted Add-ability-to-configure-third-port-for-remote-JMX.patch +- deleted 8287109-Distrust-failed-with-CertificateExpired.patch +- deleted Huawei-fix-windows-build-Dynamic-CDS-failure.patch +- deleted 8296480-Fix-the-problem-that-the-TestPolicy.java-cas.patch +- deleted 8296485-BuildEEBasicConstraints.java-test-fails-with.patch +- modified 8202951-Support-default-jsa.patch +- modified 8204595-add-more-thread-related-system-settings-info.patch +- modified 8257695-linux-Add-process-memory-information-to-hs-e.patch +- modified add-appcds-test-case.patch +- modified fix-log-bug-enhance-aes-hmac-performance.patch +- modified Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- modified add-missing-test-case.patch +- modified fix-the-issue-that-cert-of-geotrustglobalca-expired.patch +- modified fix_X509TrustManagerImpl_symantec_distrust.patch +- add 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch +- add jcmd-mnt-add-start-time-and-end-time.patch +- add Fix-localtime_r-not-defined-on-windows.patch +- add 8057743-process-Synchronize-exiting-of-threads-and-p.patch +- add 8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch +- upgrade to jdk8u372-b07 + +* Fri Mar 24 2023 wanghao_hw - 1:1.8.0.362-b09.3 +- add fix-the-issue-that-cert-of-geotrustglobalca-expired.patch + +* Wed Feb 15 2023 kuenking111 - 1:1.8.0.362-b09.2 +- add Add-CMS-s-trim-test-cases-and-fix-failure.patch +- add Disable-cds-on-x86-32.patch +- add Disable-no-compressedOop-cds-on-x86-32.patch +- add fix-SUSE-x86_32-build-failure.patch + +* Mon Jan 30 2023 kuenking111 - 1:1.8.0.362-b09.1 +- add 8178968-AArch64-Remove-non-standard-code-cache-size.patch +- add 8185736-missing-default-exception-handler-in-calls-t.patch + +* Sat Jan 28 2023 kuenking111 - 1:1.8.0.362-b09.0 +- modified 6858051-Create-GC-worker-threads-dynamically.patch +- modified 7092821-java.security.Provider.getService-is-synchro.patch +- deleted 8067941-TESTBUG-Fix-tests-for-OS-with-64K-page-size.patch +- deleted 8159720-Failure-of-C2-compilation-with-tiered-preven.patch +- modified 8166253.patch +- modified 8196485.patch +- modified 8200720-Print-additional-information-in-thread-dump-.patch +- modified 8293114-GC-should-trim-the-native-heap-and-bug-fix.patch +- deleted 8294357-tz-Update-Timezone-Data-to-2022d.patch +- deleted 8296108-tz-Update-Timezone-Data-to-2022f.patch +- deleted 8296241-tz-Update-Timezone-Data-to-2022e.patch +- modified Test8167409.sh-fails-to-run-with-32bit-jdk-on-64bit-.patch +- modified The-code-style-is-fixed-and-test-cases-are-added.patch +- modified add-missing-test-case.patch +- modified fix-testme-Test6929067-run-faild.patch +- modified g1gc-numa-aware-Implementation.patch +- upgrade to jdk8u362-b09 * Wed Jan 11 2023 eapen - 1:1.8.0.352-b08.5 - add 8296480-Fix-the-problem-that-the-TestPolicy.java-cas.patch @@ -2511,7 +2992,7 @@ cjc.mainProgram(arg) - deleted Delete-expired-certificate-globalsignr2ca.patch - deleted inline-optimize-for-aarch64.patch -* Tue Jan 05 2021 noah - 1:1.8.0.312-b07.11 +* Wed Jan 05 2022 noah - 1:1.8.0.312-b07.11 - adapted to newst cjc to fix issue with rpm 4.17 * Tue Dec 21 2021 kuenking111 - 1:1.8.0.312-b07.10 @@ -2657,7 +3138,7 @@ cjc.mainProgram(arg) * Fri May 21 2021 kuenking111 - 1:1.8.0.292-b10.1 - add 8247691_incorrect_handling_of_VM_exceptions_in_C1_deopt_stub.patch -* Tue May 18 2021 eapen - 1:1.8.0.292-b10.0 +* Wed May 19 2021 eapen - 1:1.8.0.292-b10.0 - update to jdk8u292-b10 - split sync-patch to multi patches diff --git a/print-more-information-when-AbortVMOnException.patch b/print-more-information-when-AbortVMOnException.patch new file mode 100644 index 0000000000000000000000000000000000000000..11e64e4c6c854f6d4d8aefc5586d02bc0ef0cba6 --- /dev/null +++ b/print-more-information-when-AbortVMOnException.patch @@ -0,0 +1,24 @@ +From e6def0e384c2d21b2b153250153c47780fd640e4 Mon Sep 17 00:00:00 2001 +Date: Wed, 5 Jul 2023 16:36:11 +0800 +Subject: [PATCH] [Huawei]Print more information when AbortVMOnException + +--- + hotspot/src/share/vm/utilities/exceptions.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hotspot/src/share/vm/utilities/exceptions.cpp b/hotspot/src/share/vm/utilities/exceptions.cpp +index 8b25cf8c4..eabe3b9ee 100644 +--- a/hotspot/src/share/vm/utilities/exceptions.cpp ++++ b/hotspot/src/share/vm/utilities/exceptions.cpp +@@ -483,7 +483,7 @@ void Exceptions::debug_check_abort(const char *value_string, const char* message + strstr(AbortVMOnException, value_string)) { + if (AbortVMOnExceptionMessage == NULL || (message != NULL && + strstr(message, AbortVMOnExceptionMessage))) { +- fatal(err_msg("Saw %s, aborting", value_string)); ++ fatal(err_msg("Saw %s : %s, aborting", value_string, message)); + } + } + } +-- +2.12.3 + diff --git a/update-cacerts-and-VerifyCACerts.java-test.patch b/update-cacerts-and-VerifyCACerts.java-test.patch index 424d2f552982a1c075673ec11a2466a51f457c0e..22fc8c65fd42e99ff7b432222aea0a87311afdb2 100644 --- a/update-cacerts-and-VerifyCACerts.java-test.patch +++ b/update-cacerts-and-VerifyCACerts.java-test.patch @@ -1,11 +1,7 @@ From 1125b6be8c484b41b46954a38b6e01861157b6d7 Mon Sep 17 00:00:00 2001 -From: zhangyipeng Date: Tue, 20 Apr 2021 10:40:35 +0800 Subject: [PATCH] [Huawei]update cacerts and VerifyCACerts.java test -Offering: Cloud Compiler JDK - -Signed-off-by: Wang Kun --- jdk/make/data/cacerts/addtrustexternalca | 32 ----------------- jdk/make/data/cacerts/addtrustqualifiedca | 32 ----------------- @@ -257,21 +253,21 @@ diff --git a/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java b/jdk/test/sun index dd107fc..791ddb6 100644 --- a/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java +++ b/jdk/test/sun/security/lib/cacerts/VerifyCACerts.java -@@ -53,12 +53,12 @@ public class VerifyCACerts { +@@ -54,12 +54,12 @@ public class VerifyCACerts { + File.separator + "security" + File.separator + "cacerts"; // The numbers of certs now. -- private static final int COUNT = 89; +- private static final int COUNT = 106; + private static final int COUNT = 83; // SHA-256 of cacerts, can be generated with // shasum -a 256 cacerts | sed -e 's/../&:/g' | tr '[:lower:]' '[:upper:]' | cut -c1-95 private static final String CHECKSUM -- = "CC:AD:BB:49:70:97:3F:42:AD:73:91:A0:A2:C4:B8:AA:D1:95:59:F3:B3:22:09:2A:1F:2C:AB:04:47:08:EF:AA"; +- = "61:5F:6D:C5:9C:A3:8A:65:3F:CB:F9:F5:26:04:23:F4:53:A6:8C:B3:8B:2B:0A:F0:66:7D:9E:67:B9:4D:AC:B7"; + = "2D:04:88:6C:52:53:54:EB:38:2D:BC:E0:AF:B7:82:F4:9E:32:A8:1A:1B:A3:AE:CF:25:CB:C2:F6:0F:4E:E1:20"; - // map of cert alias to SHA-256 fingerprint @SuppressWarnings("serial") + private static final Map FINGERPRINT_MAP @@ -93,12 +93,6 @@ public class VerifyCACerts { "E7:93:C9:B0:2F:D8:AA:13:E2:1C:31:22:8A:CC:B0:81:19:64:3B:74:9C:89:89:64:B1:74:6D:46:C3:D4:CB:D2"); put("usertrusteccca [jdk]", @@ -294,10 +290,10 @@ index dd107fc..791ddb6 100644 put("geotrustprimaryca [jdk]", "37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8:2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C"); put("geotrustprimarycag2 [jdk]", -@@ -163,10 +147,6 @@ public class VerifyCACerts { - "5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE"); - put("letsencryptisrgx1 [jdk]", +@@ -165,10 +149,6 @@ public class VerifyCACerts { "96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6"); + put("letsencryptisrgx2 [jdk]", + "69:72:9B:8E:15:A8:6E:FC:17:7A:57:AF:B7:17:1D:FC:64:AD:D2:8C:2F:CA:8C:F1:50:7E:34:45:3C:CB:14:70"); - put("luxtrustglobalrootca [jdk]", - "A1:B2:DB:EB:64:E7:06:C6:16:9E:3C:41:18:B2:3B:AA:09:01:8A:84:27:66:6D:8B:F0:E2:88:91:EC:05:19:50"); - put("quovadisrootca [jdk]",