changeset 57776:34f4782c0850

8236506: [macosx] Some datatransfer classes were loaded on startup Reviewed-by: prr
author serb
date Wed, 25 Dec 2019 10:15:32 +0300
parents 75dd1b241671
children 6dbd8a434f44
files src/java.desktop/macosx/classes/sun/lwawt/LWTextAreaPeer.java src/java.desktop/macosx/classes/sun/lwawt/LWTextFieldPeer.java src/java.desktop/unix/classes/sun/awt/X11/XTextAreaPeer.java src/java.desktop/unix/classes/sun/awt/X11/XTextFieldPeer.java
diffstat 4 files changed, 45 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/src/java.desktop/macosx/classes/sun/lwawt/LWTextAreaPeer.java	Mon Dec 23 13:04:07 2019 +0530
+++ b/src/java.desktop/macosx/classes/sun/lwawt/LWTextAreaPeer.java	Wed Dec 25 10:15:32 2019 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,8 +38,11 @@
 import javax.swing.JScrollPane;
 import javax.swing.JTextArea;
 import javax.swing.ScrollPaneConstants;
+import javax.swing.TransferHandler;
 import javax.swing.text.Document;
 
+import sun.awt.AWTAccessor;
+
 /**
  * Lightweight implementation of {@link TextAreaPeer}. Delegates most of the
  * work to the {@link JTextArea} inside {@link JScrollPane}.
@@ -237,6 +240,17 @@
             public Point getLocationOnScreen() {
                 return LWTextAreaPeer.this.getLocationOnScreen();
             }
+
+            @Override
+            public void setTransferHandler(final TransferHandler newHandler) {
+                // override the default implementation to avoid loading
+                // SystemFlavorMap and associated classes
+                Object key = AWTAccessor.getClientPropertyKeyAccessor()
+                                        .getJComponent_TRANSFER_HANDLER();
+                Object oldHandler = getClientProperty(key);
+                putClientProperty(key, newHandler);
+                firePropertyChange("transferHandler", oldHandler, newHandler);
+            }
         }
     }
 }
--- a/src/java.desktop/macosx/classes/sun/lwawt/LWTextFieldPeer.java	Mon Dec 23 13:04:07 2019 +0530
+++ b/src/java.desktop/macosx/classes/sun/lwawt/LWTextFieldPeer.java	Wed Dec 25 10:15:32 2019 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package sun.lwawt;
 
 import java.awt.Dimension;
@@ -37,6 +36,8 @@
 import javax.swing.*;
 import javax.swing.text.JTextComponent;
 
+import sun.awt.AWTAccessor;
+
 /**
  * Lightweight implementation of {@link TextFieldPeer}. Delegates most of the
  * work to the {@link JPasswordField}.
@@ -140,5 +141,16 @@
         public Point getLocationOnScreen() {
             return LWTextFieldPeer.this.getLocationOnScreen();
         }
+
+        @Override
+        public void setTransferHandler(final TransferHandler newHandler) {
+            // override the default implementation to avoid loading
+            // SystemFlavorMap and associated classes
+            Object key = AWTAccessor.getClientPropertyKeyAccessor()
+                                    .getJComponent_TRANSFER_HANDLER();
+            Object oldHandler = getClientProperty(key);
+            putClientProperty(key, newHandler);
+            firePropertyChange("transferHandler", oldHandler, newHandler);
+        }
     }
 }
--- a/src/java.desktop/unix/classes/sun/awt/X11/XTextAreaPeer.java	Mon Dec 23 13:04:07 2019 +0530
+++ b/src/java.desktop/unix/classes/sun/awt/X11/XTextAreaPeer.java	Wed Dec 25 10:15:32 2019 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -971,17 +971,14 @@
             setUI(ui);
         }
 
-        // Fix for 4915454 - override the default implementation to avoid
-        // loading SystemFlavorMap and associated classes.
         @Override
-        public void setTransferHandler(TransferHandler newHandler) {
-            TransferHandler oldHandler = (TransferHandler)
-                getClientProperty(AWTAccessor.getClientPropertyKeyAccessor()
-                                      .getJComponent_TRANSFER_HANDLER());
-            putClientProperty(AWTAccessor.getClientPropertyKeyAccessor()
-                                  .getJComponent_TRANSFER_HANDLER(),
-                              newHandler);
-
+        public void setTransferHandler(final TransferHandler newHandler) {
+            // override the default implementation to avoid loading
+            // SystemFlavorMap and associated classes
+            Object key = AWTAccessor.getClientPropertyKeyAccessor()
+                                    .getJComponent_TRANSFER_HANDLER();
+            Object oldHandler = getClientProperty(key);
+            putClientProperty(key, newHandler);
             firePropertyChange("transferHandler", oldHandler, newHandler);
         }
     }
--- a/src/java.desktop/unix/classes/sun/awt/X11/XTextFieldPeer.java	Mon Dec 23 13:04:07 2019 +0530
+++ b/src/java.desktop/unix/classes/sun/awt/X11/XTextFieldPeer.java	Wed Dec 25 10:15:32 2019 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -642,17 +642,14 @@
             processMouseMotionEvent(e);
         }
 
-        // Fix for 4915454 - override the default implementation to avoid
-        // loading SystemFlavorMap and associated classes.
         @Override
-        public void setTransferHandler(TransferHandler newHandler) {
-            TransferHandler oldHandler = (TransferHandler)
-                getClientProperty(AWTAccessor.getClientPropertyKeyAccessor()
-                                      .getJComponent_TRANSFER_HANDLER());
-            putClientProperty(AWTAccessor.getClientPropertyKeyAccessor()
-                                  .getJComponent_TRANSFER_HANDLER(),
-                              newHandler);
-
+        public void setTransferHandler(final TransferHandler newHandler) {
+            // override the default implementation to avoid loading
+            // SystemFlavorMap and associated classes
+            Object key = AWTAccessor.getClientPropertyKeyAccessor()
+                                    .getJComponent_TRANSFER_HANDLER();
+            Object oldHandler = getClientProperty(key);
+            putClientProperty(key, newHandler);
             firePropertyChange("transferHandler", oldHandler, newHandler);
         }