Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 447325

Summary: [platform] NPE in DetachedDropAgent.drop
Product: [Eclipse Project] Platform Reporter: EPP Error Reports <error-reports-inbox>
Component: UIAssignee: Stefan Xenos <sxenos>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: c4rrizo, cedric.brun, daniel_megert, eclipse, jacek.wozniak, marcel.bruch, nobody, ray, sxenos, zakgof
Version: 4.5Flags: daniel_megert: review+
Target Milestone: 4.6 RC1   
Hardware: All   
OS: All   
See Also: https://git.eclipse.org/r/71818
https://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=6ef2ad0aea0b7208066f047de8d2bcbefc65a5af
https://bugs.eclipse.org/bugs/show_bug.cgi?id=515879
Whiteboard:
Attachments:
Description Flags
Proposed patch none

Description EPP Error Reports CLA 2014-10-15 08:45:44 EDT
Hello committers,

we received a new error report for Eclipse 4.5.0.I20140918-0330.


General Information:
    anonymous-id:         cb778dfd-6956-4ebb-9e2f-81dcdcb9cf51
    eclipse-build-id:     4.5.0.I20140918-0330
    eclipse-product:      org.eclipse.epp.package.modeling.product
    operating system:     Linux 3.13.0 (x86_64) - gtk
    java-runtime-version: 1.8.0_20-b26

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.databinding.observable_1.4.1.v20140910-2107
    2. org.eclipse.core.databinding_1.4.100.v20140910-2107
    3. org.eclipse.core.runtime_3.10.0.v20140724-1132
    4. org.eclipse.e4.ui.workbench_1.2.0.v20140905-1352
    5. org.eclipse.e4.ui.workbench.swt_0.12.100.v20140908-1525
    6. org.eclipse.equinox.app_1.3.200.v20130910-1609
    7. org.eclipse.equinox.launcher_1.3.0.v20140415-2008
    8. org.eclipse.swt_3.104.0.v20140916-1012
    9. org.eclipse.ui_3.107.0.v20140911-1616
    10. org.eclipse.ui.ide.application_1.0.600.v20140909-1818
    11. org.eclipse.ui.ide_3.10.100.v20140905-0917


Error Status:

    code:                   0
    plugin:                 org.eclipse.ui_3.107.0.v20140911-1616
    message:                HIDDEN
    fingerprint:            3c84f4d0
    exception class:        java.lang.NullPointerException
    exception message:      HIDDEN
    number of children:     0
    
    java.lang.NullPointerException: HIDDEN
    at org.eclipse.e4.ui.workbench.addons.dndaddon.DetachedDropAgent.drop(DetachedDropAgent.java:60)
    at org.eclipse.e4.ui.workbench.addons.dndaddon.DragAgent.dragFinished(DragAgent.java:159)
    at org.eclipse.e4.ui.workbench.addons.dndaddon.PartDragAgent.dragFinished(PartDragAgent.java:93)
    at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.finishDrag(DnDManager.java:276)
    at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.java:243)
    at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager$1.dragDetected(DnDManager.java:87)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:127)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4464)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1388)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3803)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3413)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:637)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:580)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:141)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
   

    

Messages, stacktraces, and nested status objects may be shortened. Please visit 
http://dev.eclipse.org/recommenders/committers/confess/0.5/reports/543e6c79e4b0a3790171b478
for the complete error log.


Some general information and guidelines about how to use this bug report:

1. Feel free to move this bug to your own product and components. Please note
   that this bug is only accessible to Eclipse committers. If you move this bug
   please make sure that it's still in the "Security Advisor" group.

2. The bug contents of the fields status, resolution, keywords, and whitelist
   are presented to reporters. If you needs more information, please set the
   keyword "needinfo". This will trigger a specialized dialog asking the user
   to provide further details.

3. Use the following resolutions for the following situations:
   * CLOSED / FIXED: This bug has been fixed. Please provide additional
     information in the whiteboard field.
   * CLOSED / WORKSFORME: Use this resolution if you can't reproduce this issue
     and request further information. Please use the whiteboard text to specify
     more details what a user should provide and how.
   * CLOSED / INVALID: Use this resolution if the reported problem is a
     'user-configuration' problem. Please consider giving hints how to fix
     these issues in the whiteboard field.
   * CLOSED / NOT ECLIPSE: Use this if the problem is caused by another plugin
     not developed at Eclipse.org
   * CLOSED / MOVED: If this bug has been moved else where. Please provide more 
     information (e.g. a link) in the whiteboard field.

4. Please remember that only committers can view and comment on this bug. You
   may, however, manually add the reporting user to the bug's cc list. But keep
   in mind that the report may contains sensitive information.

5. If you are missing a feature, please file a enhancement request here:
   https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Recommenders.Incubator&component=Stacktraces
    
 

Thank you for your assistance.
Your friendly error-reports-inbox.


