JDK-4906989 : Drag and drop can cause EXCEPTION_ACCESS_VIOLATION
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.4.2
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_2000
  • CPU: x86
  • Submitted: 2003-08-14
  • Updated: 2003-08-20
  • Resolved: 2003-08-20
Related Reports
Duplicate :  
Description

Name: gm110360			Date: 08/14/2003


FULL PRODUCT VERSION :
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)

FULL OS VERSION :
Microsoft Windows 2000 [Version 5.00.2195]

EXTRA RELEVANT SYSTEM CONFIGURATION :
Compaq Evo D51S/Intel P4 2.4GHz

A DESCRIPTION OF THE PROBLEM :
Using Drag & Drop with sources from outside the VM can/will cause the VM to crash.



STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Copy the sourcecode (HTML) below to a file

1) Start the MetalWorks Demo included with java1.4.2
2) Choose (MenuBar)File->New
3) Start IE (ver 6.0.2600.000 in this case)
4) in IE navigate to the test case

5) double click on Facilities in ie (very fast - it seems to make the difference)
6) Drag the text to any place in the demo which is not a drop target.
7) goto 5

If the cursor indicats that drop is not supprted then drop the text
the VM will then exit abruptly

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
the test (facilites) is always dropped or it fails but without crashing the vm
ACTUAL -
works some times, othertimes the VM crashes...

ERROR MESSAGES/STACK TRACES THAT OCCUR :
C:\Java\j2sdk1.4.2\demo\jfc\Metalworks>java -jar Metalworks.jar
java.lang.NullPointerException
        at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsSet(Unknown
 Source)
        at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsArray(Unkno
wn Source)
        at sun.awt.dnd.SunDropTargetContextPeer.getTransferDataFlavors(Unknown S
ource)
        at java.awt.dnd.DropTargetContext.getCurrentDataFlavors(Unknown Source)
        at java.awt.dnd.DropTargetDragEvent.getCurrentDataFlavors(Unknown Source
)
        at javax.swing.TransferHandler$DropHandler.dragEnter(Unknown Source)
        at java.awt.dnd.DropTarget.dragEnter(Unknown Source)
        at javax.swing.TransferHandler$SwingDropTarget.dragEnter(Unknown Source)

        at sun.awt.dnd.SunDropTargetContextPeer.processEnterMessage(Unknown Sour
ce)
        at sun.awt.dnd.SunDropTargetContextPeer.access$500(Unknown Source)
        at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEnterEve
nt(Unknown Source)
        at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Un
known Source)
        at sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.trackMouseEnterExit(Unknown Source)
        at java.awt.LightweightDispatcher.processDropTargetEvent(Unknown Source)

        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x4
Function=[Unknown.]
Library=(N/A)

NOTE: We are unable to locate the function name symbol for the error
      just occurred. Please refer to release documentation for possible
      reason and solutions.


