JDK-7188838 : Handle null-terminated URI lists
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 8
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • OS: solaris
  • CPU: generic
  • Submitted: 2012-08-02
  • Updated: 2018-09-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Description
This is a report from the tail end of
https://bugs.openjdk.java.net/show_bug.cgi?id=100041

Adding comments and patch files contributed recently:


Comment #31 From Tim Bell 2012-07-06 11:36:22 PDT (-) [reply]

Was this issue fixed as part of SUNBUG 4899516?  If so, this report can close.

If not, please let me know if there is an existing SUNBUG number for cross
reference.

Comment #32 From Damjan Jovanovic 2012-07-06 13:17:24 PDT (-) [reply]

I'd love to say it was fixed, but it has since regressed to this:

java.awt.dnd.InvalidDnDOperationException: java.net.URISyntaxException: Illegal
character in path at index 0: 
    at
sun.awt.dnd.SunDropTargetContextPeer.getTransferData(SunDropTargetContextPeer.java:270)
    at
sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:73)
    at
java.awt.dnd.DropTargetContext$TransferableProxy.getTransferData(DropTargetContext.java:376)
    at BasicDnD$1.importData(BasicDnD.java:152)
    at javax.swing.TransferHandler$DropHandler.drop(TransferHandler.java:1536)
    at java.awt.dnd.DropTarget.drop(DropTarget.java:450)
    at
javax.swing.TransferHandler$SwingDropTarget.drop(TransferHandler.java:1274)
    at
sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(SunDropTargetContextPeer.java:537)
    at
sun.awt.X11.XDropTargetContextPeer.processDropMessage(XDropTargetContextPeer.java:184)
    at
sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetContextPeer.java:851)
    at
sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:775)
    at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:48)
    at java.awt.Component.dispatchEventImpl(Component.java:4715)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at
java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:4566)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4417)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2713)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
    at java.awt.EventQueue.access$000(EventQueue.java:101)
    at java.awt.EventQueue$3.run(EventQueue.java:666)
    at java.awt.EventQueue$3.run(EventQueue.java:664)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:680)
    at java.awt.EventQueue$4.run(EventQueue.java:678)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
    at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Comment #33 From Damjan Jovanovic 2012-07-07 01:00:35 PDT (-) [reply]

Created an attachment (id=267) [details]
Handle null-terminated URI lists

I've found why the above exception happens, it's because the URI list passed
from the desktop is sometimes null-terminated, and passing a String containing
just "\0" to the URI constructor causes that exception.

The attached patch to the jdk8/awt forest fixes the problem.

Comment #34 From Anthony Petrov 2012-07-09 13:32:29 PDT (-) [reply]

Damjan, could you please file a normal follow-up bug on bugs.sun.com, and
proceed with a review of this additional fix on the ###@###.###
alias?