changeset 5249:cfe2328912b3

Merge
author michaelm
date Thu, 15 Mar 2012 16:46:47 +0000
parents ac5024504439 0e4f259f0a1f
children 3bfebedb549f
files test/java/io/File/isDirectory/Applet.html test/sun/nio/cs/OLD/TestX11CS.java
diffstat 33 files changed, 1109 insertions(+), 254 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Thu Mar 15 16:45:55 2012 +0000
+++ b/.hgtags	Thu Mar 15 16:46:47 2012 +0000
@@ -150,3 +150,4 @@
 5aca406e87cb9144a9405be312dadd728a9c6fe2 jdk8-b26
 c68342532e2e7deb3a25fc04ed3e4c142278f747 jdk8-b27
 1e1d41daaded291ab3a370ca6a27f7325701978e jdk8-b28
+c5b882dce0fe27e05dc64debc92b1fb9ebf880ec jdk8-b29
--- a/make/docs/CORE_PKGS.gmk	Thu Mar 15 16:45:55 2012 +0000
+++ b/make/docs/CORE_PKGS.gmk	Thu Mar 15 16:46:47 2012 +0000
@@ -64,7 +64,7 @@
   javax.management.*  \
   javax.script  \
   javax.sql.*  \
-  javax.tools  \
+  javax.tools.*  \
   javax.xml.*  \
   org.w3c.*  \
   org.xml.sax
@@ -218,6 +218,7 @@
   javax.swing.plaf.nimbus                        \
   javax.swing.plaf.synth                         \
   javax.tools                                    \
+  javax.tools.annotation                         \
   javax.transaction                              \
   javax.transaction.xa                           \
   javax.xml.parsers                              \
--- a/src/share/classes/java/beans/ChangeListenerMap.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/share/classes/java/beans/ChangeListenerMap.java	Thu Mar 15 16:46:47 2012 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -237,12 +237,5 @@
      *
      * @return a real listener
      */
-    public final L extract(L listener) {
-        while (listener instanceof EventListenerProxy) {
-            @SuppressWarnings("unchecked")
-            EventListenerProxy<L> proxy = (EventListenerProxy<L>) listener;
-            listener = proxy.getListener();
-        }
-        return listener;
-    }
+    public abstract L extract(L listener);
 }
--- a/src/share/classes/java/beans/PropertyChangeSupport.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/share/classes/java/beans/PropertyChangeSupport.java	Thu Mar 15 16:46:47 2012 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2012, 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
@@ -533,5 +533,15 @@
         protected PropertyChangeListener newProxy(String name, PropertyChangeListener listener) {
             return new PropertyChangeListenerProxy(name, listener);
         }
+
+        /**
+         * {@inheritDoc}
+         */
+        public final PropertyChangeListener extract(PropertyChangeListener listener) {
+            while (listener instanceof PropertyChangeListenerProxy) {
+                listener = ((PropertyChangeListenerProxy) listener).getListener();
+            }
+            return listener;
+        }
     }
 }
--- a/src/share/classes/java/beans/VetoableChangeSupport.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/share/classes/java/beans/VetoableChangeSupport.java	Thu Mar 15 16:46:47 2012 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2012, 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
@@ -522,5 +522,15 @@
         protected VetoableChangeListener newProxy(String name, VetoableChangeListener listener) {
             return new VetoableChangeListenerProxy(name, listener);
         }
+
+        /**
+         * {@inheritDoc}
+         */
+        public final VetoableChangeListener extract(VetoableChangeListener listener) {
+            while (listener instanceof VetoableChangeListenerProxy) {
+                listener = ((VetoableChangeListenerProxy) listener).getListener();
+            }
+            return listener;
+        }
     }
 }
--- a/src/share/classes/java/lang/management/ManagementFactory.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/share/classes/java/lang/management/ManagementFactory.java	Thu Mar 15 16:46:47 2012 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
-import java.util.TreeSet;
+import java.util.HashSet;
 import java.security.AccessController;
 import java.security.Permission;
 import java.security.PrivilegedAction;
