提交 24e587db 编写于 作者: A alexsch

8065098: JColorChooser no longer supports drag and drop between two JVM instances

Reviewed-by: serb, pchelko
上级 95184625
......@@ -1295,6 +1295,15 @@ search:
// bytes and dump them into a byte array. For text flavors, decode back
// to a String and recur to reencode according to the requested format.
} else if (flavor.isRepresentationClassInputStream()) {
// Workaround to JDK-8024061: Exception thrown when drag and drop
// between two components is executed quickly.
// and JDK-8065098: JColorChooser no longer supports drag and drop
// between two JVM instances
if (!(obj instanceof InputStream)) {
return new byte[0];
}
try (ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
try (InputStream is = (InputStream)obj) {
boolean eof = false;
......
......@@ -239,13 +239,6 @@ public abstract class SunDropTargetContextPeer implements DropTargetContextPeer,
if (localTransferable != null) {
return localTransferable.getTransferData(df);
} else if (df.isMimeTypeEqual(DataFlavor.javaJVMLocalObjectMimeType)) {
// Workaround to JDK-8024061: Exception thrown when drag and drop
// between two components is executed quickly.
// It is expected localTransferable is not null if javaJVMLocalObjectMimeType
// is used. Executing further results in ClassCastException, so null is
// returned here as no transfer data is available in this case.
return null;
}
if (dropStatus != STATUS_ACCEPT || dropComplete) {
......
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import javax.swing.BorderFactory;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
/*
* @bug 8065098
* @summary JColorChooser no longer supports drag and drop
* between two JVM instances
*/
public class JColorChooserDnDTest {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JColorChooser colorChooser = new JColorChooser();
colorChooser.setDragEnabled(true);
panel.setBorder(BorderFactory.createTitledBorder("JColorChoosers"));
panel.add(colorChooser);
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
}
});
}
}
<!--
Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
or visit www.oracle.com if you need additional information or have any
questions.
-->
<html>
<body>
1. Compile the java test JColorChooserDnDTest.java:
> <path-to-the-tested-jdk>/bin/javac JColorChooserDnDTest.java
2. Run the first instance of the java test:
> <path-to-the-tested-jdk>/bin/java JColorChooserDnDTest
3. Select a color in the color chooser
4. Run the second instance of the java test:
> <path-to-the-tested-jdk>/bin/java JColorChooserDnDTest
5. Drag and drop the selected color from the first color chooser
preview panel to the second color chooser preview panel
6. If the color is dragged to the second color chooser then the test passes.
<applet width="500" height="1" code="bug8065098.class">
</applet>
</body>
</html>
\ No newline at end of file
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import javax.swing.JApplet;
/*
* @test
* @bug 8065098
* @summary JColorChooser no longer supports drag and drop
* between two JVM instances
* @run applet/manual=yesno bug8065098.html
*/
public class bug8065098 extends JApplet {
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册