Community
Participate
Working Groups
Eclipse EGit (Incubation) 1.0.0.201105261513 org.eclipse.egit.feature.group Eclipse EGit Eclipse JGit (Incubation) 1.0.0.201105251218 org.eclipse.jgit.feature.group Eclipse JGit Eclipse SDK 3.7.0.I20110526-1708 org.eclipse.sdk.ide null I get this NPE repeatedly using 3.7RC3 with latest egit: java.lang.NullPointerException at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.propertyChange(LocalResourceSaveableComparison.java:291) at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1110) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1126) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.flushLeftSide(ContentMergeViewer.java:1196) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.flushLeftSide(TextMergeViewer.java:4853) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.flushContent(TextMergeViewer.java:4877) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.flush(ContentMergeViewer.java:1168) at org.eclipse.compare.CompareEditorInput.flushViewer(CompareEditorInput.java:1293) at org.eclipse.compare.CompareEditorInput.flushViewers(CompareEditorInput.java:1262) at org.eclipse.compare.CompareEditorInput.saveChanges(CompareEditorInput.java:1247) at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.flushViewers(LocalResourceSaveableComparison.java:158) at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.performSave(LocalResourceSaveableComparison.java:132) at org.eclipse.team.ui.mapping.SaveableComparison.doSave(SaveableComparison.java:49) at org.eclipse.ui.Saveable.doSave(Saveable.java:214) at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:349) at org.eclipse.ui.internal.SaveableHelper$3.run(SaveableHelper.java:195) at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2642) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:285) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:264) at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:207) at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:144) at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1399) at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3416) at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3429) at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:54) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1531) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1257) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1294) at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:730) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3006) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4999) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4406) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8394) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2258) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3205) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:344) 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:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
The NPE is in new code: Bug 340666
Sorry, but I cannot reproduce with I20110528-0800 + JGit/EGit 1.0.0.201105191813. I will update EGit and try again in a minute.
With a little help from James I found it: 1. Select a folder (package) 2. Right click on it and drill down to Compare with > Git Index 3. Double-click on a file in Git Tree Compare view 4. Switch to left side of the Compare editor 5. Make change 6. Hit Ctrl+S => comment 0
Tried this scenario on Helios SR2 using today's egit and there it works as expected
I could reproduce this problem with todays egit on 3.7 I20110519-1138
Matthias, could you point me to the piece of code in Git Tree Compare view where the Compare editor is opened? I would like to check why working with EGit throws the NPE while others (CVS) don't see it.
I think this is done in org.eclipse.egit.ui.internal.dialogs.CompareTreeView.reactOnOpen(OpenEvent event)
Created attachment 201902 [details] mylyn/context/zip
Created attachment 201906 [details] org.eclipse.team.ui fix v01 Here is a quick fix for org.eclipse.team.ui which reverts equals with 'fileElement'. It's null in the EGit case, because this is what is returned from org.eclipse.team.ui.synchronize.SaveableCompareEditorInput.getFileElement(ICompareInput, CompareEditorInput) when opening the editor. The problem with the fix is that it's hard to verify since for some cases the Current vs Index Editor doesn't open at all while for others it opens two editors! I also noticed the exception below when closing the editor. I haven't seen it before. java.lang.IllegalArgumentException at org.eclipse.core.runtime.ListenerList.remove(ListenerList.java:155) at org.eclipse.compare.structuremergeviewer.DiffNode.removeCompareInputChangeListener(DiffNode.java:124) at org.eclipse.team.ui.synchronize.SaveableCompareEditorInput.handleDispose(SaveableCompareEditorInput.java:209) at org.eclipse.compare.CompareEditorInput$4.widgetDisposed(CompareEditorInput.java:578) ... I don't think these are related to the fix itself, rather a different bug in EGit. I'm on 1.1.0.201108160920.
(In reply to comment #9) > I haven't seen it before. > java.lang.IllegalArgumentException > at org.eclipse.core.runtime.ListenerList.remove(ListenerList.java:155) James did - bug 347558.
(In reply to comment #9) > The problem with the fix is that it's hard to verify since for some cases the > Current vs Index Editor doesn't open at all while for others it opens two > editors! See bug 345631 for this problem.
This is caused by Bug 340666 in Compare.
Created attachment 204202 [details] org.eclipse.teamui fix v02 This is how it got to this bug: while fixing Bug 340666 we decided to change the dirty state on LocalResourceSaveableComparison only if the dirty state change was made to the site it refers to. We were using fileElement to distinguish that. Generally every LocalResourceSaveableComparison should know to which fileElement if refers to. But in this case SaveableCompareEditorInput that is created by egit doesn't pass it. Why? because it only passes the elements if it is supposed to control the full save lifecycle of them. Egit controls the save lifecycle himself so our LocalResourceSaveableComparison didn't really need the pointer to fileElement. However I wasn't expecting that. This fix changes the dirty handling if we don't know to which fileElement does the LocalResourceSaveableComparison refer to. All we can do then is best effort: if any of the sites of input is dirty we mark SaveableComparison as dirty. This works perfectly when there is only one editable side of compare editor but when there are two it may give false positive result for isDirty. However if null was passed to SaveableComparison than it's the best we can do. I'm thinking weather it might be a good idea fixing SaveableCompareEditorInput as well. LocalResourceSaveableComparison won't be trying to manage saving fileElement if it wasn't returned by SaveableCompareEditorInput#createFileElement but we may still pass the element to LocalResourceSaveableComparison just to know which side of compare editor does the LocalResourceSaveableComparison refer to. I don't know why was is made this way. I also think SaveableCompareEditorInput needs some tests. Clients may subclass this class and we are only testing our implementations of it.
(In reply to comment #13) > I'm thinking weather it might be a good idea fixing SaveableCompareEditorInput > as well. LocalResourceSaveableComparison won't be trying to manage saving > fileElement if it wasn't returned by > SaveableCompareEditorInput#createFileElement Maybe we should turn off editing for a contributor which failed to provide an ITypedElement expected be Saveable(s)CompareEditorInput? Would that work in this case?
Created attachment 204452 [details] Tests that don't fail I created two tests for SavableCompareEditorInput. One of them tests situation when left site is provided by SaveableCompareEditorInput#createFileElement and in the other one it is a FileElement without additional functionality. I test behavior of dirty flag and saving the left site of the editor. The problem is that the test doesn't fail even with this NPE. NPE would make a harm only if both sites of the editor were editable, and it's only logged and swallowed so it doesn't even make though to the test code. This is also how it works in egit: NPE gets logged but files get saved and marked as dirty correctly. But tests have value anyway.
(In reply to comment #14) > (In reply to comment #13) > > I'm thinking weather it might be a good idea fixing SaveableCompareEditorInput > > as well. LocalResourceSaveableComparison won't be trying to manage saving > > fileElement if it wasn't returned by > > SaveableCompareEditorInput#createFileElement > > Maybe we should turn off editing for a contributor which failed to provide an > ITypedElement expected be Saveable(s)CompareEditorInput? Would that work in this > case? I wound't go that way. We can not handle saving the left side of the editor but contributor may do it and in this case egit does. The javadoc is not precise what happens when ITypedElement is not created by Saveable(s)CompareEditorInput, but until now it left the saving lifecycle to contributor. Changing it to readonly may be considered as breaking change.
Created attachment 204457 [details] org.eclipse.teamui fix v03 Attachment 204202 [details] is extraneous. It handles also null in editorInput that shouln't be null, only fileElement can.
Created attachment 204502 [details] Tests that don't fail
*** Bug 347560 has been marked as a duplicate of this bug. ***
Created attachment 204754 [details] org.eclipse.team.ui fix with tests v04 I've added regression a test. I also removed custom handling of dirty flag when we don't know on which side we are, because this is successfully handled by upper layers of compare input.
(In reply to comment #20) > I've added regression a test. A quick comment: I don't like the idea of adding a dependency on org.eclipse.team.ui in org.eclipse.compare.tests. A better place for the test case would be the "org.eclipse.team.tests.ui" package in org.eclipse.team.tests.core (I know, the "core" part can be misleading here). Moreover, with the patch applied I got an error saying that "appendFileContents" is never used. Please check your Java>Compiler>Error/Warnings settings.
Created attachment 204957 [details] org.eclipse.team.ui fix with tests v05 Quick comment, quick fix.
Created attachment 205359 [details] org.eclipse.team.ui fix with tests v06
Created attachment 205361 [details] org.eclipse.team.ui fix with tests v06
New patch contains corrected tests. I added a listener to RuntimeLog and this way the generic test fails when NPE (or other exception) is thrown, so we don't need the third (regression) test. I added tests to the test suite and the rest is refactoring.
Created attachment 205407 [details] org.eclipse.team.ui fix with tests v07
Thanks! Fixed with 33f3884b44162a4fc6b1236e969d2804dcd07c28. Available in builds >=I20111018-0800.
This got worse! Using N20111020-2000 my log is filled with these: !SESSION 2011-10-21 08:31:59.744 ----------------------------------------------- eclipse.buildId=N20111020-2000 java.version=1.7.0 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Framework arguments: -keyring c:\eclipse\.keyring -application org.eclipse.ui.ide.workbench -showlocation Command-line arguments: -debug c:\eclipse\.options -keyring c:\eclipse\.keyring -application org.eclipse.ui.ide.workbench -showlocation -data c:\eclipse\workspaces\HEAD !ENTRY org.eclipse.compare 4 2 2011-10-21 10:11:19.602 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.compare". !STACK 0 java.lang.NullPointerException at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.propertyChange(LocalResourceSaveableComparison.java:299) at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1110) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1126) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateDirtyState(TextMergeViewer.java:3038) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.access$12(TextMergeViewer.java:3032) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.elementDirtyStateChanged(TextMergeViewer.java:1005) at org.eclipse.ui.editors.text.TextFileDocumentProvider$FileBufferListener.dirtyStateChanged(TextFileDocumentProvider.java:288) at org.eclipse.core.internal.filebuffers.TextFileBufferManager$3.run(TextFileBufferManager.java:706) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireDirtyStateChanged(TextFileBufferManager.java:704) at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer$DocumentListener.documentChanged(ResourceTextFileBuffer.java:77) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191) at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:194) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:180) at org.eclipse.text.edits.InsertEdit.performDocumentUpdating(InsertEdit.java:81) at org.eclipse.text.edits.TextEdit.traverseDocumentUpdating(TextEdit.java:917) at org.eclipse.text.edits.TextEdit.traverseDocumentUpdating(TextEdit.java:910) at org.eclipse.text.edits.TextEdit.traverseDocumentUpdating(TextEdit.java:910) at org.eclipse.text.edits.TextEditProcessor.executeDo(TextEditProcessor.java:194) at org.eclipse.text.edits.TextEdit.dispatchPerformEdits(TextEdit.java:739) at org.eclipse.text.edits.TextEditProcessor.performEdits(TextEditProcessor.java:156) at org.eclipse.ltk.core.refactoring.TextChange.performEdits(TextChange.java:277) at org.eclipse.ltk.core.refactoring.TextFileChange.access$0(TextFileChange.java:1) at org.eclipse.ltk.core.refactoring.TextFileChange$1.run(TextFileChange.java:275) at org.eclipse.ui.internal.editors.text.UISynchronizationContext.run(UISynchronizationContext.java:34) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.execute(TextFileBufferManager.java:629) at org.eclipse.ltk.core.refactoring.TextFileChange.performEdits(TextFileChange.java:287) at org.eclipse.ltk.core.refactoring.TextChange.perform(TextChange.java:238) at org.eclipse.jdt.internal.ui.text.correction.proposals.ChangeCorrectionProposal.performChange(ChangeCorrectionProposal.java:172) at org.eclipse.jdt.internal.ui.text.correction.proposals.CUCorrectionProposal.performChange(CUCorrectionProposal.java:334) at org.eclipse.jdt.internal.ui.text.correction.proposals.CUCorrectionProposal.apply(CUCorrectionProposal.java:311) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:935) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertSelectedProposalWithMask(CompletionProposalPopup.java:881) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.verifyKey(CompletionProposalPopup.java:1307) at org.eclipse.jface.text.contentassist.ContentAssistant$InternalListener.verifyKey(ContentAssistant.java:807) at org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:491) at org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5947) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5646) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1509) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2428) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:639) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2534) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:352) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431) at org.eclipse.equinox.launcher.Main.main(Main.java:1407) !ENTRY org.eclipse.compare 4 2 2011-10-21 10:11:25.499 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.compare". !STACK 0 java.lang.NullPointerException at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.propertyChange(LocalResourceSaveableComparison.java:299) at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1110) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1126) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateDirtyState(TextMergeViewer.java:3038) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.access$12(TextMergeViewer.java:3032) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.elementDirtyStateChanged(TextMergeViewer.java:1005) at org.eclipse.ui.editors.text.TextFileDocumentProvider$FileBufferListener.dirtyStateChanged(TextFileDocumentProvider.java:288) at org.eclipse.core.internal.filebuffers.TextFileBufferManager$3.run(TextFileBufferManager.java:706) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireDirtyStateChanged(TextFileBufferManager.java:704) at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.commit(ResourceFileBuffer.java:335) at org.eclipse.ltk.core.refactoring.TextFileChange.commit(TextFileChange.java:233) at org.eclipse.ltk.core.refactoring.TextChange.perform(TextChange.java:240) at org.eclipse.jdt.internal.ui.text.correction.proposals.ChangeCorrectionProposal.performChange(ChangeCorrectionProposal.java:172) at org.eclipse.jdt.internal.ui.text.correction.proposals.CUCorrectionProposal.performChange(CUCorrectionProposal.java:334) at org.eclipse.jdt.internal.ui.text.correction.proposals.CUCorrectionProposal.apply(CUCorrectionProposal.java:311) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:935) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertSelectedProposalWithMask(CompletionProposalPopup.java:881) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.verifyKey(CompletionProposalPopup.java:1307) at org.eclipse.jface.text.contentassist.ContentAssistant$InternalListener.verifyKey(ContentAssistant.java:807) at org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:491) at org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5947) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5646) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1509) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2428) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:639) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2534) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:352) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431) at org.eclipse.equinox.launcher.Main.main(Main.java:1407) !ENTRY org.eclipse.compare 4 2 2011-10-21 10:11:47.591 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.compare". !STACK 0 java.lang.NullPointerException at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.propertyChange(LocalResourceSaveableComparison.java:299) at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1110) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1126) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateDirtyState(TextMergeViewer.java:3038) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.access$12(TextMergeViewer.java:3032) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.elementDirtyStateChanged(TextMergeViewer.java:1005) at org.eclipse.ui.editors.text.TextFileDocumentProvider$FileBufferListener.dirtyStateChanged(TextFileDocumentProvider.java:288) at org.eclipse.core.internal.filebuffers.TextFileBufferManager$3.run(TextFileBufferManager.java:706) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireDirtyStateChanged(TextFileBufferManager.java:704) at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer$DocumentListener.documentChanged(ResourceTextFileBuffer.java:77) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191) at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:194) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:180) at org.eclipse.ui.texteditor.TextViewerDeleteLineTarget.deleteLine(TextViewerDeleteLineTarget.java:388) at org.eclipse.ui.texteditor.DeleteLineAction.run(DeleteLineAction.java:194) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185) at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1509) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2428) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:639) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2534) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:352) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431) at org.eclipse.equinox.launcher.Main.main(Main.java:1407) !ENTRY org.eclipse.compare 4 2 2011-10-21 10:12:29.783 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.compare". !STACK 0 java.lang.NullPointerException at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.propertyChange(LocalResourceSaveableComparison.java:299) at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1110) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1126) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateDirtyState(TextMergeViewer.java:3038) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.access$12(TextMergeViewer.java:3032) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.elementDirtyStateChanged(TextMergeViewer.java:1005) at org.eclipse.ui.editors.text.TextFileDocumentProvider$FileBufferListener.dirtyStateChanged(TextFileDocumentProvider.java:288) at org.eclipse.core.internal.filebuffers.TextFileBufferManager$3.run(TextFileBufferManager.java:706) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireDirtyStateChanged(TextFileBufferManager.java:704) at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.commit(ResourceFileBuffer.java:335) at org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter.save(DocumentAdapter.java:472) at org.eclipse.jdt.internal.core.CommitWorkingCopyOperation.executeOperation(CommitWorkingCopyOperation.java:123) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793) at org.eclipse.jdt.internal.core.CompilationUnit.commitWorkingCopy(CompilationUnit.java:391) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1377) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.execute(CompilationUnitDocumentProvider.java:1450) at org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:132) at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:69) at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118) at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75) at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65) at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:456) at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:772) at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5048) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1247) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1301) at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7177) at org.eclipse.ui.Saveable.doSave(Saveable.java:214) at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:349) at org.eclipse.ui.internal.SaveableHelper$3.run(SaveableHelper.java:195) at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2642) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:285) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:264) at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:207) at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:144) at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1399) at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3416) at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3429) at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:54) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1509) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2428) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:639) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2534) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:352) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431) at org.eclipse.equinox.launcher.Main.main(Main.java:1407) !ENTRY org.eclipse.compare 4 2 2011-10-21 10:12:38.560 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.compare". !STACK 0 java.lang.NullPointerException at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.propertyChange(LocalResourceSaveableComparison.java:299) at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1110) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1126) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateDirtyState(TextMergeViewer.java:3038) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.access$12(TextMergeViewer.java:3032) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.elementDirtyStateChanged(TextMergeViewer.java:1005) at org.eclipse.ui.editors.text.TextFileDocumentProvider$FileBufferListener.dirtyStateChanged(TextFileDocumentProvider.java:288) at org.eclipse.core.internal.filebuffers.TextFileBufferManager$3.run(TextFileBufferManager.java:706) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireDirtyStateChanged(TextFileBufferManager.java:704) at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer$DocumentListener.documentChanged(ResourceTextFileBuffer.java:77) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191) at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:194) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:180) at org.eclipse.jface.text.projection.ProjectionTextStore.replace(ProjectionTextStore.java:111) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1184) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) at org.eclipse.jface.text.projection.ProjectionDocument.replace(ProjectionDocument.java:629) at org.eclipse.jface.text.DefaultDocumentAdapter.replaceTextRange(DefaultDocumentAdapter.java:248) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7181) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:8010) at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2467) at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5922) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5952) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5646) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1509) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2428) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:639) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2534) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:352) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431) at org.eclipse.equinox.launcher.Main.main(Main.java:1407) !ENTRY org.eclipse.compare 4 2 2011-10-21 10:12:43.924 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.compare". !STACK 0 java.lang.NullPointerException at org.eclipse.team.internal.ui.synchronize.LocalResourceSaveableComparison.propertyChange(LocalResourceSaveableComparison.java:299) at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171) at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1110) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1126) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateDirtyState(TextMergeViewer.java:3038) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.access$12(TextMergeViewer.java:3032) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.elementDirtyStateChanged(TextMergeViewer.java:1005) at org.eclipse.ui.editors.text.TextFileDocumentProvider$FileBufferListener.dirtyStateChanged(TextFileDocumentProvider.java:288) at org.eclipse.core.internal.filebuffers.TextFileBufferManager$3.run(TextFileBufferManager.java:706) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireDirtyStateChanged(TextFileBufferManager.java:704) at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.commit(ResourceFileBuffer.java:335) at org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter.save(DocumentAdapter.java:472) at org.eclipse.jdt.internal.core.CommitWorkingCopyOperation.executeOperation(CommitWorkingCopyOperation.java:123) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:793) at org.eclipse.jdt.internal.core.CompilationUnit.commitWorkingCopy(CompilationUnit.java:391) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1377) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.execute(CompilationUnitDocumentProvider.java:1450) at org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:132) at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:69) at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118) at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75) at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65) at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:456) at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:772) at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5048) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1247) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1301) at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7177) at org.eclipse.ui.Saveable.doSave(Saveable.java:214) at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:349) at org.eclipse.ui.internal.SaveableHelper$3.run(SaveableHelper.java:195) at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2642) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:285) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:264) at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:207) at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:144) at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1399) at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3416) at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3429) at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:54) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1509) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2428) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:639) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2534) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:352) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431) at org.eclipse.equinox.launcher.Main.main(Main.java:1407)
Trivial steps to reproduce: 1. in a shared project (CVS or Git) add a new file 2. Compare With > Latest from HEAD / HEAD Revision 3. type some characters ==> NPE
I reproduced it with CVS, but not with Git. It doesn't really matter, we are not prepared for the situation when one of the sights of the comparison is null and this is the problem here.
Created attachment 205708 [details] Fixing NPE with tests
The new patch fixes problem Dani found and adds tests for it.
(In reply to comment #31) > Created attachment 205708 [details] > Fixing NPE with tests Applied as 72e049524fb42f6dcc2f3d8af5c27231b8089c37. Thanks for the quick fix Gosia. Available in builds >=N20111021-2000.