@@ -787,7 +787,7 @@
            getPlatformManagementInterfaces()
     {
         Set<Class<? extends PlatformManagedObject>> result =
-            new TreeSet<>();
+            new HashSet<>();
         for (PlatformComponent component: PlatformComponent.values()) {
             result.add(component.getMXBeanInterface());
         }
--- a/src/share/classes/java/util/jar/Manifest.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/share/classes/java/util/jar/Manifest.java	Thu Mar 15 16:46:47 2012 +0000
@@ -400,6 +400,8 @@
         public byte peek() throws IOException {
             if (pos == count)
                 fill();
+            if (pos == count)
+                return -1; // nothing left in buffer
             return buf[pos];
         }
 
--- a/src/share/classes/javax/swing/SwingUtilities.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/share/classes/javax/swing/SwingUtilities.java	Thu Mar 15 16:46:47 2012 +0000
@@ -792,7 +792,8 @@
      * @return true if the left mouse button was active
      */
     public static boolean isLeftMouseButton(MouseEvent anEvent) {
-         return (anEvent.getButton() == MouseEvent.BUTTON1);
+         return ((anEvent.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0 ||
+                 anEvent.getButton() == MouseEvent.BUTTON1);
     }
 
     /**
@@ -802,7 +803,8 @@
      * @return true if the middle mouse button was active
      */
     public static boolean isMiddleMouseButton(MouseEvent anEvent) {
-        return (anEvent.getButton() == MouseEvent.BUTTON2);
+        return ((anEvent.getModifiersEx() & InputEvent.BUTTON2_DOWN_MASK) != 0 ||
+                anEvent.getButton() == MouseEvent.BUTTON2);
     }
 
     /**
@@ -812,7 +814,8 @@
      * @return true if the right mouse button was active
      */
     public static boolean isRightMouseButton(MouseEvent anEvent) {
-        return (anEvent.getButton() == MouseEvent.BUTTON3);
+        return ((anEvent.getModifiersEx() & InputEvent.BUTTON3_DOWN_MASK) != 0 ||
+                anEvent.getButton() == MouseEvent.BUTTON3);
     }
 
     /**
--- a/src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/share/demo/jfc/TransparentRuler/transparentruler/Ruler.java	Thu Mar 15 16:46:47 2012 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -40,12 +40,9 @@
 package transparentruler;
 
 
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.GraphicsDevice;
+import java.awt.*;
 import java.awt.GraphicsDevice.WindowTranslucency;
-import java.awt.GraphicsEnvironment;
+import static java.awt.GraphicsDevice.WindowTranslucency.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
@@ -79,16 +76,32 @@
     private static final int F_HEIGHT = 400;
     private static final int F_WIDTH = (int) (F_HEIGHT * 1.618 + 0.5);
 
-    private static void checkTranslucencyMode(WindowTranslucency arg) {
+    private static boolean translucencySupported;
+    private static boolean transparencySupported;
+
+    private static boolean checkTranslucencyMode(WindowTranslucency arg) {
         GraphicsEnvironment ge =
                 GraphicsEnvironment.getLocalGraphicsEnvironment();
         GraphicsDevice gd = ge.getDefaultScreenDevice();
-        if (!gd.isWindowTranslucencySupported(arg)) {
-            System.err.println("'" + arg
-                    + "' translucency mode isn't supported.");
-            System.exit(-1);
-        }
+        return gd.isWindowTranslucencySupported(arg);
     }
+
+    public Shape buildShape() {
+        int h = getHeight();
+        int w = getWidth();
+        float a = (float) Math.hypot(h, w);
+        Float path = new java.awt.geom.Path2D.Float();
+        path.moveTo(0, 0);
+        path.lineTo(w, 0);
+        path.lineTo(0, h);
+        path.closePath();
+        path.moveTo(W, W);
+        path.lineTo(W, h - W * (a + h) / w);
+        path.lineTo(w - W * (a + w) / h, W);
+        path.closePath();
+        return path;
+    }
+
     private final ComponentAdapter componentListener = new ComponentAdapter() {
 
         /**
@@ -97,36 +110,32 @@
          */
         @Override
         public void componentResized(ComponentEvent e) {
-            int h = getHeight();
-            int w = getWidth();
-            float a = (float) Math.hypot(h, w);
-            Float path = new java.awt.geom.Path2D.Float();
-            path.moveTo(0, 0);
-            path.lineTo(w, 0);
-            path.lineTo(0, h);
-            path.closePath();
-            path.moveTo(W, W);
-            path.lineTo(W, h - W * (a + h) / w);
-            path.lineTo(w - W * (a + w) / h, W);
-            path.closePath();
-            setShape(path);
+
+            // We do apply shape only if PERPIXEL_TRANSPARENT is supported
+            if (transparencySupported) {
+                setShape(buildShape());
+            }
         }
     };
+
     private final Action exitAction = new AbstractAction("Exit") {
 
         {
             putValue(Action.MNEMONIC_KEY, KeyEvent.VK_X);
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             System.exit(0);
         }
     };
+
     private final JPopupMenu jPopupMenu = new JPopupMenu();
 
     {
         jPopupMenu.add(new JMenuItem(exitAction));
     }
+
     /**
      * Implements mouse-related behavior: window dragging and popup menu
      * invocation
@@ -157,6 +166,7 @@
             }
         }
     };
+
     /**
      * Implements keyboard navigation. Arrows move by 5 pixels, Ctrl + arrows
      * move by 50 pixels, Alt + arrows move by 1 pixel.
@@ -201,10 +211,22 @@
 
             @Override
             protected void paintComponent(Graphics g) {
-                Graphics gg = g.create();
+                Graphics2D gg = (Graphics2D) g.create();
                 int w = getWidth();
                 int h = getHeight();
                 int hh = gg.getFontMetrics().getAscent();
+
+                // This is an approach to apply shape when PERPIXEL_TRANSPARENT
+                // isn't supported
+                if (!transparencySupported) {
+                    gg.setBackground(new Color(0, 0, 0, 0));
+                    gg.clearRect(0, 0, w, h);
+                    gg.clip(buildShape());
+
+                    gg.setBackground(Ruler.this.getBackground());
+                    gg.clearRect(0, 0, w, h);
+                }
+
                 gg.setColor(FOREGROUND);
                 for (int x = 0; x < w * (h - 8) / h - 5; x += 5) {
                     boolean hi = x % 50 == 0;
@@ -216,6 +238,7 @@
                         gg.drawString(number, x + 5 - ww / 2, 20 + hh);
                     }
                 }
+
                 gg.dispose();
             }
         });
@@ -231,9 +254,17 @@
 
         SwingUtilities.invokeAndWait(new Runnable() {
 
+            @Override
             public void run() {
-                checkTranslucencyMode(WindowTranslucency.PERPIXEL_TRANSLUCENT);
-                checkTranslucencyMode(WindowTranslucency.PERPIXEL_TRANSPARENT);
+                translucencySupported = checkTranslucencyMode(PERPIXEL_TRANSLUCENT);
+                transparencySupported = checkTranslucencyMode(PERPIXEL_TRANSPARENT);
+
+                if (!translucencySupported) {
+                    System.err.println("This application requires "
+                            + "'PERPIXEL_TRANSLUCENT' translucency mode to "
+                            + "be supported.");
+                    System.exit(-1);
+                }
 
                 Ruler ruler = new Ruler();
                 ruler.setVisible(true);
--- a/src/solaris/native/java/util/TimeZone_md.c	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/solaris/native/java/util/TimeZone_md.c	Thu Mar 15 16:46:47 2012 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, 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
@@ -96,9 +96,9 @@
 /*
  * Scans the specified directory and its subdirectories to find a
  * zoneinfo file which has the same content as /etc/localtime on Linux
- * or /usr/share/lib/zoneinfo/localtime (most likely a symbolic link)
- * on Solaris given in 'buf'. Returns a zone ID if found, otherwise,
- * NULL is returned.
+ * or /usr/share/lib/zoneinfo/localtime on Solaris given in 'buf'.
+ * If file is symbolic link, then the contents it points to are in buf.
+ * Returns a zone ID if found, otherwise, NULL is returned.
  */
 static char *
 findZoneinfoFile(char *buf, size_t size, const char *dir)
@@ -280,21 +280,27 @@
         tz = getZoneName(linkbuf);
         if (tz != NULL) {
             tz = strdup(tz);
+            return tz;
         }
-        return tz;
     }
 
     /*
      * If it's a regular file, we need to find out the same zoneinfo file
      * that has been copied as /etc/localtime.
+     * If initial symbolic link resolution failed, we should treat target
+     * file as a regular file.
      */
