Bug 274232 - JDT is performing IO operations on the UI thread, causing the UI to hang
Summary: JDT is performing IO operations on the UI thread, causing the UI to hang
Status: VERIFIED DUPLICATE of bug 273308
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.5   Edit
Hardware: Macintosh Mac OS X
: P3 normal (vote)
Target Milestone: 3.5 M7   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 268877
  Show dependency tree
 
Reported: 2009-04-29 01:16 EDT by David Green CLA
Modified: 2009-04-30 04:11 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Green CLA 2009-04-29 01:16:47 EDT
I'm seeing a pinwheel (hung UI) for 0.5-1.5s every time I save a Java file.  Is this possibly related to the new API baseline tooling?  This problem does not occur when using Eclipse 3.4.2

Using:

pre. 
Version: 3.5.0
Build id: I20090421-0930
Eclipse Java Development Tools 3.5.0.v20090421-0800-7q87FEeFIiLwrHbdz0WFbcqe

The following is a sample stack trace:

pre. 
Stack trace: 
sun.nio.cs.UTF_8$Decoder.decodeArrayLoop(UTF_8.java:151)
sun.nio.cs.UTF_8$Decoder.decodeLoop(UTF_8.java:416)
java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:445)
sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
java.io.InputStreamReader.read(InputStreamReader.java:167)
java.io.BufferedReader.fill(BufferedReader.java:136)
java.io.BufferedReader.read(BufferedReader.java:157)
org.eclipse.jdt.internal.compiler.util.ManifestAnalyzer.analyzeManifestContents(ManifestAnalyzer.java:52)
org.eclipse.jdt.internal.core.ClasspathEntry.getCalledFileNames(ClasspathEntry.java:916)
org.eclipse.jdt.internal.core.ClasspathEntry.resolvedChainedLibraries(ClasspathEntry.java:879)
org.eclipse.jdt.internal.core.ClasspathEntry.resolvedChainedLibraries(ClasspathEntry.java:866)
org.eclipse.jdt.internal.core.ClasspathEntry.resolvedChainedLibraries(ClasspathEntry.java:1394)
org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2593)
org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2662)
org.eclipse.jdt.internal.core.ClasspathChange.generateDelta(ClasspathChange.java:217)
org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:1916)
org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:470)
org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:290)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:284)
org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148)
org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:313)
org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1022)
org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1809)
org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75)
org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65)
org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:456)
org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:772)
org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:4909)
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1215)
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1268)
org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7017)
org.eclipse.ui.Saveable.doSave(Saveable.java:214)
org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:338)
org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:185)
org.eclipse.ui.internal.SaveableHelper$4.run(SaveableHelper.java:266)
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2577)
org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:274)
org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:253)
org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:196)
org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:136)
org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1353)
org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3324)
org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3337)
org.eclipse.ui.internal.SaveAction.run(SaveAction.java:75)
org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:824)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:880)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:569)
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510)
org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:125)
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
org.eclipse.swt.widgets.Display.filterEvent(Display.java:930)
org.eclipse.swt.widgets.Display.sendEvent(Display.java:3486)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1230)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1253)
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1238)
org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1267)
org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1263)
org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:399)
org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:923)
org.eclipse.swt.widgets.Display.windowDelegateProc(Display.java:4660)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:56)
org.eclipse.swt.widgets.Composite.keyDown(Composite.java:515)
org.eclipse.swt.widgets.Display.windowDelegateProc(Display.java:4574)
org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
org.eclipse.swt.widgets.Widget.callSuper(Widget.java:205)
org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:1713)
org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:1783)
org.eclipse.swt.widgets.Display.windowDelegateProc(Display.java:4632)
org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4194)
org.eclipse.swt.widgets.Display.applicationProc(Display.java:4215)
org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:101)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3042)
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2401)
org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2365)
org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2217)
org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
org.eclipse.equinox.launcher.Main.run(Main.java:1287)
Comment 1 Frederic Fusier CLA 2009-04-29 03:43:50 EDT
IMO, it looks like a duplicate of bug 273308. Could you make a try with a more recent I-build (>= I20090426-2000) and let us know if you still observe this problem?
TIA
Comment 2 David Green CLA 2009-04-29 16:42:36 EDT
appears to be resolved in I20090428-0100

*** This bug has been marked as a duplicate of bug 273308 ***
Comment 3 Frederic Fusier CLA 2009-04-30 04:11:31 EDT
Verified for 3.5M7 as per comment 2