Bug 234661 - [Sync View] NPE browsing changes with CVS
Summary: [Sync View] NPE browsing changes with CVS
Status: ASSIGNED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Compare (show other bugs)
Version: 3.4   Edit
Hardware: PC Windows XP
: P3 normal with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Platform-Compare-Inbox CLA
QA Contact: Szymon Brandys CLA
URL:
Whiteboard:
Keywords: helpwanted, investigate
: 243810 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-05-29 11:54 EDT by Darin Wright CLA
Modified: 2019-09-06 15:38 EDT (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Darin Wright CLA 2008-05-29 11:54:09 EDT
eclipse.buildId=I20080528-2000
java.fullversion=J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20070201 (JIT enabled)
J9VM - 20070131_11312_lHdSMR
JIT  - 20070109_1805ifx1_r8
GC   - 200701_09
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86



I was browsing outgoing changes after updating copyrights, and I received many exceptions as follows. After re-starting Eclipse, the exceptions went away. It seemed to be specific to one file that I was trying to view (JDIThread).

org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
at org.eclipse.swt.SWT.error(SWT.java:3775)
at org.eclipse.swt.SWT.error(SWT.java:3693)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3778)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3403)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:112)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Caused by: java.lang.NullPointerException
at org.eclipse.compare.structuremergeviewer.StructureCreator.setupDocument(StructureCreator.java:155)
at org.eclipse.compare.structuremergeviewer.StructureCreator.internalCreateStructure(StructureCreator.java:101)
at org.eclipse.compare.structuremergeviewer.StructureCreator.access$0(StructureCreator.java:90)
at org.eclipse.compare.structuremergeviewer.StructureCreator$1.run(StructureCreator.java:80)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.compare.internal.Utilities.runInUIThread(Utilities.java:775)
at org.eclipse.compare.structuremergeviewer.StructureCreator.createStructure(StructureCreator.java:83)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.createStructure(StructureDiffViewer.java:158)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.refresh(StructureDiffViewer.java:136)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.setInput(StructureDiffViewer.java:107)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:350)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$2.run(StructureDiffViewer.java:74)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$6.run(StructureDiffViewer.java:325)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:322)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(StructureDiffViewer.java:310)
at org.eclipse.jdt.internal.ui.compare.JavaStructureDiffViewer.compareInputChanged(JavaStructureDiffViewer.java:140)
at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.inputChanged(StructureDiffViewer.java:281)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:251)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1603)
at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:256)
at org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:697)
at org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:524)
at org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:415)
at org.eclipse.compare.internal.CompareEditor.access$6(CompareEditor.java:385)
at org.eclipse.compare.internal.CompareEditor$3.run(CompareEditor.java:343)
at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:155)
at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
... 23 more
Comment 1 Tomasz Zarna CLA 2008-06-02 05:20:09 EDT
From the code I can see that org.eclipse.ui.texteditor.IDocumentProvider.getDocument(Object) can return null as the requested document but org.eclipse.compare.structuremergeviewer.StructureCreator.setupDocument(IDocument) is not expecting it. This will cause the NPE.

snippet from org.eclipse.compare.structuremergeviewer.StructureCreator.internalCreateStructure(Object, IProgressMonitor):
IDocument document = provider.getDocument(input);
setupDocument(document);

Darin, do you get this NPE regularly, is it reproducible?

Comment 2 Darin Wright CLA 2008-06-02 10:12:51 EDT
I do not have a reproduceable test case for this. After a re-start, the problem went away.
Comment 3 Tomasz Zarna CLA 2008-08-12 09:59:41 EDT
*** Bug 243810 has been marked as a duplicate of this bug. ***
Comment 4 Brian Lima CLA 2009-01-19 17:36:09 EST
I've seen this issue numerous times and it does effect the usefulness of the team synchronize perspective.  In my case I'm not using using a CVS repository but a CMVC server instead.  The plugins are different but the result is the same.  Every so often I can't view differences between local and report copies of a file if I use the synch perspective.  If I right click on a file and select to compare, that functions properly.

My stacktrace is below.  Is this something that could be fixed in the 3.4 maintenance stream?  

