changeset 5451:49c168b317a3

Merge
author asaha
date Thu, 02 Aug 2012 11:16:17 -0700
parents 51f162e60b8a 0ae89e53f530
children 3cb729c0b083
files .hgtags src/share/classes/java/awt/EventQueue.java src/share/classes/sun/awt/AWTAccessor.java
diffstat 27 files changed, 523 insertions(+), 92 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Fri Jun 15 17:02:58 2012 +0400
+++ b/.hgtags	Thu Aug 02 11:16:17 2012 -0700
@@ -194,4 +194,6 @@
 4a6917092af80481c1fa5b9ec8ccae75411bb72c jdk7u6-b18
 a263f787ced5bc7c14078ae552c82de6bd011611 jdk7u6-b19
 09145b546a2b6ae1f44d5c8a7d2a37d48e4b39e2 jdk7u6-b20
+243717d7fe9589148951ffb5551264af0e446314 jdk7u6-b21
+d78f2b600d393f45d6ace8ca0f29ad677624a775 jdk7u6-b22
 94a7d51992ae6fd31f9adc15c4976d6354dca14d jdk7u7-b01
--- a/src/macosx/classes/sun/awt/CGraphicsDevice.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/macosx/classes/sun/awt/CGraphicsDevice.java	Thu Aug 02 11:16:17 2012 -0700
@@ -48,6 +48,9 @@
 
     private static AWTPermission fullScreenExclusivePermission;
 
