-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
1.4.0
-
sparc
-
solaris_8
The bug fixed under the id 4426794 was that JColorChooser doesn't receive
DropTargetEvents even though it has an associated DropTarget. The debug output
in the test from the Comments section indicates that JColorChooser now receives DropTargetEvents.
However, even with properly dispatched DropTargetEvents, colors are not
transferred.
I found several causes of the transfer failure:
1.The Transferable created to export the color from a JColorChooser
builds the DataFlavor representing the color data using "int" as
a representation class. This causes a ClassNotFoundException, since
primitive types cannot be loaded with Class.forName(). The export of
primitive types is not supported by the data transfer subsystem, and
we have no plan to support such types in merlin.
2.The drop target associated with the label accepts only DataFlavors
with a representation class of "java.awt.Color", so the transfer fails,
since the source side exports "int" data.
3.When the color is transferred between two JColorChoosers the
representation classes match, but the source JColorChooser fails to
provide the color, causing the following exception:
java.io.IOException: Property read failed: color
at javax.swing.TransferHandler$PropertyTransferable.getTransferData(TransferHandler.java:510)
at sun.awt.dnd.SunDropTargetContextPeer.getTransferData(SunDropTargetContextPeer.java:213)
at sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:48)
at java.awt.dnd.DropTargetContext$TransferableProxy.getTransferData(DropTargetContext.java:362)
at javax.swing.TransferHandler.importData(TransferHandler.java:223)
at javax.swing.TransferHandler$DropHandler.drop(TransferHandler.java:663)
at java.awt.dnd.DropTarget.drop(DropTarget.java:400)
at javax.swing.TransferHandler$SwingDropTarget.drop(TransferHandler.java:601)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(SunDropTargetContextPeer.java:577)
at sun.awt.dnd.SunDropTargetContextPeer.access$800(SunDropTargetContextPeer.java:55)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetContextPeer.java:829)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:767)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:32)
at java.awt.Component.dispatchEventImpl(Component.java:3371)
at java.awt.Container.dispatchEventImpl(Container.java:1440)
at java.awt.Component.dispatchEvent(Component.java:3353)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3176)
at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:2964)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2837)
at java.awt.Container.dispatchEventImpl(Container.java:1426)
at java.awt.Window.dispatchEventImpl(Window.java:1531)
at java.awt.Component.dispatchEvent(Component.java:3353)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:439)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:131)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
DropTargetEvents even though it has an associated DropTarget. The debug output
in the test from the Comments section indicates that JColorChooser now receives DropTargetEvents.
However, even with properly dispatched DropTargetEvents, colors are not
transferred.
I found several causes of the transfer failure:
1.The Transferable created to export the color from a JColorChooser
builds the DataFlavor representing the color data using "int" as
a representation class. This causes a ClassNotFoundException, since
primitive types cannot be loaded with Class.forName(). The export of
primitive types is not supported by the data transfer subsystem, and
we have no plan to support such types in merlin.
2.The drop target associated with the label accepts only DataFlavors
with a representation class of "java.awt.Color", so the transfer fails,
since the source side exports "int" data.
3.When the color is transferred between two JColorChoosers the
representation classes match, but the source JColorChooser fails to
provide the color, causing the following exception:
java.io.IOException: Property read failed: color
at javax.swing.TransferHandler$PropertyTransferable.getTransferData(TransferHandler.java:510)
at sun.awt.dnd.SunDropTargetContextPeer.getTransferData(SunDropTargetContextPeer.java:213)
at sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:48)
at java.awt.dnd.DropTargetContext$TransferableProxy.getTransferData(DropTargetContext.java:362)
at javax.swing.TransferHandler.importData(TransferHandler.java:223)
at javax.swing.TransferHandler$DropHandler.drop(TransferHandler.java:663)
at java.awt.dnd.DropTarget.drop(DropTarget.java:400)
at javax.swing.TransferHandler$SwingDropTarget.drop(TransferHandler.java:601)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(SunDropTargetContextPeer.java:577)
at sun.awt.dnd.SunDropTargetContextPeer.access$800(SunDropTargetContextPeer.java:55)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetContextPeer.java:829)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:767)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:32)
at java.awt.Component.dispatchEventImpl(Component.java:3371)
at java.awt.Container.dispatchEventImpl(Container.java:1440)
at java.awt.Component.dispatchEvent(Component.java:3353)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3176)
at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:2964)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2837)
at java.awt.Container.dispatchEventImpl(Container.java:1426)
at java.awt.Window.dispatchEventImpl(Window.java:1531)
at java.awt.Component.dispatchEvent(Component.java:3353)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:439)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:131)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
- duplicates
-
JDK-4277957 BeanInfo from Introspector.getBeanInfo() undefined for multiple setters/getters
-
- Closed
-