Current Java thread:
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Dynamic libraries:
0x00400000 - 0x00406000         C:\WINNT\system32\java.exe
0x77F80000 - 0x77FFB000         C:\WINNT\System32\ntdll.dll
0x77DB0000 - 0x77E0B000         C:\WINNT\system32\ADVAPI32.dll
0x77E80000 - 0x77F35000         C:\WINNT\system32\KERNEL32.DLL
0x77D30000 - 0x77D9E000         C:\WINNT\system32\RPCRT4.DLL
0x78000000 - 0x78046000         C:\WINNT\system32\MSVCRT.dll
0x08000000 - 0x08136000         C:\Program Files\Java\j2re1.4.2\bin\client\jvm.d
ll
0x77E10000 - 0x77E74000         C:\WINNT\system32\USER32.dll
0x77F40000 - 0x77F7C000         C:\WINNT\system32\GDI32.DLL
0x77570000 - 0x775A0000         C:\WINNT\system32\WINMM.dll
0x10000000 - 0x10007000         C:\Program Files\Java\j2re1.4.2\bin\hpi.dll
0x007C0000 - 0x007CE000         C:\Program Files\Java\j2re1.4.2\bin\verify.dll
0x007D0000 - 0x007E8000         C:\Program Files\Java\j2re1.4.2\bin\java.dll
0x007F0000 - 0x007FD000         C:\Program Files\Java\j2re1.4.2\bin\zip.dll
0x18270000 - 0x1837A000         C:\Program Files\Java\j2re1.4.2\bin\awt.dll
0x77800000 - 0x7781D000         C:\WINNT\system32\WINSPOOL.DRV
0x75E60000 - 0x75E7A000         C:\WINNT\system32\IMM32.dll
0x77A50000 - 0x77B3C000         C:\WINNT\system32\ole32.dll
0x18380000 - 0x183D0000         C:\Program Files\Java\j2re1.4.2\bin\fontmanager.
dll
0x51000000 - 0x51076000         C:\WINNT\system32\ddraw.dll
0x728A0000 - 0x728A6000         C:\WINNT\system32\DCIMAN32.dll
0x5C000000 - 0x5C0E4000         C:\WINNT\system32\D3DIM700.DLL
0x6E420000 - 0x6E426000         C:\WINNT\System32\INDICDLL.dll
0x77920000 - 0x77943000         C:\WINNT\system32\imagehlp.dll
0x72A00000 - 0x72A2D000         C:\WINNT\system32\DBGHELP.dll
0x690A0000 - 0x690AB000         C:\WINNT\system32\PSAPI.DLL

Heap at VM Abort:
Heap
 def new generation   total 576K, used 94K [0x10010000, 0x100b0000, 0x104f0000)
  eden space 512K,  10% used [0x10010000, 0x1001d4a0, 0x10090000)
  from space 64K,  64% used [0x100a0000, 0x100aa5b0, 0x100b0000)
  to   space 64K,   0% used [0x10090000, 0x10090000, 0x100a0000)
 tenured generation   total 1408K, used 561K [0x104f0000, 0x10650000, 0x14010000
)
   the space 1408K,  39% used [0x104f0000, 0x1057c498, 0x1057c600, 0x10650000)
 compacting perm gen  total 5376K, used 5200K [0x14010000, 0x14550000, 0x1801000
0)
   the space 5376K,  96% used [0x14010000, 0x14524230, 0x14524400, 0x14550000)

Local Time = Thu Aug 14 20:55:00 2003
Elapsed Time = 11
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2-b28 mixed mode)
#
# An error report file has been saved as hs_err_pid1984.log.
# Please refer to the file for further information.
#


REPRODUCIBILITY :
This bug can be reproduced often.

---------- BEGIN SOURCE ----------
<html>
<head>
<title>Facilities Home</title>
</head>

<body>
<p align="center"><font face="Arial" size="5"><strong>Welcome to the Facilties Web Site</strong></font></p>
</body>
</html>
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
don't use drag and drop.
(Incident Review ID: 199214) 
======================================================================

Comments
EVALUATION Commit to fix in Tiger (crash). ###@###.### 2003-08-15 Name: dsR10078 Date: 08/18/2003 When a drag enters the drop target in a Java application, the Java DnD subsystem receives the IDataObject that represents the transfer data provided by the drag source and invokes EnumFormatEtc on it to retrieve the available formats. For some reason, the IDataObject provided by the IE drag source occasionally returns E_OUTOFMEMORY (0x8007000E) from EnumFormatEtc. This behavior can be reproduced with IDataObject Viewer provided with MSVC 6.0. The Java application crashes, since the Java DnD subsystem doesn't handle this error condition properly. The same crash is documented in 4870762 and it was fixed under that bug id. The fix was integrated in 1.4.1_05, 1.4.2_02 and 1.5.0. I verified that the crash is reproducible on 1.4.2 without that fix and not reproducible with that fix. ###@###.### 2003-08-18 ======================================================================
18-08-2003