Bug 347557 - [Edit] NPE when saving a file in a compare editor (always)
Summary: [Edit] NPE when saving a file in a compare editor (always)
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Compare (show other bugs)
Version: 3.7   Edit
Hardware: All All
: P1 major (vote)
Target Milestone: 3.8 M3   Edit
Assignee: Malgorzata Janczarska CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 347560 (view as bug list)
Depends on:
Blocks: 275153 347560
  Show dependency tree
 
Reported: 2011-05-28 15:29 EDT by James Blackburn CLA
Modified: 2012-08-09 03:34 EDT (History)
5 users (show)

See Also:


Attachments
mylyn/context/zip (2.15 KB, application/octet-stream)
2011-08-22 05:53 EDT, Tomasz Zarna CLA
no flags Details
org.eclipse.team.ui fix v01 (1.70 KB, patch)
2011-08-22 07:08 EDT, Tomasz Zarna CLA
no flags Details | Diff
org.eclipse.teamui fix v02 (3.40 KB, patch)
2011-09-28 12:38 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
Tests that don't fail (11.32 KB, patch)
2011-10-03 11:38 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
org.eclipse.teamui fix v03 (2.01 KB, patch)
2011-10-03 12:07 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
Tests that don't fail (11.07 KB, patch)
2011-10-04 07:15 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
org.eclipse.team.ui fix with tests v04 (16.81 KB, patch)
2011-10-07 10:16 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
org.eclipse.team.ui fix with tests v05 (15.97 KB, patch)
2011-10-11 11:36 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
org.eclipse.team.ui fix with tests v06 (4.44 KB, patch)
2011-10-17 13:53 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
org.eclipse.team.ui fix with tests v06 (14.04 KB, patch)
2011-10-17 14:13 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
org.eclipse.team.ui fix with tests v07 (13.51 KB, patch)
2011-10-18 06:05 EDT, Malgorzata Janczarska CLA
no flags Details | Diff
Fixing NPE with tests (4.24 KB, patch)
2011-10-21 07:05 EDT, Malgorzata Janczarska CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description James Blackburn CLA 2011-05-28 15:29:16 EDT
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)
Comment 1 James Blackburn CLA 2011-05-28 15:42:58 EDT
The NPE is in new code: Bug 340666
Comment 2 Tomasz Zarna CLA 2011-05-30 05:48:06 EDT
Sorry, but I cannot reproduce with I20110528-0800 + JGit/EGit 1.0.0.201105191813. I will update EGit and try again in a minute.
Comment 3 Tomasz Zarna CLA 2011-05-30 06:15:36 EDT
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
Comment 4 Matthias Sohn CLA 2011-06-02 18:38:56 EDT
Tried this scenario on Helios SR2 using today's egit and there it works as expected
Comment 5 Matthias Sohn CLA 2011-06-02 18:46:09 EDT
I could reproduce this problem with todays egit on 3.7 I20110519-1138
Comment 6 Tomasz Zarna CLA 2011-06-06 04:27:36 EDT
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.
Comment 7 Matthias Sohn CLA 2011-06-28 18:48:44 EDT
I think this is done in org.eclipse.egit.ui.internal.dialogs.CompareTreeView.reactOnOpen(OpenEvent event)
Comment 8 Tomasz Zarna CLA 2011-08-22 05:53:02 EDT
Created attachment 201902 [details]
mylyn/context/zip
Comment 9 Tomasz Zarna CLA 2011-08-22 07:08:57 EDT
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.
Comment 10 Tomasz Zarna CLA 2011-08-22 07:13:18 EDT
(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.
Comment 11 Remy Suen CLA 2011-08-26 19:06:21 EDT
(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.
Comment 12 Malgorzata Janczarska CLA 2011-09-27 12:50:41 EDT
This is caused by Bug 340666 in Compare.
Comment 13 Malgorzata Janczarska CLA 2011-09-28 12:38:05 EDT
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.
Comment 14 Tomasz Zarna CLA 2011-10-03 08:13:41 EDT
(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?
Comment 15 Malgorzata Janczarska CLA 2011-10-03 11:38:47 EDT
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.
Comment 16 Malgorzata Janczarska CLA 2011-10-03 11:54:04 EDT
(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.
Comment 17 Malgorzata Janczarska CLA 2011-10-03 12:07:04 EDT
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.
Comment 18 Malgorzata Janczarska CLA 2011-10-04 07:15:32 EDT
Created attachment 204502 [details]
Tests that don't fail
Comment 19 Malgorzata Janczarska CLA 2011-10-07 04:49:11 EDT
*** Bug 347560 has been marked as a duplicate of this bug. ***
Comment 20 Malgorzata Janczarska CLA 2011-10-07 10:16:04 EDT
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.
Comment 21 Tomasz Zarna CLA 2011-10-11 05:32:21 EDT
(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.
Comment 22 Malgorzata Janczarska CLA 2011-10-11 11:36:37 EDT
Created attachment 204957 [details]
org.eclipse.team.ui fix with tests v05

Quick comment, quick fix.
Comment 23 Malgorzata Janczarska CLA 2011-10-17 13:53:32 EDT
Created attachment 205359 [details]
org.eclipse.team.ui fix with tests v06
Comment 24 Malgorzata Janczarska CLA 2011-10-17 14:13:36 EDT
Created attachment 205361 [details]
org.eclipse.team.ui fix with tests v06
Comment 25 Malgorzata Janczarska CLA 2011-10-17 14:17:19 EDT
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.
Comment 26 Malgorzata Janczarska CLA 2011-10-18 06:05:23 EDT
Created attachment 205407 [details]
org.eclipse.team.ui fix with tests v07
Comment 27 Tomasz Zarna CLA 2011-10-18 06:18:17 EDT
Thanks! Fixed with 33f3884b44162a4fc6b1236e969d2804dcd07c28. Available in builds >=I20111018-0800.
Comment 28 Dani Megert CLA 2011-10-21 04:47:12 EDT
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)
Comment 29 Dani Megert CLA 2011-10-21 05:06:42 EDT
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
Comment 30 Malgorzata Janczarska CLA 2011-10-21 05:31:02 EDT
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.
Comment 31 Malgorzata Janczarska CLA 2011-10-21 07:05:46 EDT
Created attachment 205708 [details]
Fixing NPE with tests
Comment 32 Malgorzata Janczarska CLA 2011-10-21 07:08:07 EDT
The new patch fixes problem Dani found and adds tests for it.
Comment 33 Tomasz Zarna CLA 2011-10-21 13:15:42 EDT
(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.