!ENTRY org.eclipse.ui 4 0 2008-11-20 16:11:18.890
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
		 at org.eclipse.swt.SWT.error(Unknown Source)
		 at org.eclipse.swt.SWT.error(Unknown Source)
		 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
		 at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
		 at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
		 at org.eclipse.ui.internal.Workbench.runEventLoop(Unknown Source)
		 at org.eclipse.ui.internal.Workbench.runUI(Unknown Source)
		 at org.eclipse.ui.internal.Workbench.access$4(Unknown Source)
		 at org.eclipse.ui.internal.Workbench$5.run(Unknown Source)
		 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
		 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)
		 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
		 at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
		 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
		 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
		 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
		 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
		 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
		 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(Unknown Source)
		 at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
		 at org.eclipse.equinox.launcher.Main.run(Unknown Source)
		 at org.eclipse.equinox.launcher.Main.main(Unknown Source)
Caused by: java.lang.NullPointerException
		 at org.eclipse.compare.structuremergeviewer.StructureCreator.setupDocument(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureCreator.internalCreateStructure(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureCreator.access$0(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureCreator$1.run(Unknown Source)
		 at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
		 at org.eclipse.compare.internal.Utilities.runInUIThread(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureCreator.createStructure(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.createStructure(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.refresh(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$StructureInfo.setInput(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$2.run(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer$6.run(Unknown Source)
		 at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.compareInputChanged(Unknown Source)
		 at org.eclipse.compare.structuremergeviewer.StructureDiffViewer.inputChanged(Unknown Source)
		 at org.eclipse.jface.viewers.ContentViewer.setInput(Unknown Source)
		 at org.eclipse.jface.viewers.StructuredViewer.setInput(Unknown Source)
		 at org.eclipse.compare.CompareViewerSwitchingPane.setInput(Unknown Source)
		 at org.eclipse.compare.CompareEditorInput.feedInput(Unknown Source)
		 at org.eclipse.compare.CompareEditorInput.createContents(Unknown Source)
		 at org.eclipse.compare.internal.CompareEditor.createCompareControl(Unknown Source)
		 at org.eclipse.compare.internal.CompareEditor.access$6(Unknown Source)
		 at org.eclipse.compare.internal.CompareEditor$3.run(Unknown Source)
		 at org.eclipse.ui.internal.UILockListener.doPendingWork(Unknown Source)
		 at org.eclipse.ui.internal.UISynchronizer$3.run(Unknown Source)
		 at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
		 ... 24 more
Comment 5 Brian Lima CLA 2009-02-12 18:33:05 EST
Is anyone looking into this problem?  It definitely impacts the usability of the team plugins.
Comment 6 Szymon Brandys CLA 2009-02-16 11:44:01 EST
(In reply to comment #5)
> Is anyone looking into this problem?  It definitely impacts the usability of
> the team plugins.

Hi Brian. As you noticed, Tomasz had tried to investigate the issue however we are on other issues right now.

Comment 7 Brian Lima CLA 2009-02-17 15:56:53 EST
(In reply to comment #6)
> Hi Brian. As you noticed, Tomasz had tried to investigate the issue however we
> are on other issues right now.
> 
I can understand this not being a high priority item but Eclipse 3.4 / RAD v7.5.x is going to be in production for a long time to come.  A persistent problem with the team plugins will just hamper developers and force them to find less desirable alternatives.  If it's a matter of debugging, I can certainly try helping.
Comment 8 Barnaby Court CLA 2009-03-18 09:23:00 EDT
Hi,  I am also using eclipse/cmvc I am unable to use the synchronization view about 95% of of the time due to this issue.  I'd be happy to help with debugging if there is anything I can do.  
Comment 9 Tomasz Zarna CLA 2009-03-18 11:06:05 EDT
Thanks for your offer Barnaby and Brian. I guess a set of reproducible steps (for a CVS) would be most valuable here.
Comment 10 Tomasz Zarna CLA 2009-03-31 10:51:05 EDT
Guys, any luck in finding reproducible steps? I don't recall seeing this exception, so any tips are welcome, even those for CMVC.
Comment 11 Barnaby Court CLA 2009-03-31 10:55:36 EDT
I have not been able to duplicate this using CVS.  Unfortunately, even though I see it regularly with CVMC I haven't been able to see anything in the log files to be able to point to the root cause of the problem.  

(In reply to comment #10)
> Guys, any luck in finding reproducible steps? I don't recall seeing this
> exception, so any tips are welcome, even those for CMVC.
> 

Comment 12 Szymon Brandys CLA 2009-03-31 12:01:08 EDT
(In reply to comment #11)
> I have not been able to duplicate this using CVS.  Unfortunately, even though I
> see it regularly with CVMC I haven't been able to see anything in the log files
> to be able to point to the root cause of the problem.  

What version of Eclipse do you use? Initially in the bug report it was I20080528-2000. Can you see the issue on the latest 3.5 integration/milestone version? Is there something specific about your workspace? Does it happen when you are comparing specific types of files. 

We are not able to reproduce the issue, so any additional details will be useful.



Comment 13 Barnaby Court CLA 2009-03-31 13:40:32 EDT
I am seeing this issue on Eclipse Version: 3.4.1, Build id: M20080911-1700.  The problem appears to show up on files that are within a project that has at least one file with a conflict.  
Comment 14 Brian Lima CLA 2009-03-31 17:57:17 EDT
I don't use Eclipse directly.  Instead I use RAD and have seen this error even in the latest RAD v7.5.2.  I don't use CVS so I can't say how to recreate using that SCM.  I've been seeing the problem specifically with the CMVC plugin and after talking to the developers of that plugin they pointed at this defect.

To reproduce I just open the synchronization view and double click on one of the entries.  I'll usually see errors in many different types of assets, from Java to XML but there are some cases that will successfully result in the compare editor to open.  I haven't noticed a specific pattern.
Comment 15 Avi CLA 2009-04-02 02:56:07 EDT
The issue with CMVC does not appear when using Eclipse 3.4 directly. However, it definitely appears on both RSA Standard Edition 7.5 and 7.5.1. Also, compare editor (from the synch window) for a CMVC file that has remote changes only - works OK. But, comparing (from the synch window) a file that has conflicts or local changes only, does not work at all..
Comment 16 Szymon Brandys CLA 2009-05-13 04:31:22 EDT
Thanks for all additional details. I was not able to reproduce on my dev version of Eclipse 3.5 though.

Removing 3.5 target milestone. Further investigation will be made in 3.6.
Comment 17 Szymon Brandys CLA 2010-04-19 07:36:16 EDT
No plan to investigate it further at this point. Setting the target to match the reality.
Comment 18 Tomasz Zarna CLA 2010-09-01 11:11:07 EDT
Without steps to reproduce having a target milestone in this particular case doesn't make much sense to me. Please let us know if the problem reappears and we will schedule it again.
Comment 19 Missing name CLA 2010-10-11 09:16:05 EDT
I am not the reporter of this original bug but may have duplicated this same problem.  Let me know if I should open a separate bug.  This occurs everytime when bring up Eclipse, double click in the Breakpoints View and exit Eclipse.

Environment:

Eclipse Platform
Version: 3.5.0.v20090611a-9gEeG1HFtQcmRThO4O3aR_fqSMvJR2sJ
Build id: I20090611-1540  

JRE1.5.0_22.

I am unable to duplicate this bug in Elipse 3.6 with Java 1.6.

Regards,
Kathy Turetzky
kathy.turetzky@compuware.com


!ENTRY org.eclipse.osgi 4 0 2010-10-11 07:48:40.764
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
	at org.eclipse.swt.SWT.error(SWT.java:3884)
	at org.eclipse.swt.SWT.error(SWT.java:3799)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3885)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3506)
	at org.eclipse.swt.widgets.Display.release(Display.java:3557)
	at org.eclipse.swt.graphics.Device.dispose(Device.java:293)
	at com.compuware.frameworks.workbench.Application.start(Unknown Source)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	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:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
Caused by: java.lang.NullPointerException
	at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsViewEventHandler$4.run(BreakpointsViewEventHandler.java:168)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 18 more
Comment 20 Remy Suen CLA 2010-10-11 09:28:49 EDT
(In reply to comment #19)
> I am not the reporter of this original bug but may have duplicated this same
> problem.  Let me know if I should open a separate bug.  This occurs everytime
> when bring up Eclipse, double click in the Breakpoints View and exit Eclipse.

This bug is about a possible error in the code that occurs when you compare changes between files and is not related to breakpoints. You should open a new bug.

> I am unable to duplicate this bug in Elipse 3.6 with Java 1.6.

However, since you cannot replicate the problem in Eclipse 3.6, then there is probably no need to actually open a bug.
Comment 21 Eclipse Webmaster CLA 2019-09-06 15:38:29 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.