[E-Lang] Bug Report: Drag Drop Mystery

Mark S. Miller markm@caplet.com
Wed, 07 Mar 2001 22:27:20 -0800


--=====================_35228251==_.ALT
Content-Type: text/plain; charset="us-ascii"

Apologies for the lack of context, but this is of sufficiently general 
interest that I thought I'd send it to the list.  I started from 
"dragDrop.e", a test file written by MarcS demonstrating the mysterious 
inability to use drag-n-drop from E using JDK 1.3.


MarcS, Here's the relevant java stack trace

java.lang.NullPointerException
  at sun.awt.windows.WDragSourceContextPeer.startDrag(WDragSourceContextPeer.java:120)
  at java.awt.dnd.DragSource.startDrag(DragSource.java:265)
  at java.awt.dnd.DragSource.startDrag(DragSource.java:358)
  at java.awt.dnd.DragGestureEvent.startDrag(DragGestureEvent.java:188)

The relevant piece of your E code is:

    >             try {
    >                 dragEvent startDrag(cursor,
    >                                     eObject,
    >                                     dragSourceListener)
    >             } catch err {
    >                 prob := err
    >                 println("dragevent err: " + err)
    >             }
    >             println ("started drag")

The reason you weren't getting anything in the trace file is you were 
catching the exception.  The reason you weren't seeing anything but the 
exception message itself -- no stack trace -- is that's all you print above. 
The assignment I added was my way to catch the exception so I could later 
say "prob javaStack()".  If you'd rethrown it, or hadn't caught it, you 
probably would have seen the stack trace in the trace file.

As to the problem itself, I can follow the problem into java.* and javax.* 
classes, as I have sources for those and Cafe is happy.  However, the 
problem occurs somewhere in sun.awt.windows.WDragSourceContextPeer, and I 
don't have sources to that.  Anyone know you know where I can get these?

My suspicion is that there's some stupid interaction between platform 
specific code in sun.awt.windows.WDragSourceContextPeer and the new 1.3 
generic deflector (Proxy) mechanism.  But it's really hard to tell without 
following this with a debugger.


        Cheers,
        --MarkM

--=====================_35228251==_.ALT
Content-Type: text/html; charset="us-ascii"

Apologies for the lack of context, but this is of sufficiently general

interest that I thought I'd send it to the list.  I started from
"dragDrop.e", a test file written by MarcS demonstrating the mysterious
inability to use drag-n-drop from E using JDK 1.3.


MarcS, Here's the relevant java stack trace

java.lang.NullPointerException
  at sun.awt.windows.WDragSourceContextPeer.startDrag(WDragSourceContextPeer.java:120)
  at java.awt.dnd.DragSource.startDrag(DragSource.java:265)
  at java.awt.dnd.DragSource.startDrag(DragSource.java:358)
  at java.awt.dnd.DragGestureEvent.startDrag(DragGestureEvent.java:188)

The relevant piece of your E code is:

    >             try {
    >                 dragEvent startDrag(cursor,
    >                                     eObject,
    >                                     dragSourceListener)
    >             } catch err {
    >                 prob := err
    >                 println("dragevent err: " + err)
    >             }
    >             println ("started drag")

The reason you weren't getting anything in the trace file is you were
catching the exception.  The reason you weren't seeing anything but the
exception message itself -- no stack trace -- is that's all you print above.
The assignment I added was my way to catch the exception so I could later
say "prob javaStack()".  If you'd rethrown it, or hadn't caught it, you
probably would have seen the stack trace in the trace file.

As to the problem itself, I can follow the problem into java.* and javax.*
classes, as I have sources for those and Cafe is happy.  However, the
problem occurs somewhere in sun.awt.windows.WDragSourceContextPeer, and I
don't have sources to that.  Anyone know you know where I can get these?

My suspicion is that there's some stupid interaction between platform
specific code in sun.awt.windows.WDragSourceContextPeer and the new 1.3
generic deflector (Proxy) mechanism.  But it's really hard to tell without
following this with a debugger.


        Cheers,
        --MarkM
--=====================_35228251==_.ALT--