Bug 281335 - [typing] document listener notification should be more resilient to client errors
Summary: [typing] document listener notification should be more resilient to client er...
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 3.5   Edit
Hardware: All All
: P2 major (vote)
Target Milestone: 3.6 M7   Edit
Assignee: Dani Megert CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-24 06:44 EDT by Robert Konigsberg CLA
Modified: 2010-04-08 05:01 EDT (History)
3 users (show)

See Also:


Attachments
First error dialog (14.83 KB, image/jpeg)
2009-06-24 21:17 EDT, Robert Konigsberg CLA
no flags Details
Second error dialog (25.01 KB, image/jpeg)
2009-06-24 21:18 EDT, Robert Konigsberg CLA
no flags Details
Error Log trimed to June 24 (285.66 KB, application/octet-stream)
2009-06-24 21:20 EDT, Robert Konigsberg CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Konigsberg CLA 2009-06-24 06:44:31 EDT
Build ID: I20090611-1540

Steps To Reproduce:
Delete a large block of lines in the Java editor with Ctrl-D. I don't know more

More information:
It generates two error log entries:

"Delete Line" did not complete normally.  Please see the log for more information.

and

java.lang.NullPointerException
at org.tigris.subversion.subclipse.ui.wizards.CheckoutWizard.performFinish(CheckoutWizard.java:342)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:752)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:373)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3542)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1247)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1270)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1255)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1076)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3440)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3099)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:253)
at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:273)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
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.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3542)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1247)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1270)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1255)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1076)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3440)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3099)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

Worse still, when I try to type, every characte generates another error log entry: 

org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110)
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:96)
	at org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer.handleAboutToBeChanged(DocumentLineDiffer.java:794)
	at org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer.documentAboutToBeChanged(DocumentLineDiffer.java:763)
	at org.eclipse.jface.text.AbstractDocument.fireDocumentAboutToBeChanged(AbstractDocument.java:645)
	at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1148)
	at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:195)
	at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176)
	at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:181)
	at org.eclipse.jface.text.projection.ProjectionTextStore.replace(ProjectionTextStore.java:111)
	at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1150)
	at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176)
	at org.eclipse.jface.text.projection.ProjectionDocument.replace(ProjectionDocument.java:630)
	at org.eclipse.jface.text.DefaultDocumentAdapter.replaceTextRange(DefaultDocumentAdapter.java:248)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:6634)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7442)
	at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2441)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5814)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5839)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5541)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3542)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1247)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1270)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1255)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1284)
	at org.eclipse.swt.widgets.Control.insertText(Control.java:1750)
	at org.eclipse.swt.widgets.Canvas.insertText(Canvas.java:264)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4738)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
	at org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:56)
	at org.eclipse.swt.widgets.Composite.keyDown(Composite.java:516)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4654)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
	at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:202)
	at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:1750)
	at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:1821)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4712)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
	at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4284)
	at org.eclipse.swt.widgets.Display.applicationProc(Display.java:4351)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
	at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:101)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3096)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Comment 1 Robert Konigsberg CLA 2009-06-24 06:55:47 EDT
Added an additional bug for subclipse regarding their NPE at http://subclipse.tigris.org/issues/show_bug.cgi?id=933
Comment 2 Dani Megert CLA 2009-06-24 09:26:06 EDT
Can you please post the full log, otherwise it's hard to see the sequence and especially to understand what NPE has to do here. Was the wizard open or in use? I suspect a follow-up error here.
Comment 3 Robert Konigsberg CLA 2009-06-24 09:29:35 EDT
Daniel,

The follow up is as I described below, sorry if it wasn't clear. After the first error, which is related to something particularly odd with subclipse, every character generated the AssertionFailedError, which is the second log message in the report.

But, Daniel, I will be happy to upload the full log when I get home (see my note to pw in the last comment.)
Comment 4 Dani Megert CLA 2009-06-24 09:35:29 EDT
OK, so you are saying that the real cause is the subclipse bug, or did I miss something?
Comment 5 Dani Megert CLA 2009-06-24 10:00:34 EDT
Reading your subclipse bug seems to confirm this. We should be more resilient but clearly the critical issue is not with the editor but with subclipse.
Comment 6 Robert Konigsberg CLA 2009-06-24 10:37:03 EDT
Dani, that sure is what it looks like, isn't it? I'm not sure.

I'll send you the full log tonight and at least you can see the repeated post-first-error failure.
Comment 7 Robert Konigsberg CLA 2009-06-24 21:17:11 EDT
Created attachment 140045 [details]
First error dialog
Comment 8 Robert Konigsberg CLA 2009-06-24 21:18:14 EDT
Created attachment 140046 [details]
Second error dialog

*** READ *** This is what happens when I click the "Details" button on the error dialog. Notice that the OK button disappeared??? Not OK. That's yet another bug. Please advise.
Comment 9 Robert Konigsberg CLA 2009-06-24 21:20:19 EDT
Created attachment 140047 [details]
Error Log trimed to June 24
Comment 10 Dani Megert CLA 2009-06-25 03:20:37 EDT
Thanks for the log Robert. From the timestamps I suspect that this text error is not related to the wizard problem as it happened almost 10 minutes later, or are you able to reproduce it with the subversion wizard?


> This is what happens when I click the "Details" button on the
>error dialog. Notice that the OK button disappeared??? Not OK. That's yet
>another bug. Please advise.
Definitely not good. Can you please file a bug against Platform UI as this is the general status problem dialog.
Comment 11 Robert Konigsberg CLA 2009-06-25 08:02:54 EDT
Reported dialog bug as 281493.

Yeah I also do not think the wizard matters. but still... arghghg.
Comment 12 Dani Megert CLA 2010-04-08 05:01:36 EDT
Fixed in HEAD of AbstractDocument.java, rev. 1.43.
Available in builds > N20100407-2000.