+    // Save/restore DisplayMode for the Full Screen mode
+    private DisplayMode originalMode;
+
     public CGraphicsDevice(int displayID) {
         this.displayID = displayID;
         configs = new GraphicsConfiguration[] {
@@ -124,18 +127,22 @@
         }
 
         boolean fsSupported = isFullScreenSupported();
+
         if (fsSupported && old != null) {
             // enter windowed mode (and restore original display mode)
             exitFullScreenExclusive(old);
-
-            // TODO: restore display mode
+            if (originalMode != null) {
+                setDisplayMode(originalMode);
+                originalMode = null;
+            }
         }
 
         super.setFullScreenWindow(w);
 
         if (fsSupported && w != null) {
-            // TODO: save current display mode
-
+            if (isDisplayChangeSupported()) {
+                originalMode = getDisplayMode();
+            }
             // enter fullscreen mode
             enterFullScreenExclusive(w);
         }
--- a/src/macosx/classes/sun/lwawt/macosx/CDataTransferer.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/macosx/classes/sun/lwawt/macosx/CDataTransferer.java	Thu Aug 02 11:16:17 2012 -0700
@@ -182,6 +182,10 @@
         Long format = predefinedClipboardNameMap.get(str);
 
         if (format == null) {
+            if (java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().isHeadlessInstance()) {
+                // Do not try to access GUI manager for unknown format
+                return new Long(-1);
+            }
             format = new Long(registerFormatWithPasteboard(str));
             predefinedClipboardNameMap.put(str, format);
             predefinedClipboardFormatMap.put(format, str);
--- a/src/macosx/classes/sun/lwawt/macosx/CToolkitThreadBlockedHandler.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/macosx/classes/sun/lwawt/macosx/CToolkitThreadBlockedHandler.java	Thu Aug 02 11:16:17 2012 -0700
@@ -28,7 +28,10 @@
 import sun.awt.datatransfer.ToolkitThreadBlockedHandler;
 
 final class CToolkitThreadBlockedHandler implements ToolkitThreadBlockedHandler {
-    private final LWCToolkit toolkit = (LWCToolkit)java.awt.Toolkit.getDefaultToolkit();
+    private final LWCToolkit toolkit =
+            java.awt.Toolkit.getDefaultToolkit() instanceof LWCToolkit
+                    ? (LWCToolkit)java.awt.Toolkit.getDefaultToolkit()
+                    : null;
 
     public void lock() {
     }
@@ -44,7 +47,9 @@
         // Despite the naming of this method, on MacOS only one
         // event is read and dispatched before this method returns.
         // This call is non-blocking and does not wait for an event
-        toolkit.startNativeNestedEventLoop();
+        if (toolkit != null) {
+            toolkit.startNativeNestedEventLoop();
+        }
     }
 
     public void exit() {
--- a/src/macosx/native/sun/awt/CGraphicsDevice.m	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/macosx/native/sun/awt/CGraphicsDevice.m	Thu Aug 02 11:16:17 2012 -0700
@@ -28,7 +28,7 @@
 /*
  * Convert the mode string to the more convinient bits per pixel value
  */
-static int getBPPFromModeString(CFStringRef mode) 
+static int getBPPFromModeString(CFStringRef mode)
 {
     if ((CFStringCompare(mode, CFSTR(kIO30BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)) {
         // This is a strange mode, where we using 10 bits per RGB component and pack it into 32 bits
@@ -44,7 +44,7 @@
     else if (CFStringCompare(mode, CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) {
         return 8;
     }
-    
+
     return 0;
 }
 
@@ -68,6 +68,11 @@
             // One of the key parameters does not match
             continue;
         }
+
+        if (refrate == 0) { // REFRESH_RATE_UNKNOWN
+            return cRef;
+        }
+
         // Refresh rate might be 0 in display mode and we ask for specific display rate
         // but if we do not find exact match then 0 refresh rate might be just Ok
         if (CGDisplayModeGetRefreshRate(cRef) == refrate) {
@@ -165,7 +170,10 @@
                 }
             }
         }];
+    } else {
+        [JNFException raise:env as:kIllegalArgumentException reason:"Invalid display mode"];
     }
+
     CFRelease(allModes);
     JNF_COCOA_EXIT(env);
 }
--- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java	Thu Aug 02 11:16:17 2012 -0700
@@ -796,9 +796,10 @@
             "Menu.margin", zeroInsets,
             "Menu.cancelMode", "hideMenuTree",
             "Menu.alignAcceleratorText", Boolean.FALSE,
+            "Menu.useMenuBarForTopLevelMenus", Boolean.TRUE,
 
 
-            "MenuBar.windowBindings", new Object[] {
+                "MenuBar.windowBindings", new Object[] {
                 "F10", "takeFocus" },
             "MenuBar.font", new FontLazyValue(Region.MENU_BAR),
 
--- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyleFactory.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyleFactory.java	Thu Aug 02 11:16:17 2012 -0700
@@ -92,7 +92,13 @@
                 boolean defaultCapable = btn.isDefaultCapable();
                 key = new ComplexKey(wt, toolButton, defaultCapable);
             }
+        } else if (id == Region.MENU) {
+            if (c instanceof JMenu && ((JMenu) c).isTopLevelMenu() &&
+                    UIManager.getBoolean("Menu.useMenuBarForTopLevelMenus")) {
+                wt = WidgetType.MENU_BAR;
+            }
         }
+
         if (key == null) {
             // Otherwise, just use the WidgetType as the key.
             key = wt;
--- a/src/share/classes/com/sun/java/util/jar/pack/Driver.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/com/sun/java/util/jar/pack/Driver.java	Thu Aug 02 11:16:17 2012 -0700
@@ -36,6 +36,7 @@
 import java.io.PrintStream;
 import java.text.MessageFormat;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -381,12 +382,15 @@
         String prefix = base.getName();
         if (prefix.length() < 3)  prefix += "tmp";
 
-        File where = base.getParentFile();
+        File where = (base.getParentFile() == null && suffix.equals(".bak"))
+                ? new File(".").getAbsoluteFile()
+                : base.getParentFile();
 
-        if ( base.getParentFile() == null && suffix.equals(".bak"))
-            where = new File(".").getAbsoluteFile();
+        Path tmpfile = (where == null)
+                ? Files.createTempFile(prefix, suffix)
+                : Files.createTempFile(where.toPath(), prefix, suffix);
 
-        return Files.createTempFile(where.toPath(), prefix, suffix).toFile();
+        return tmpfile.toFile();
     }
 
     static private