+    if ((fd = open(DEFAULT_ZONEINFO_FILE, O_RDONLY)) == -1) {
+        return NULL;
+    }
+    if (fstat(fd, &statbuf) == -1) {
+        (void) close(fd);
+        return NULL;
+    }
     size = (size_t) statbuf.st_size;
     buf = (char *) malloc(size);
     if (buf == NULL) {
-        return NULL;
-    }
-    if ((fd = open(DEFAULT_ZONEINFO_FILE, O_RDONLY)) == -1) {
-        free((void *) buf);
+        (void) close(fd);
         return NULL;
     }
 
--- a/src/solaris/native/sun/nio/ch/DatagramDispatcher.c	Thu Mar 15 16:45:55 2012 +0000
+++ b/src/solaris/native/sun/nio/ch/DatagramDispatcher.c	Thu Mar 15 16:46:47 2012 +0000
@@ -36,6 +36,7 @@
 #include <sys/socket.h>
 
 #include "nio_util.h"
+#include <limits.h>
 
 JNIEXPORT jint JNICALL
 Java_sun_nio_ch_DatagramDispatcher_read0(JNIEnv *env, jclass clazz,
@@ -60,23 +61,14 @@
     ssize_t result = 0;
     struct iovec *iov = (struct iovec *)jlong_to_ptr(address);
     struct msghdr m;
-    if (len > 16) {
-        len = 16;
+    if (len > IOV_MAX) {
+        len = IOV_MAX;
     }
 
-    m.msg_name = NULL;
-    m.msg_namelen = 0;
+    // initialize the message
+    memset(&m, 0, sizeof(m));
     m.msg_iov = iov;
     m.msg_iovlen = len;
-#ifdef __solaris__
-    m.msg_accrights = NULL;
-    m.msg_accrightslen = 0;
-#endif
-
-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
-    m.msg_control = NULL;
-    m.msg_controllen = 0;
-#endif
 
     result = recvmsg(fd, &m, 0);
     if (result < 0 && errno == ECONNREFUSED) {
@@ -108,23 +100,14 @@
     struct iovec *iov = (struct iovec *)jlong_to_ptr(address);
     struct msghdr m;
     ssize_t result = 0;
-    if (len > 16) {
-        len = 16;
+    if (len > IOV_MAX) {
+        len = IOV_MAX;
     }
 
-    m.msg_name = NULL;
-    m.msg_namelen = 0;
+    // initialize the message
+    memset(&m, 0, sizeof(m));
     m.msg_iov = iov;
     m.msg_iovlen = len;
-#ifdef __solaris__
-    m.msg_accrights = NULL;
-    m.msg_accrightslen = 0;
-#endif
-
-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
-    m.msg_control = NULL;
-    m.msg_controllen = 0;
-#endif
 
     result = sendmsg(fd, &m, 0);
     if (result < 0 && errno == ECONNREFUSED) {
--- a/test/ProblemList.txt	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/ProblemList.txt	Thu Mar 15 16:46:47 2012 +0000
@@ -212,7 +212,7 @@
 # 7076644
 java/io/File/Basic.java                                         windows-all
 
-# Test needs AWT window server, does not work headless
+# 7145435 - Test needs AWT window server, does not work headless
 java/io/Serializable/resolveClass/deserializeButton/run.sh      macosx-all
 
 ############################################################################
@@ -225,9 +225,6 @@
 # 7052549
 java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java 	windows-all
 
-# 6963118
-java/nio/channels/Selector/Wakeup.java                          windows-all
-
 # 7133499, 7133497
 java/nio/channels/AsyncCloseAndInterrupt.java                   macosx-all
 java/nio/channels/AsynchronousFileChannel/Lock.java             macosx-all
@@ -259,9 +256,6 @@
 
 # jdk_security
 
-# 7145024
-sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java	solaris-all
-
 # 7147060
 com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java	generic-all
 
@@ -305,9 +299,6 @@
 # 7079203 sun/security/tools/keytool/printssl.sh fails on solaris with timeout
 sun/security/tools/keytool/printssl.sh                          solaris-all
 
-# 7081817
-sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java    generic-all
-
 # 7041639, Solaris DSA keypair generation bug (Note: jdk_util also affected)
 java/security/KeyPairGenerator/SolarisShortDSA.java             solaris-all
 sun/security/tools/jarsigner/onlymanifest.sh                    solaris-all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/beans/PropertyChangeSupport/Test7148143.java	Thu Mar 15 16:46:47 2012 +0000
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2012, 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 7148143
+ * @summary Tests ClassCastException for the PropertyChangeSupport class
+ * @author Sergey Malenkov
+ */
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.EventListener;
+import java.util.EventListenerProxy;
+
+public class Test7148143 {
+
+    private static class CustomProxy
+            extends EventListenerProxy<EventListener>
+            implements PropertyChangeListener {
+
+        public CustomProxy() {
+            super(new EventListener() {
+            });
+        }
+
+        public void propertyChange(PropertyChangeEvent event) {
+        }
+    }
+
+    public static void main(String[] args) {
+        PropertyChangeListener listener = new CustomProxy();
+        PropertyChangeSupport support = new PropertyChangeSupport(listener);
+        support.addPropertyChangeListener(listener);
+        support.addPropertyChangeListener("foo", listener); // cast class exception
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/beans/VetoableChangeSupport/Test7148143.java	Thu Mar 15 16:46:47 2012 +0000
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2012, 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 7148143
+ * @summary Tests ClassCastException for the VetoableChangeSupport class
+ * @author Sergey Malenkov
+ */
+
+import java.beans.PropertyChangeEvent;
+import java.beans.VetoableChangeListener;
+import java.beans.VetoableChangeSupport;
+import java.util.EventListener;
+import java.util.EventListenerProxy;
+
+public class Test7148143 {
+
+    private static class CustomProxy
+            extends EventListenerProxy<EventListener>
+            implements VetoableChangeListener {
+
+        public CustomProxy() {
+            super(new EventListener() {
+            });
+        }
+
+        public void vetoableChange(PropertyChangeEvent event) {
+        }
+    }
+
+    public static void main(String[] args) {
+        VetoableChangeListener listener = new CustomProxy();
+        VetoableChangeSupport support = new VetoableChangeSupport(listener);
+        support.addVetoableChangeListener(listener);
+        support.addVetoableChangeListener("foo", listener); // cast class exception
+    }
+}
--- a/test/java/io/File/isDirectory/Applet.html	Thu Mar 15 16:45:55 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<!---->
-<applet code=Applet.class width=100 height=100></applet>
--- a/test/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java	Thu Mar 15 16:46:47 2012 +0000
@@ -22,7 +22,6 @@
  */
 
 /* @test
- * @clean A B Container ReplacerObjectOutputStream
  * @summary Verify that ClassCastException is thrown when deserializing
  *          an object and one of its object fields is  incompatibly replaced
  *          by either replaceObject/resolveObject.
--- a/test/java/io/Serializable/replaceStringArray/ReplaceStringArray.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/io/Serializable/replaceStringArray/ReplaceStringArray.java	Thu Mar 15 16:46:47 2012 +0000
@@ -22,7 +22,6 @@
  */
 
 /* @test
- * @clean A SubstituteObjectOutputStream SubstituteObjectInputStream
  * @bug 4099013
  * @summary Enable substitution of String and Array by ObjectStreams.
  */
--- a/test/java/io/Serializable/replaceWithNull/ReplaceWithNull.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/io/Serializable/replaceWithNull/ReplaceWithNull.java	Thu Mar 15 16:46:47 2012 +0000
@@ -23,7 +23,6 @@
 
 /* @test
  * @bug 4065313
- * @clean A ReplaceWithNull MyObjectOutputStream
  * @summary Ensure that it is okay to replace an object with null.
  */
 import java.io.*;
--- a/test/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java	Thu Mar 15 16:46:47 2012 +0000
@@ -22,7 +22,6 @@
  */
 
 /* @test
- * @clean A
  * @bug 4146453
  * @summary Test that regrow of object/handle table of ObjectOutputStream works.
  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/lang/management/ManagementFactory/GetPlatformManagementInterfaces.java	Thu Mar 15 16:46:47 2012 +0000
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2012, 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     7074616
+ * @summary Basic unit test of the
+ *          ManagementFactory.getPlatformManagementInterfaces() method
+ * @author  Frederic Parain
+ *
+ * @run main GetPlatformManagementInterfaces
+ */
+
+import java.lang.management.*;
+import java.io.IOException;
+import java.util.*;
+import javax.management.*;
+
+import static java.lang.management.ManagementFactory.*;
+
+public class GetPlatformManagementInterfaces {
+
+    private static enum ManagementInterfaces {
+        CLASS_LOADING_MXBEAN(ClassLoadingMXBean.class),
+        COMPILATION_MXBEAN(CompilationMXBean.class),
+        MEMORY_MXBEAN(MemoryMXBean.class),
+        OPERATING_SYSTEM_MXBEAN(OperatingSystemMXBean.class),
+        RUNTIME_MXBEAN(RuntimeMXBean.class),
+        THREAD_MXBEAN(ThreadMXBean.class),
+        GARBAGE_COLLECTOR_MXBEAN(GarbageCollectorMXBean.class),
+        MEMORY_MANAGER_MXBEAN(MemoryManagerMXBean.class),
+        MEMORY_POOL_MXBEAN(MemoryPoolMXBean.class);
+
+        private final Class<? extends PlatformManagedObject> managementInterface;
+        private ManagementInterfaces(Class<? extends PlatformManagedObject> minterface) {
+            managementInterface = minterface;
+        }
+        public Class<? extends PlatformManagedObject> getManagementInterface() {
+            return managementInterface;
+        }
+    };
+
+    public static void main(String[] args) {
+        Set<Class<? extends PlatformManagedObject>> interfaces =
+            ManagementFactory.getPlatformManagementInterfaces();
+        for(Class<? extends PlatformManagedObject> pom : interfaces) {
+            List<? extends PlatformManagedObject> list =
+                ManagementFactory.getPlatformMXBeans(pom);
+        }
+        for(ManagementInterfaces mi : ManagementInterfaces.values()) {
+            if(!interfaces.contains(mi.getManagementInterface())) {
+                throw new RuntimeException(mi.getManagementInterface() + " not in ManagementInterfaces set");
+            }
+        }
+    }
+}
--- a/test/java/net/Socks/SocksServer.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/net/Socks/SocksServer.java	Thu Mar 15 16:46:47 2012 +0000
@@ -22,13 +22,14 @@
  */
 import java.net.*;
 import java.io.*;
+import java.util.HashMap;
 
 public class SocksServer extends Thread {
     // Some useful SOCKS constant
 
-    static final int PROTO_VERS4                = 4;
+    static final int PROTO_VERS4        = 4;
     static final int PROTO_VERS         = 5;
-    static final int DEFAULT_PORT               = 1080;
+    static final int DEFAULT_PORT       = 1080;
 
     static final int NO_AUTH            = 0;
     static final int GSSAPI             = 1;
@@ -36,28 +37,28 @@
     static final int NO_METHODS         = -1;
 
     static final int CONNECT            = 1;
-    static final int BIND                       = 2;
+    static final int BIND               = 2;
     static final int UDP_ASSOC          = 3;
 
-    static final int IPV4                       = 1;
-    static final int DOMAIN_NAME                = 3;
-    static final int IPV6                       = 4;
+    static final int IPV4               = 1;
+    static final int DOMAIN_NAME        = 3;
+    static final int IPV6               = 4;
 
     static final int REQUEST_OK         = 0;
     static final int GENERAL_FAILURE    = 1;
-    static final int NOT_ALLOWED                = 2;
+    static final int NOT_ALLOWED        = 2;
     static final int NET_UNREACHABLE    = 3;
     static final int HOST_UNREACHABLE   = 4;
-    static final int CONN_REFUSED               = 5;
-    static final int TTL_EXPIRED                = 6;
+    static final int CONN_REFUSED       = 5;
+    static final int TTL_EXPIRED        = 6;
     static final int CMD_NOT_SUPPORTED  = 7;
     static final int ADDR_TYPE_NOT_SUP  = 8;
 
     private int port;
     private ServerSocket server;
     private boolean useV4 = false;
-    private java.util.Hashtable users = new java.util.Hashtable();
-    private boolean done = false;
+    private HashMap<String,String> users = new HashMap<>();
+    private volatile boolean done = false;
     // Inner class to handle protocol with client
     // This is the bulk of the work (protocol handler)
     class ClientHandler extends Thread {
@@ -136,7 +137,7 @@
             System.err.println("User: '" + uname);
             System.err.println("PSWD: '" + password);
             if (users.containsKey(uname)) {
-                String p1 = (String) users.get(uname);
+                String p1 = users.get(uname);
                 System.err.println("p1 = " + p1);
                 if (p1.equals(password)) {
                     out.write(PROTO_VERS);
@@ -492,7 +493,12 @@
     public SocksServer(int port) throws IOException {
         this.port = port;
         server = new ServerSocket();
-        server.bind(new InetSocketAddress(port));
+        if (port == 0) {
+            server.bind(null);
+            this.port = server.getLocalPort();
+        } else {
+            server.bind(new InetSocketAddress(port));
+        }
     }
 
     public SocksServer() throws IOException {
@@ -503,8 +509,13 @@
         users.put(user, passwd);
     }
 
-    public synchronized void terminate() {
+    public int getPort() {
+        return port;
+    }
+
+    public void terminate() {
         done = true;
+        try { server.close(); } catch (IOException unused) {}
     }
 
     public void run() {
--- a/test/java/net/Socks/SocksV4Test.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/net/Socks/SocksV4Test.java	Thu Mar 15 16:46:47 2012 +0000
@@ -26,23 +26,22 @@
  * @bug 4727547
  * @summary SocksSocketImpl throws NullPointerException
  * @build SocksServer
+ * @run main SocksV4Test
  */
 
 import java.net.*;
-import java.io.*;
 
 public class SocksV4Test {
-    public static void main(String[] args) throws IOException {
-        // Create a SOCKS V4 proxy on port 8888
-        SocksServer srvr = new SocksServer(8888, true);
+    public static void main(String[] args) throws Exception {
+        // Create a SOCKS V4 proxy
+        SocksServer srvr = new SocksServer(0, true);
         srvr.start();
-        System.setProperty("socksProxyHost", "localhost");
-        System.setProperty("socksProxyPort", "8888");
+        Proxy sp = new Proxy(Proxy.Type.SOCKS,
+                             new InetSocketAddress("localhost", srvr.getPort()));
         // Let's create an unresolved address
         InetSocketAddress ad = new InetSocketAddress("doesnt.exist.name", 1234);
-        Socket s = new Socket();
-        try {
-            s.connect(ad,10000);
+        try (Socket s = new Socket(sp)) {
+            s.connect(ad, 10000);
         } catch (UnknownHostException ex) {
             // OK, that's what we expected
         } catch (NullPointerException npe) {
@@ -50,7 +49,6 @@
             throw new RuntimeException("Got a NUllPointerException");
         } finally {
             srvr.terminate();
-            srvr.interrupt();
         }
     }
 }
--- a/test/java/nio/file/Files/CustomOptions.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/nio/file/Files/CustomOptions.java	Thu Mar 15 16:46:47 2012 +0000
@@ -28,6 +28,7 @@
  * @author  Brandon Passanisi
  * @library ..
  * @build   CustomOptions PassThroughFileSystem
+ * @run main CustomOptions
  */
 
 import java.io.IOException;
--- a/test/java/text/Bidi/Bug6850113.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/java/text/Bidi/Bug6850113.java	Thu Mar 15 16:46:47 2012 +0000
@@ -25,6 +25,7 @@
  * @bug 6850113
  * @summary Verify the return value of digit() for some digits.
  * @compile -XDignore.symbol.file=true Bug6850113.java
+ * @run main Bug6850113
  */
 
 import sun.text.normalizer.UCharacter;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/util/jar/Manifest/CreateManifest.java	Thu Mar 15 16:46:47 2012 +0000
@@ -0,0 +1,301 @@
+/*
+ * Copyright (c) 2012, 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 7148584
+ * @summary Jar tools fails to generate manifest correctly when boundary condition hit
+ * @compile -XDignore.symbol.file=true CreateManifest.java
+ * @run main CreateManifest
+ */
+
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.jar.*;
+
+public class CreateManifest {
+
+public static void main(String arg[]) throws Exception {
+
+    String jarFileName = "test.jar";
+    String ManifestName = "MANIFEST.MF";
+
+    // create the MANIFEST.MF file
+    Files.write(Paths.get(ManifestName), FILE_CONTENTS.getBytes());
+
+    String [] args = new String [] { "cvfm", jarFileName, ManifestName};
+    sun.tools.jar.Main jartool =
+            new sun.tools.jar.Main(System.out, System.err, "jar");
+    jartool.run(args);
+
+    try (JarFile jf = new JarFile(jarFileName)) {
+        Manifest m = jf.getManifest();
+        String result = m.getMainAttributes().getValue("Class-path");
+        if (result == null)
+            throw new RuntimeException("Failed to add Class-path attribute to manifest");
+    } finally {
+        Files.deleteIfExists(Paths.get(jarFileName));
+        Files.deleteIfExists(Paths.get(ManifestName));
+    }
+
+}
+
+private static final String FILE_CONTENTS =
+ "Class-path: \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-testconsole-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-testconsole-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-bmp-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-bmp-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-host-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-host-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agent-patching-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agent-patching-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-connector-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-connector-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mos-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mos-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-security-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-security-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-topology-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-topology-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mext-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mext-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ecm-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ecm-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ecm-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-console-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-console-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-rules-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-rules-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ip-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ip-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-probanalysis-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-probanalysis-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-swlib-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-installmediacomponent-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-uifwk-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-uifwk-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-bmp-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-host-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agent-patching-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-connector-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mos-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-event-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ip-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-probanalysis-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-testconsole-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-uifwk-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mext-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-security-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-selfupdate-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-selfupdate-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-selfupdate-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-groups-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-groups-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-groups-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-topology-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-jobs-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-jobs-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-jobs-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-templ-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-templ-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-templ-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-metricalertserrors-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-metricalertserrors-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-metricalertserrors-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-metrics-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-metrics-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-metrics-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-tc-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-tc-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-tc-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentmgmt-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentmgmt-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentmgmt-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-gcharvester-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-gcharvester-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-gcharvester-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-patching-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-patching-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-patching-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ohinv-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ohinv-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ohinv-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ohagent-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ohcoherence-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ohjrockit-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-extensibility-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mpcustom-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-selfmonitor-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ocheck-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-udmmig-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-multioms-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-postupgrade-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-postupgrade-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-postupgrade-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mextjmx-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mextjmx-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-mextjmx-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ocheck-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-services-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-services-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-services-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-eventmobile-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-uifwkmobile-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-logmgmt-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-omsproperties-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-ohel-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-agentupgrade-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-lm-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-lm-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-core-lm-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-regiontest-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-uipatterns-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-uipatterns-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-uipatterns-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-uielements-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-uielements-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-sandbox-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-sandbox-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-sdkcore-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-sdkcore-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-sdkcore-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-core-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-core-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-samples-core-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-adfext-bc-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-aslm-services-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-avail-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-charge-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-config-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-connect-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-db-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-discovery-public-entity.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-discovery-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-console-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-rules-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-extens-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-filebrowser-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-filebrowser-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ip-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-job-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-me-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-metric-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-paf-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-security-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-swlib-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-swlib-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-templ-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-public-entity.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agent-patching-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agent-patching-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mext-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mext-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mext-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-testconsole-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-testconsole-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-testconsole-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mos-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mos-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mos-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-topology-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-topology-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-regions-uimodel.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-regions-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-adfext-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agentpatching-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-avail-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-charge-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-config-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-connect-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-db-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-discovery-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-extens-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ip-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-job-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-me-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-metric-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-paf-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-regions-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-security-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-swlib-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-templ-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-groups-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-groups-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-topology-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-resources-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-patching-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-patching-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ohinv-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ohinv-test.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ppc-public-pojo.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ppc-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agentpush-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwkmobile-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-lm-public-model.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-lm-public-ui.jar \n" +
+ " /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-lm-test.jar \n";
+}
--- a/test/javax/naming/spi/DirectoryManager/GetContDirCtx.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/javax/naming/spi/DirectoryManager/GetContDirCtx.java	Thu Mar 15 16:46:47 2012 +0000
@@ -26,6 +26,7 @@
  * @bug 4241676
  * @summary getContinuationDirContext() should set CPE environment property.
  * @build DummyObjectFactory DummyContext
+ * @run main/othervm GetContDirCtx
  */
 
 import java.util.Hashtable;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/swing/JFileChooser/4524490/bug4524490.java	Thu Mar 15 16:46:47 2012 +0000
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2012, 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 4524490
+ * @summary Tests if in JFileChooser, ALT+L does not bring focus to 'Files' selection list in Motif LAF
+ * @library ../../regtesthelpers
+ * @build Util
+ * @author Konstantin Eremin
+ * @run main bug4524490
+ */
+import java.awt.Robot;
+import java.awt.Toolkit;
+import java.awt.event.KeyEvent;
+import javax.swing.*;
+import sun.awt.OSInfo;
+import sun.awt.SunToolkit;
+
+public class bug4524490 {
+
+    private static JFileChooser fileChooser;
+
+    public static void main(String[] args) throws Exception {
+        SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
+        Robot robot = new Robot();
+        robot.setAutoDelay(50);
+
+        UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
+
+        SwingUtilities.invokeLater(new Runnable() {
+
+            public void run() {
+                fileChooser = new JFileChooser();
+                fileChooser.showOpenDialog(null);
+            }
+        });
+
+        toolkit.realSync();
+
+        if (OSInfo.OSType.MACOSX.equals(OSInfo.getOSType())) {
+            Util.hitKeys(robot, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_L);
+        } else {
+            Util.hitKeys(robot, KeyEvent.VK_ALT, KeyEvent.VK_L);
+        }
+        checkFocus();
+    }
+
+    private static void checkFocus() throws Exception {
+        SwingUtilities.invokeAndWait(new Runnable() {
+
+            @Override
+            public void run() {
+                JList list = (JList) Util.findSubComponent(fileChooser, "javax.swing.JList");
+                System.out.println("list focus: " + list.isFocusOwner());
+                if (!list.isFocusOwner()) {
+                    throw new RuntimeException("Focus is not transfered to the Folders list.");
+                }
+            }
+        });
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/swing/JMenuItem/6209975/bug6209975.java	Thu Mar 15 16:46:47 2012 +0000
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2012, 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 6209975
+ * @summary regression: JMenuItem icons overimposed on JMenuItem labels under Metal LAF
+ * @library ../../regtesthelpers
+ * @build Util
+ * @author Alexander Zuev
+ * @run main bug6209975
+ */
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.InputEvent;
+import sun.awt.SunToolkit;
+
+public class bug6209975 {
+
+    private static final ReturnObject RO1 = new ReturnObject();
+    private static final ReturnObject RO2 = new ReturnObject();
+
+    private static JMenu menu;
+    private static JButton button;
+
+    public static void main(String[] args) throws Exception {
+
+        SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
+        Robot robot = new Robot();
+        robot.setAutoDelay(500);
+
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+
+            @Override
+            public void run() {
+                createAndShowGUI();
+            }
+        });
+
+        toolkit.realSync();
+
+        Point clickPoint = getButtonClickPoint();
+        robot.mouseMove(clickPoint.x, clickPoint.y);
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        toolkit.realSync();
+
+        clickPoint = getMenuClickPoint();
+        robot.mouseMove(clickPoint.x, clickPoint.y);
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        toolkit.realSync();
+
+        if (RO1.itsValue <= RO2.itsValue) {
+            throw new RuntimeException("Offset if the second icon is invalid.");
+        }
+    }
+
+    private static Point getButtonClickPoint() throws Exception {
+        final Point[] result = new Point[1];
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+
+            @Override
+            public void run() {
+                Point p = button.getLocationOnScreen();
+                Dimension size = button.getSize();
+                result[0] = new Point(p.x + size.width / 2, p.y + size.height / 2);
+            }
+        });
+        return result[0];
+    }
+
+    private static Point getMenuClickPoint() throws Exception {
+        final Point[] result = new Point[1];
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+
+            @Override
+            public void run() {
+                Point p = menu.getLocationOnScreen();
+                Dimension size = menu.getSize();
+                result[0] = new Point(p.x + size.width / 2, p.y + size.height / 2);
+            }
+        });
+        return result[0];
+    }
+
+    private static void createAndShowGUI() {
+        JFrame frame = new JFrame("Test6209975");
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        frame.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
+        frame.setLayout(new BorderLayout());
+        button = new JButton("Focus holder");
+        frame.add(button);
+
+        JMenuBar mb = new JMenuBar();
+        menu = new JMenu("File");
+
+        JMenuItem item;
+
+        item = new JMenuItem("Just a menu item");
+        item.setIcon(new MyIcon(RO1));
+        item.setHorizontalTextPosition(SwingConstants.LEADING);
+        menu.add(item);
+
+        item = new JMenuItem("Menu Item with another icon");
+        item.setIcon(new MyIcon(RO2));
+        item.setHorizontalTextPosition(SwingConstants.TRAILING);
+        menu.add(item);
+
+        mb.add(menu);
+
+        frame.setJMenuBar(mb);
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        frame.pack();
+        frame.setLocation(400, 300);
+        frame.setVisible(true);
+    }
+
+    public static class ReturnObject {
+
+        public volatile int itsValue;
+    }
+
+    public static class MyIcon implements Icon {
+
+        ReturnObject thisObject = null;
+
+        public MyIcon(ReturnObject ro) {
+            super();
+            thisObject = ro;
+        }
+
+        public void paintIcon(Component c, Graphics g, int x, int y) {
+            Color color = g.getColor();
+            g.setColor(Color.BLACK);
+            g.fillRect(x, y, 10, 10);
+            g.setColor(color);
+            thisObject.itsValue = x;
+        }
+
+        public int getIconWidth() {
+            return 10;
+        }
+
+        public int getIconHeight() {
+            return 10;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/swing/SwingUtilities/7146377/bug7146377.java	Thu Mar 15 16:46:47 2012 +0000
@@ -0,0 +1,201 @@
+/*
+ * Copyright (c) 2012, 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 7146377
+   @summary closed/javax/swing/DataTransfer/4876520/bug4876520.java failed since b08 in jdk 8
+   @author Pavel Porvatov
+*/
+
+import sun.awt.SunToolkit;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
+public class bug7146377 {
+    private static JLabel label;
+    private static JFrame frame;
+
+    private static volatile Point point;
+
+    public static void main(String[] args) throws Exception {
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                frame = new JFrame();
+
+                label = new JLabel("A label");
+
+                label.addMouseListener(new MouseListener() {
+                    @Override
+                    public void mouseClicked(MouseEvent e) {
+                        checkEvent(e);
+                    }
+
+                    @Override
+                    public void mousePressed(MouseEvent e) {
+                        checkEvent(e);
+                    }
+
+                    @Override
+                    public void mouseReleased(MouseEvent e) {
+                        checkEvent(e);
+                    }
+
+                    @Override
+                    public void mouseEntered(MouseEvent e) {
+                        checkEvent(e);
+                    }
+
+                    @Override
+                    public void mouseExited(MouseEvent e) {
+                        checkEvent(e);
+                    }
+                });
+
+                frame.add(label);
+                frame.setSize(200, 100);
+                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+                frame.setVisible(true);
+            }
+        });
+
+        SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
+
+        toolkit.realSync();
+
+        // On Linux platforms realSync doesn't guaranties setSize completion
+        Thread.sleep(1000);
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                point = label.getLocationOnScreen();
+            }
+        });
+
+        Robot robot = new Robot();
+
+        robot.setAutoDelay(200);
+
+        // Move mouse
+        for (int i = 0; i < 20; i++) {
+            robot.mouseMove(point.x + i, point.y + i);
+        }
+
+        for (int button : new int[]{InputEvent.BUTTON1_MASK, InputEvent.BUTTON2_MASK, InputEvent.BUTTON3_MASK}) {
+            robot.mouseMove(point.x, point.y);
+
+            // Mouse Drag
+            robot.mousePress(button);
+
+            for (int i = 0; i < 20; i++) {
+                robot.mouseMove(point.x + i, point.y + i);
+            }
+
+            robot.mouseRelease(button);
+        }
+
+        toolkit.realSync();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                frame.dispose();
+            }
+        });
+
+        System.out.println("Test passed");
+    }
+
+    private static void checkEvent(MouseEvent e) {
+        String eventAsStr = eventToString(e);
+
+        System.out.println("Checking event " + eventAsStr);
+
+        check("isLeftMouseButton", SwingUtilities.isLeftMouseButton(e), oldIsLeftMouseButton(e), eventAsStr);
+        check("isRightMouseButton", SwingUtilities.isRightMouseButton(e), oldIsRightMouseButton(e), eventAsStr);
+        check("isMiddleMouseButton", SwingUtilities.isMiddleMouseButton(e), oldIsMiddleMouseButton(e), eventAsStr);
+    }
+
+    private static void check(String methodName, boolean newValue, boolean oldValue, String eventAsStr) {
+        if (newValue != oldValue) {
+            throw new RuntimeException("Regression on " + methodName + ", newValue = " + newValue +
+                    ", oldValue = " + oldValue + ", e = " + eventAsStr);
+        }
+    }
+
+    private static String eventToString(MouseEvent e) {
+        StringBuilder result = new StringBuilder();
+
+        switch (e.getID()) {
+            case MouseEvent.MOUSE_PRESSED:
+                result.append("MOUSE_PRESSED");
+                break;
+            case MouseEvent.MOUSE_RELEASED:
+                result.append("MOUSE_RELEASED");
+                break;
+            case MouseEvent.MOUSE_CLICKED:
+                result.append("MOUSE_CLICKED");
+                break;
+            case MouseEvent.MOUSE_ENTERED:
+                result.append("MOUSE_ENTERED");
+                break;
+            case MouseEvent.MOUSE_EXITED:
+                result.append("MOUSE_EXITED");
+                break;
+            case MouseEvent.MOUSE_MOVED:
+                result.append("MOUSE_MOVED");
+                break;
+            case MouseEvent.MOUSE_DRAGGED:
+                result.append("MOUSE_DRAGGED");
+                break;
+            case MouseEvent.MOUSE_WHEEL:
+                result.append("MOUSE_WHEEL");
+                break;
+            default:
+                result.append("unknown type");
+        }
+
+        result.append(", modifiers = " + MouseEvent.getMouseModifiersText(e.getModifiers()));
+        result.append(", modifiersEx = " + MouseEvent.getMouseModifiersText(e.getModifiersEx()));
+        result.append(", button = " + e.getButton());
+
+        return result.toString();
+    }
+
+    // Original implementation of SwingUtilities.isLeftMouseButton
+    private static boolean oldIsLeftMouseButton(MouseEvent e) {
+        return ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0);
+    }
+
+    // Original implementation of SwingUtilities.isMiddleMouseButton
+    private static boolean oldIsMiddleMouseButton(MouseEvent e) {
+        return ((e.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK);
+    }
+
+    // Original implementation of SwingUtilities.isRightMouseButton
+    private static boolean oldIsRightMouseButton(MouseEvent e) {
+        return ((e.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK);
+    }
+}
--- a/test/sun/misc/Cleaner/exitOnThrow.sh	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/sun/misc/Cleaner/exitOnThrow.sh	Thu Mar 15 16:46:47 2012 +0000
@@ -29,6 +29,7 @@
 # @summary Ensure that if a cleaner throws an exception then the VM exits
 #
 # @build ExitOnThrow
+# @run shell exitOnThrow.sh
 
 # Command-line usage: sh exitOnThrow.sh /path/to/build
 
--- a/test/sun/nio/cs/OLD/TestIBMDB.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/sun/nio/cs/OLD/TestIBMDB.java	Thu Mar 15 16:46:47 2012 +0000
@@ -26,6 +26,7 @@
  * @bug 6843578
  * @summary Test IBM DB charsets
  * @build IBM930_OLD IBM933_OLD IBM935_OLD IBM937_OLD IBM939_OLD IBM942_OLD IBM943_OLD IBM948_OLD IBM949_OLD IBM950_OLD IBM970_OLD IBM942C_OLD IBM943C_OLD IBM949C_OLD IBM1381_OLD IBM1383_OLD EUC_CN_OLD EUC_KR_OLD GBK_OLD Johab_OLD MS932_OLD MS936_OLD MS949_OLD MS950_OLD
+ * @run main TestIBMDB
  */
 
 import java.nio.charset.*;
--- a/test/sun/nio/cs/OLD/TestX11CS.java	Thu Mar 15 16:45:55 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 2009, 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 1234567
- * @summary Test updated X11 charsets
- * @build X11GB2312_OLD X11GBK_OLD X11KSC5601_OLD
- */
-
-import java.nio.charset.*;
-import java.nio.*;
-import java.util.*;
-
-public class TestX11CS {
-
-    static char[] decode(byte[] bb, Charset cs)
-        throws Exception {
-        CharsetDecoder dec = cs.newDecoder();
-        ByteBuffer bbf = ByteBuffer.wrap(bb);
-        CharBuffer cbf = CharBuffer.allocate(bb.length);
-        CoderResult cr = dec.decode(bbf, cbf, true);
-        if (cr != CoderResult.UNDERFLOW) {
-            System.out.println("DEC-----------------");
-            int pos = bbf.position();
-            System.out.printf("  cr=%s, bbf.pos=%d, bb[pos]=%x,%x,%x,%x%n",
-                              cr.toString(), pos,
-                              bb[pos++]&0xff, bb[pos++]&0xff,bb[pos++]&0xff, bb[pos++]&0xff);
-            throw new RuntimeException("Decoding err: " + cs.name());
-        }
-        char[] cc = new char[cbf.position()];
-        cbf.flip(); cbf.get(cc);
-        return cc;
-
-    }
-
-    static byte[] encode(char[] cc, Charset cs)
-        throws Exception {
-        ByteBuffer bbf = ByteBuffer.allocate(cc.length * 4);
-        CharBuffer cbf = CharBuffer.wrap(cc);
-        CharsetEncoder enc = cs.newEncoder();
-
-        CoderResult cr = enc.encode(cbf, bbf, true);
-        if (cr != CoderResult.UNDERFLOW) {
-            System.out.println("ENC-----------------");
-            int pos = cbf.position();
-            System.out.printf("  cr=%s, cbf.pos=%d, cc[pos]=%x%n",
-                              cr.toString(), pos, cc[pos]&0xffff);
-            throw new RuntimeException("Encoding err: " + cs.name());
-        }
-        byte[] bb = new byte[bbf.position()];
-        bbf.flip(); bbf.get(bb);
-        return bb;
-    }
-
-    static char[] getChars(Charset newCS, Charset oldCS) {
-        CharsetEncoder enc = oldCS.newEncoder();
-        CharsetEncoder encNew = newCS.newEncoder();
-        char[] cc = new char[0x10000];
-        int pos = 0;
-        int i = 0;
-        while (i < 0x10000) {
-            if (enc.canEncode((char)i) != encNew.canEncode((char)i)) {
-                System.out.printf("  Err i=%x%n", i);
-                //throw new RuntimeException("canEncode() err!");
-            }
-            if (enc.canEncode((char)i)) {
-                cc[pos++] = (char)i;
-            }
-            i++;
-        }
-        return Arrays.copyOf(cc, pos);
-    }
-
-    static void compare(Charset newCS, Charset oldCS) throws Exception {
-        System.out.printf("    Diff <%s> <%s>...%n", newCS.name(), oldCS.name());
-        char[] cc = getChars(newCS, oldCS);
-
-        byte[] bb1 = encode(cc, newCS);
-        byte[] bb2 = encode(cc, oldCS);
-
-        if (!Arrays.equals(bb1, bb2)) {
-            System.out.printf("        encoding failed!%n");
-        }
-        char[] cc1 = decode(bb1, newCS);
-        char[] cc2 = decode(bb1, oldCS);
-        if (!Arrays.equals(cc1, cc2)) {
-            for (int i = 0; i < cc1.length; i++) {
-                if (cc1[i] != cc2[i]) {
-                    System.out.printf("i=%d, cc1=%x cc2=%x,  bb=<%x%x>%n",
-                                      i,
-                                      cc1[i]&0xffff, cc2[i]&0xffff,
-                                      bb1[i*2]&0xff, bb1[i*2+1]&0xff);
-                }
-
-            }
-
-            System.out.printf("        decoding failed%n");
-        }
-    }
-
-    public static void main(String[] args) throws Exception {
-        compare(new sun.awt.motif.X11GBK(),
-                new X11GBK_OLD());
-
-        compare(new sun.awt.motif.X11GB2312(),
-                new X11GB2312_OLD());
-
-        compare(new sun.awt.motif.X11KSC5601(),
-                new X11KSC5601_OLD());
-
-    }
-}
--- a/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java	Thu Mar 15 16:45:55 2012 +0000
+++ b/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java	Thu Mar 15 16:46:47 2012 +0000
@@ -27,6 +27,7 @@
  * @compile JavaxSSLContextImpl.java ComSSLContextImpl.java
  *      JavaxTrustManagerFactoryImpl.java ComTrustManagerFactoryImpl.java
  *      JavaxKeyManagerFactoryImpl.java ComKeyManagerFactoryImpl.java
+ * @run main ProviderTest
  * @summary brokenness in the com.sun.net.ssl.SSLSecurity wrappers
  */