--
* Note: The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.
Comment 1 EPP Error Reports CLA 2014-10-15 08:45:45 EDT
I've looked up the top-3 most similar bug groups and printed the closest bug of
each group below. This report may or may not be duplicate of those (low or sim-
ilar scores for all entries may indicate that this hasn't been reported yet):

>     1. Bug 446585: [platform] Unable to resolve plug-in "platform:/plugin/org.eclipse.mylyn.tasks.ui/icons/... (err_grp: eead2761) – 17,7    
>     2. Bug 445474: Conflicting handlers for org.eclipse.ui.navigate.backwardHistory: {ActionHand... (err_grp: 711b4029) – 17,7    
>     3. Bug 445475: [p2] Error in cflow of InstallWizard.planChanged (err_grp: 3662b207) – 17,7    


If this report actually is a duplicate of those, please mark it as such. This
information helps me to improve the recommendations further for the next issue.

Thank you for your assistance.
Your friendly error-reports-inbox.
Comment 2 Marcel Bruch CLA 2014-11-16 04:45:04 EST
Moving to platform team for review.
Comment 3 EPP Error Reports CLA 2014-11-17 21:01:25 EST
*** Bug 452004 has been marked as a duplicate of this bug. ***
Comment 4 Greg PAnula CLA 2015-07-15 11:50:24 EDT
Pop-up asked me to updated this bug after encountering.

I opened the "Git Staging" view and then tried to dragged that tab to its own window.

It was the first time I had ever opened the Git Staging view.  When I tried to re-create the error and pop-up notification, I was unable to.  Maybe related to virgin run/opening of Git Staging view?

NOTE: Running eclipse remotely on a head-less box via X over ssh.  i.e. ssh -X headless "eclipse"

Remote box is Redhat, local workstation is Mint.
Comment 5 Jacek Wozniak CLA 2015-07-24 05:45:03 EDT
I can reproduce this bug once per Eclipse instance when detaching a part.
Here is a little tricky way to reproduce it but it works for me every time (and for my RCP end users).

OS: Windows 7, Aero theme.

1. Restart Eclipse
2. From a part stack, drag a part slowly to the edge of the workbench window. 

When dragging over the workbench edge, the mouse cursor changes like this:  
(a) "Hand"+frame (inside workbench - ready to be dropped) - >
(b) "Stop sign" (over edge, no frame - not possible to drop) -> 
(c) "Hand" (outer edge, no frame) -> 
(d) "Hand" + frame (possible to drop it as detached window).

3. Drop it when you are at (c):
	- the mouse pointer is on the outer edge of the window 
	- it has the hand cursor 
	- no frame is visible

then this NullPointerException occurs.

If I move the part out of the workbench (so the target frame is visible) I can not reproduce the issue and need to start over from point 1.
Comment 6 Ray Kiddy CLA 2015-09-08 17:45:50 EDT
I am not sure why eclipse suggested I hit this bug. Or rather, I saw no symptom of the problem. I am running on Ubuntu 14.04 with WOLips, a plugin for interacting with WebObjects components.

I did see this in the .log file:

!ENTRY org.eclipse.ui 4 0 2015-09-08 14:37:31.412
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
        at org.eclipse.e4.ui.workbench.addons.dndaddon.DetachedDropAgent.drop(DetachedDropAgent.java:60)
        at org.eclipse.e4.ui.workbench.addons.dndaddon.DragAgent.dragFinished(DragAgent.java:159)
        at org.eclipse.e4.ui.workbench.addons.dndaddon.PartDragAgent.dragFinished(PartDragAgent.java:93)
        at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.finishDrag(DnDManager.java:276)
        at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.java:243)
        at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager$1.dragDetected(DnDManager.java:87)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:127)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1327)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
~
Comment 7 Missing name CLA 2015-09-18 16:46:06 EDT
Hello,

I can confirm this bug happening in Ubuntu 14.04 with Eclipse Mars. I don't see a clear  pattern but when eclipse hangs it always leaves a blank tooltip like it was trying to render a javadoc or something.

Actually I thought it was the old xulrunner bug that I resolved by setting mozillia as the swt.browser, but this is clearly not the same bug.

This is the error trace:

eclipse.buildId=4.5.0.I20150603-2000
java.version=1.7.0_80
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.jee.product -showlocation
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product -showlocation

Unhandled event loop exception:

java.lang.NullPointerException
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DetachedDropAgent.drop(DetachedDropAgent.java:60)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DragAgent.dragFinished(DragAgent.java:159)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.PartDragAgent.dragFinished(PartDragAgent.java:93)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.finishDrag(DnDManager.java:276)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.java:243)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager$1.dragDetected(DnDManager.java:87)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:127)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1327)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
Comment 8 Alexander Zakusylo CLA 2015-11-10 09:02:57 EST
Scenario to reproduce in Eclipse IDE:

- Open Eclipse, open at least two editors is the same stack (java source files in my case)
- Restart Eclipse (File / Restart)
- Try to drag and drop an *inactive* editor tab out of main window (do it quickly !)


Editor does not get detached. In you check Error Log, exception is logged:

Unhandled event loop exception
java.lang.NullPointerException
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DetachedDropAgent.drop(DetachedDropAgent.java:60)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DragAgent.dragFinished(DragAgent.java:159)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.PartDragAgent.dragFinished(PartDragAgent.java:111)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.finishDrag(DnDManager.java:276)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.java:243)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager$1.dragDetected(DnDManager.java:87)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:127)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Comment 9 Alexander Zakusylo CLA 2015-11-12 04:45:58 EST
Created attachment 257892 [details]
Proposed patch
Comment 10 Nobody - feel free to take it CLA 2015-11-12 04:59:10 EST
(In reply to Alexander Zakusylo from comment #9)
> Created attachment 257892 [details]
> Proposed patch

Thanks for the patch. Can you please turn into a gerrit review?

https://wiki.eclipse.org/Platform_UI/How_to_Contribute
Comment 11 Eclipse Genie CLA 2016-05-02 15:52:29 EDT
New Gerrit change created: https://git.eclipse.org/r/71818
Comment 12 Stefan Xenos CLA 2016-05-02 15:52:49 EDT
I stumbled on this while investigating bug 492842. Fix attached.
Comment 14 Dani Megert CLA 2016-05-03 08:37:48 EDT
Setting review+ since Sergey reviewed the Gerrit change.

Guys, please set the review+ flag when reviewing and approving a change for RC1. For details see https://www.eclipse.org/eclipse/development/plans/freeze_plan_4_6.php