--- a/src/share/classes/java/awt/EventQueue.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/java/awt/EventQueue.java	Thu Aug 02 11:16:17 2012 -0700
@@ -36,6 +36,8 @@
 import java.security.PrivilegedAction;
 
 import java.util.EmptyStackException;
+
+import sun.awt.dnd.SunDropTargetEvent;
 import sun.util.logging.PlatformLogger;
 
 import sun.awt.AppContext;
@@ -358,6 +360,10 @@
     }
 
     private boolean coalesceMouseEvent(MouseEvent e) {
+        if (e instanceof SunDropTargetEvent) {
+            // SunDropTargetEvent should not coalesce with MouseEvent
+            return false;
+        }
         EventQueueItem[] cache = ((Component)e.getSource()).eventCache;
         if (cache == null) {
             return false;
@@ -437,6 +443,10 @@
     }
 
     private void cacheEQItem(EventQueueItem entry) {
+        if(entry.event instanceof SunDropTargetEvent) {
+            // Do not cache SunDropTargetEvent, it should not coalesce
+            return;
+        }
         int index = eventToCacheIndex(entry.event);
         if (index != -1 && entry.event.getSource() instanceof Component) {
             Component source = (Component)entry.event.getSource();
--- a/src/share/classes/java/awt/GraphicsEnvironment.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/java/awt/GraphicsEnvironment.java	Thu Aug 02 11:16:17 2012 -0700
@@ -170,12 +170,12 @@
                         if (System.getProperty("javaplugin.version") != null) {
                             headless = defaultHeadless = Boolean.FALSE;
                         } else {
-                            if ("sun.awt.HeadlessGraphicsEnvironment".equals(
-                                    System.getProperty("java.awt.graphicsenv")))
+                            String osName = System.getProperty("os.name");
+                            if (osName.contains("OS X") && "sun.awt.HToolkit".equals(
+                                    System.getProperty("awt.toolkit")))
                             {
                                 headless = defaultHeadless = Boolean.TRUE;
                             } else {
-                                String osName = System.getProperty("os.name");
                                 headless = defaultHeadless =
                                     Boolean.valueOf(("Linux".equals(osName) ||
                                                      "SunOS".equals(osName) ||
--- a/src/share/classes/java/net/HttpCookie.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/java/net/HttpCookie.java	Thu Aug 02 11:16:17 2012 -0700
@@ -154,7 +154,7 @@
 
     private HttpCookie(String name, String value, String header) {
         name = name.trim();
-        if (name.length() == 0 || !isToken(name) || isReserved(name)) {
+        if (name.length() == 0 || !isToken(name) || name.charAt(0) == '$') {
             throw new IllegalArgumentException("Illegal cookie name");
         }
 
@@ -909,32 +909,6 @@
 
 
     /*
-     * @param name      the name to be tested
-     * @return          <tt>true</tt> if the name is reserved by cookie
-     *                  specification, <tt>false</tt> if it is not
-     */
-    private static boolean isReserved(String name) {
-        if (name.equalsIgnoreCase("Comment")
-            || name.equalsIgnoreCase("CommentURL")      // rfc2965 only
-            || name.equalsIgnoreCase("Discard")         // rfc2965 only
-            || name.equalsIgnoreCase("Domain")
-            || name.equalsIgnoreCase("Expires")         // netscape draft only
-            || name.equalsIgnoreCase("Max-Age")
-            || name.equalsIgnoreCase("Path")
-            || name.equalsIgnoreCase("Port")            // rfc2965 only
-            || name.equalsIgnoreCase("Secure")
-            || name.equalsIgnoreCase("Version")
-            || name.equalsIgnoreCase("HttpOnly")
-            || name.charAt(0) == '$')
-        {
-            return true;
-        }
-
-        return false;
-    }
-
-
-    /*
      * Parse header string to cookie object.
      *
      * @param header    header string; should contain only one NAME=VALUE pair
--- a/src/share/classes/javax/swing/SwingUtilities.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/javax/swing/SwingUtilities.java	Thu Aug 02 11:16:17 2012 -0700
@@ -319,7 +319,8 @@
             newEvent = new MouseWheelEvent(newSource,
                                            sourceWheelEvent.getID(),
                                            sourceWheelEvent.getWhen(),
-                                           sourceWheelEvent.getModifiers(),
+                                           sourceWheelEvent.getModifiers()
+                                                   | sourceWheelEvent.getModifiersEx(),
                                            p.x,p.y,
                                            sourceWheelEvent.getXOnScreen(),
                                            sourceWheelEvent.getYOnScreen(),
@@ -334,7 +335,8 @@
             newEvent = new MenuDragMouseEvent(newSource,
                                               sourceMenuDragEvent.getID(),
                                               sourceMenuDragEvent.getWhen(),
-                                              sourceMenuDragEvent.getModifiers(),
+                                              sourceMenuDragEvent.getModifiers()
+                                                      | sourceMenuDragEvent.getModifiersEx(),
                                               p.x,p.y,
                                               sourceMenuDragEvent.getXOnScreen(),
                                               sourceMenuDragEvent.getYOnScreen(),
@@ -347,7 +349,8 @@
             newEvent = new MouseEvent(newSource,
                                       sourceEvent.getID(),
                                       sourceEvent.getWhen(),
-                                      sourceEvent.getModifiers(),
+                                      sourceEvent.getModifiers()
+                                              | sourceEvent.getModifiersEx(),
                                       p.x,p.y,
                                       sourceEvent.getXOnScreen(),
                                       sourceEvent.getYOnScreen(),
--- a/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java	Thu Aug 02 11:16:17 2012 -0700
@@ -299,7 +299,8 @@
      */
     @Override
     public void propertyChange(PropertyChangeEvent e) {
-        if (SynthLookAndFeel.shouldUpdateStyle(e)) {
+        if (SynthLookAndFeel.shouldUpdateStyle(e) ||
+                (e.getPropertyName().equals("ancestor") && UIManager.getBoolean("Menu.useMenuBarForTopLevelMenus"))) {
             updateStyle((JMenu)e.getSource());
         }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/sun/beans/editors/BoolEditor.java	Thu Aug 02 11:16:17 2012 -0700
@@ -0,0 +1,31 @@
+  /*
+   * 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.  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.beans.editors;
+
+  /**
+   * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE.
+   */
+  public class BoolEditor extends BooleanEditor {
+  }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/sun/beans/editors/IntEditor.java	Thu Aug 02 11:16:17 2012 -0700
@@ -0,0 +1,31 @@
+  /*
+   * 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.  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.beans.editors;
+
+  /**
+   * FOR BACKWARD COMPATIBILITY ONLY - DO NOT USE.
+   */
+  public class IntEditor extends IntegerEditor {
+  }
--- a/src/share/classes/sun/font/SunLayoutEngine.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/sun/font/SunLayoutEngine.java	Thu Aug 02 11:16:17 2012 -0700
@@ -137,8 +137,9 @@
 
         LayoutEngine e = (LayoutEngine)cache.get(key);
         if (e == null) {
-            e = new SunLayoutEngine(key.copy());
-            cache.put(key, e);
+            LayoutEngineKey copy = key.copy();
+            e = new SunLayoutEngine(copy);
+            cache.put(copy, e);
         }
         return e;
     }
--- a/src/share/classes/sun/security/pkcs/SignerInfo.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/sun/security/pkcs/SignerInfo.java	Thu Aug 02 11:16:17 2012 -0700
@@ -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
@@ -273,6 +273,24 @@
         return certList;
     }
 
+    // Copied from com.sun.crypto.provider.OAEPParameters.
+    private static String convertToStandardName(String internalName) {
+        if (internalName.equals("SHA")) {
+            return "SHA-1";
+        } else if (internalName.equals("SHA224")) {
+            return "SHA-224";
+        } else if (internalName.equals("SHA256")) {
+            return "SHA-256";
+        } else if (internalName.equals("SHA384")) {
+            return "SHA-384";
+        } else if (internalName.equals("SHA512")) {
+            return "SHA-512";
+        } else {
+            return internalName;
+        }
+    }
+
+
     /* Returns null if verify fails, this signerInfo if
        verify succeeds. */
     SignerInfo verify(PKCS7 block, byte[] data)
@@ -311,7 +329,8 @@
                 if (messageDigest == null) // fail if there is no message digest
                     return null;
 
-                MessageDigest md = MessageDigest.getInstance(digestAlgname);
+                MessageDigest md = MessageDigest.getInstance(
+                        convertToStandardName(digestAlgname));
                 byte[] computedMessageDigest = md.digest(data);
 
                 if (messageDigest.length != computedMessageDigest.length)
--- a/src/share/classes/sun/security/provider/certpath/OCSPResponse.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/share/classes/sun/security/provider/certpath/OCSPResponse.java	Thu Aug 02 11:16:17 2012 -0700
@@ -349,7 +349,9 @@
             }
         }
 
-        X509Certificate trustedResponderCert = null;
+        // By default, the OCSP responder's cert is the same as the issuer of
+        // the cert being validated. The issuer cert is the first in the list.
+        X509Certificate trustedResponderCert = responderCerts.get(0);
 
         // Check whether the signer cert returned by the responder is trusted
         if (x509Certs != null && x509Certs[0] != null) {
--- a/src/solaris/native/java/lang/java_props_md.c	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/solaris/native/java/lang/java_props_md.c	Thu Aug 02 11:16:17 2012 -0700
@@ -398,6 +398,7 @@
     PreferredToolkit prefToolkit = getPreferredToolkit();
     switch (prefToolkit) {
         case CToolkit:
+        case HToolkit:
             sprops.graphics_env = "sun.awt.CGraphicsEnvironment";
             break;
         case XToolkit:
@@ -405,9 +406,6 @@
     sprops.graphics_env = "sun.awt.X11GraphicsEnvironment";
 #ifdef MACOSX
             break;
-        default:
-            sprops.graphics_env = "sun.java2d.HeadlessGraphicsEnvironment";
-            break;
     }
 #endif
     /* AWT properties */
--- a/src/windows/classes/sun/awt/windows/WComponentPeer.java	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/windows/classes/sun/awt/windows/WComponentPeer.java	Thu Aug 02 11:16:17 2012 -0700
@@ -419,8 +419,12 @@
     public void createScreenSurface(boolean isResize)
     {
         Win32GraphicsConfig gc = (Win32GraphicsConfig)getGraphicsConfiguration();
+        if (gc == null) {
+            surfaceData = null;
+            return;
+        }
+
         ScreenUpdateManager mgr = ScreenUpdateManager.getInstance();
-
         surfaceData = mgr.createScreenSurface(gc, this, numBackBuffers, isResize);
     }
 
--- a/src/windows/native/sun/windows/awt_TextArea.cpp	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/windows/native/sun/windows/awt_TextArea.cpp	Thu Aug 02 11:16:17 2012 -0700
@@ -131,48 +131,13 @@
     MsgRouting mr = mrDoDefault;
 
     switch (message) {
-        case WM_PRINTCLIENT:
-          {
-            FORMATRANGE fr;
-            HDC hPrinterDC = (HDC)wParam;
-            int nHorizRes = ::GetDeviceCaps(hPrinterDC, HORZRES);
-            int nVertRes = ::GetDeviceCaps(hPrinterDC, VERTRES);
-            int nLogPixelsX = ::GetDeviceCaps(hPrinterDC, LOGPIXELSX);
-            int nLogPixelsY = ::GetDeviceCaps(hPrinterDC, LOGPIXELSY);
-
-            // Ensure the printer DC is in MM_TEXT mode.
-            ::SetMapMode ( hPrinterDC, MM_TEXT );
-
-            // Rendering to the same DC we are measuring.
-            ::ZeroMemory(&fr, sizeof(fr));
-            fr.hdc = fr.hdcTarget = hPrinterDC;
-            // Set up the page.
-            fr.rcPage.left     = fr.rcPage.top = 0;
-            fr.rcPage.right    = (nHorizRes/nLogPixelsX) * 1440; // in twips
-            fr.rcPage.bottom   = (nVertRes/nLogPixelsY) * 1440;
-            fr.rc.left   = fr.rcPage.left;
-            fr.rc.top    = fr.rcPage.top;
-            fr.rc.right  = fr.rcPage.right;
-            fr.rc.bottom = fr.rcPage.bottom;
-
-            // start printing from the first visible line
-            LRESULT nLine = SendMessage(EM_GETFIRSTVISIBLELINE, 0, 0);
-            LONG startCh = static_cast<LONG>(SendMessage(EM_LINEINDEX,
-                                                         (WPARAM)nLine, 0));
-            fr.chrg.cpMin = startCh;
-            fr.chrg.cpMax = -1;
-
-            SendMessage(EM_FORMATRANGE, TRUE, (LPARAM)&fr);
-          }
-
-        break;
     case EM_SETCHARFORMAT:
     case WM_SETFONT:
         SetIgnoreEnChange(TRUE);
         break;
     }
 
-    retValue = AwtComponent::WindowProc(message, wParam, lParam);
+    retValue = AwtTextComponent::WindowProc(message, wParam, lParam);
 
     switch (message) {
     case EM_SETCHARFORMAT:
--- a/src/windows/native/sun/windows/awt_TextComponent.cpp	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/windows/native/sun/windows/awt_TextComponent.cpp	Thu Aug 02 11:16:17 2012 -0700
@@ -215,6 +215,50 @@
     return c;
 }
 
+LRESULT
+AwtTextComponent::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) {
+
+    switch (message) {
+        case WM_PRINTCLIENT:
+          {
+            FORMATRANGE fr;
+            HDC hPrinterDC = (HDC)wParam;
+            int nHorizRes = ::GetDeviceCaps(hPrinterDC, HORZRES);
+            int nVertRes = ::GetDeviceCaps(hPrinterDC, VERTRES);
+            int nLogPixelsX = ::GetDeviceCaps(hPrinterDC, LOGPIXELSX);
+            int nLogPixelsY = ::GetDeviceCaps(hPrinterDC, LOGPIXELSY);
+
+            // Ensure the printer DC is in MM_TEXT mode.
+            ::SetMapMode ( hPrinterDC, MM_TEXT );
+
+            // Rendering to the same DC we are measuring.
+            ::ZeroMemory(&fr, sizeof(fr));
+            fr.hdc = fr.hdcTarget = hPrinterDC;
+            // Set up the page.
+            fr.rcPage.left     = fr.rcPage.top = 0;
+            fr.rcPage.right    = (nHorizRes/nLogPixelsX) * 1440; // in twips
+            fr.rcPage.bottom   = (nVertRes/nLogPixelsY) * 1440;
+            fr.rc.left   = fr.rcPage.left;
+            fr.rc.top    = fr.rcPage.top;
+            fr.rc.right  = fr.rcPage.right;
+            fr.rc.bottom = fr.rcPage.bottom;
+
+            // start printing from the first visible line
+            LRESULT nLine = SendMessage(EM_GETFIRSTVISIBLELINE, 0, 0);
+            LONG startCh = static_cast<LONG>(SendMessage(EM_LINEINDEX,
+                                                         (WPARAM)nLine, 0));
+            fr.chrg.cpMin = startCh;
+            fr.chrg.cpMax = -1;
+
+            SendMessage(EM_FORMATRANGE, TRUE, (LPARAM)&fr);
+          }
+
+        break;
+    }
+
+    return AwtComponent::WindowProc(message, wParam, lParam);
+}
+
 LONG AwtTextComponent::EditGetCharFromPos(POINT& pt) {
     return static_cast<LONG>(SendMessage(EM_CHARFROMPOS, 0,
             reinterpret_cast<LPARAM>(&pt)));
--- a/src/windows/native/sun/windows/awt_TextComponent.h	Fri Jun 15 17:02:58 2012 +0400
+++ b/src/windows/native/sun/windows/awt_TextComponent.h	Thu Aug 02 11:16:17 2012 -0700
@@ -50,6 +50,7 @@
     static AwtTextComponent* Create(jobject self, jobject parent, BOOL isMultiline);
 
     virtual LPCTSTR GetClassName();
+    LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
 
     int RemoveCR(WCHAR *pStr);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/java/net/HttpCookie/IllegalCookieNameTest.java	Thu Aug 02 11:16:17 2012 -0700
@@ -0,0 +1,74 @@
+/*
+ * 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 7183292
+ */
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import com.sun.net.httpserver.*;
+
+public class IllegalCookieNameTest {
+    public static void main(String[] args) throws IOException {
+        HttpServer s = null;
+        try {
+            InetSocketAddress addr = new InetSocketAddress(0);
+            s = HttpServer.create(addr, 10);
+            s.createContext("/", new HHandler());
+            s.start();
+            String u = "http://127.0.0.1:" + s.getAddress().getPort() + "/";
+            CookieHandler.setDefault(new TestCookieHandler());
+            URL url = new URL(u);
+            HttpURLConnection c = (HttpURLConnection) url.openConnection();
+            c.getHeaderFields();
+            System.out.println ("OK");
+        } finally {
+            s.stop(1);
+        }
+    }
+}
+
+class TestCookieHandler extends CookieHandler {
+    @Override
+    public Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders) {
+        return new HashMap<String, List<String>>();
+    }
+
+    @Override
+    public void put(URI uri, Map<String, List<String>> responseHeaders) {
+    }
+}
+
+class HHandler implements  HttpHandler {
+    public void handle (HttpExchange e) {
+        try {
+            Headers h = e.getResponseHeaders();
+            h.set ("Set-Cookie", "domain=; expires=Mon, 01-Jan-1990 00:00:00 GMT; path=/; domain=.foo.com");
+            e.sendResponseHeaders(200, -1);
+            e.close();
+        } catch (Exception ex) {
+            System.out.println (ex);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/swing/SwingUtilities/7170657/bug7170657.java	Thu Aug 02 11:16:17 2012 -0700
@@ -0,0 +1,78 @@
+/*
+ * 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.  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.
+ */
+
+import java.awt.Frame;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
+
+import javax.swing.SwingUtilities;
+import javax.swing.event.MenuDragMouseEvent;
+
+/**
+ * @test
+ * @bug 7170657
+ * @author Sergey Bylokhov
+ */
+public final class bug7170657 {
+
+    private static boolean FAILED;
+
+    public static void main(final String[] args) {
+        final int mask = InputEvent.META_DOWN_MASK | InputEvent.CTRL_MASK;
+
+        Frame f = new Frame();
+
+        MouseEvent mwe = new MouseWheelEvent(f, 1, 1, mask, 1, 1, 1, 1, 1, true,
+                                             1, 1, 1);
+        MouseEvent mdme = new MenuDragMouseEvent(f, 1, 1, mask, 1, 1, 1, 1, 1,
+                                                 true, null, null);
+        MouseEvent me = new MouseEvent(f, 1, 1, mask, 1, 1, 1, 1, 1, true,
+                                       MouseEvent.NOBUTTON);
+
+        test(f, mwe);
+        test(f, mdme);
+        test(f, me);
+
+        if (FAILED) {
+            throw new RuntimeException("Wrong mouse event");
+        }
+    }
+
+
+    private static void test(final Frame frame, final MouseEvent me) {
+        MouseEvent newme = SwingUtilities.convertMouseEvent(frame, me, frame);
+        if (me.getModifiersEx() != newme.getModifiersEx()
+                || me.getModifiers() != newme.getModifiers()) {
+            fail(me, newme);
+        }
+    }
+
+    private static void fail(final MouseEvent exp, final MouseEvent act) {
+        System.err.println("Expected: " + exp);
+        System.err.println("Actual: " + act);
+        FAILED = true;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/sun/security/x509/AlgorithmId/NonStandardNames.java	Thu Aug 02 11:16:17 2012 -0700
@@ -0,0 +1,84 @@
+/*
+ * 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 7180907
+ * @summary Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes
+ */
+
+import java.security.MessageDigest;
+import java.security.Signature;
+import java.security.cert.X509Certificate;
+import sun.security.pkcs.ContentInfo;
+import sun.security.pkcs.PKCS7;
+import sun.security.pkcs.PKCS9Attribute;
+import sun.security.pkcs.PKCS9Attributes;
+import sun.security.pkcs.SignerInfo;
+import sun.security.x509.CertAndKeyGen;
+import sun.security.x509.AlgorithmId;
+import sun.security.x509.X500Name;
+
+public class NonStandardNames {
+
+    public static void main(String[] args) throws Exception {
+
+        byte[] data = "Hello".getBytes();
+        X500Name n = new X500Name("cn=Me");
+
+        CertAndKeyGen cakg = new CertAndKeyGen("RSA", "SHA256withRSA");
+        cakg.generate(1024);
+        X509Certificate cert = cakg.getSelfCertificate(n, 1000);
+
+        MessageDigest md = MessageDigest.getInstance("SHA-256");
+        PKCS9Attributes authed = new PKCS9Attributes(new PKCS9Attribute[]{
+            new PKCS9Attribute(PKCS9Attribute.CONTENT_TYPE_OID, ContentInfo.DATA_OID),
+            new PKCS9Attribute(PKCS9Attribute.MESSAGE_DIGEST_OID, md.digest(data)),
+        });
+
+        Signature s = Signature.getInstance("SHA256withRSA");
+        s.initSign(cakg.getPrivateKey());
+        s.update(authed.getDerEncoding());
+        byte[] sig = s.sign();
+
+        SignerInfo signerInfo = new SignerInfo(
+                n,
+                cert.getSerialNumber(),
+                AlgorithmId.get("SHA-256"),
+                authed,
+                AlgorithmId.get("SHA256withRSA"),
+                sig,
+                null
+                );
+
+        PKCS7 pkcs7 = new PKCS7(
+                new AlgorithmId[] {signerInfo.getDigestAlgorithmId()},
+                new ContentInfo(data),
+                new X509Certificate[] {cert},
+                new SignerInfo[] {signerInfo});
+
+        if (pkcs7.verify(signerInfo, data) == null) {
+            throw new Exception("Not verified");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/pack200/RepackTest.java	Thu Aug 02 11:16:17 2012 -0700
@@ -0,0 +1,74 @@
+/*
+ * 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.
+ */
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+/*
+ * @test
+ * @bug 7184145
+ * @summary tests repacking of an orphaned jarfile
+ * @compile -XDignore.symbol.file Utils.java RepackTest.java
+ * @run main RepackTest
+ * @author ksrini
+ */
+public class RepackTest {
+
+    public static void main(String... args) throws Exception {
+        testRepack();
+    }
+
+    /*
+     * there are two cases we need to test, where the file in question is
+     * orpaned, ie. without a parent ie. not qualified by a parent path
+     * relative nor absolute
+     * case 1: src and dest are the same
+     * case 2: src and dest are different
+     */
+    static void testRepack() throws IOException {
+
+        // make a copy of the test speciment to local directory
+        File testFile = new File("src_tools.jar");
+        Utils.copyFile(Utils.locateJar("golden.jar"), testFile);
+        List<String> cmdsList = new ArrayList<>();
+
+        // case 1:
+        cmdsList.add(Utils.getPack200Cmd());
+        cmdsList.add("--repack");
+        cmdsList.add(testFile.getName());
+        Utils.runExec(cmdsList);
+
+        // case 2:
+        File dstFile = new File("dst_tools.jar");
+        cmdsList.clear();
+        cmdsList.add(Utils.getPack200Cmd());
+        cmdsList.add("--repack");
+        cmdsList.add(dstFile.getName());
+        cmdsList.add(testFile.getName());
+        Utils.runExec(cmdsList);
+
+        // tidy up
+        testFile.delete();
+        dstFile.delete();
+    }
+}