OpenJDK / jdk / jdk
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); }