Bug 146745 - Noticeable delay whenever the selection changes
Summary: Noticeable delay whenever the selection changes
Status: VERIFIED DUPLICATE of bug 159325
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.2.2   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-06-12 22:53 EDT by Boris Bokowski CLA
Modified: 2007-06-19 15:59 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Boris Bokowski CLA 2006-06-12 22:53:36 EDT
This happened with N20060601-1100, i.e. with a build from the day before 3.2RC7 was declared.

I have all Platform UI plugins and all Mylar plugins in my workspace.  The package explorer is linked to the current editor (don't know if this is relevant).

Whenever I change the selection, I have to wait for about a second while Eclipse is busy. It does not show a busy cursor though.

Here is a stack trace obtained by pressing Ctrl-Break in the console, apparently some class path initialization is happening over and over again:

"main" prio=7 tid=0x00036080 nid=0x2e4 runnable [7e000..7fc40]
        at java.util.zip.ZipFile.getNextEntry(Native Method)
        at java.util.zip.ZipFile.access$400(Unknown Source)
        at java.util.zip.ZipFile$2.nextElement(Unknown Source)
        - locked <0x101387b0> (a java.util.zip.ZipFile)
        at org.eclipse.jdt.internal.core.util.Util.getJdkLevel(Util.java:815)
        at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(C
lasspathEntry.java:1642)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaPr
oject.java:2182)
        at org.eclipse.jdt.internal.core.DeltaProcessingState$ProjectUpdateInfo.
updateProjectReferencesIfNecessary(DeltaProcessingState.java:102)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.updateProjectRefer
ences(DeltaProcessingState.java:245)
        at org.eclipse.jdt.internal.core.SetClasspathOperation.updateProjectRefe
rencesIfNecessary(SetClasspathOperation.java:804)
        at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation(
SetClasspathOperation.java:254)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperati
on.java:720)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1737
)
        at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaMod
elOperation.java:784)
        at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject
.java:3016)
        at org.eclipse.jdt.core.JavaCore$5.run(JavaCore.java:4214)
        at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOp
eration.java:39)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperati
on.java:720)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1737
)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4023)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:419
7)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:57)
        at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(Ja
vaModelManager.java:1900)
        at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(
JavaModelManager.java:1267)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:147
0)
        at org.eclipse.jdt.internal.core.JavaProject.isOnClasspath(JavaProject.j
ava:2431)
        at org.eclipse.jdt.internal.ui.actions.ActionUtil.isOnBuildPath(ActionUt
il.java:89)
        at org.eclipse.jdt.ui.actions.FindAction.canOperateOn(FindAction.java:10
5)
        at org.eclipse.jdt.ui.actions.FindImplementorsAction.canOperateOn(FindIm
plementorsAction.java:71)
        at org.eclipse.jdt.ui.actions.FindAction.canOperateOn(FindAction.java:10
1)
        at org.eclipse.jdt.ui.actions.FindAction.selectionChanged(FindAction.jav
a:258)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionC
hanged(SelectionDispatchAction.java:255)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(S
electionDispatchAction.java:250)
        at org.eclipse.ui.part.PageBookView$4.run(PageBookView.java:246)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:843)
        at org.eclipse.ui.part.PageBookView$SelectionManager.selectionChanged(Pa
geBookView.java:244)
        at org.eclipse.ui.part.PageBookView$SelectionProvider.selectionChanged(P
ageBookView.java:310)
        at org.eclipse.ui.part.PageBookView.pageSelectionChanged(PageBookView.ja
va:885)
        at org.eclipse.ui.part.PageBookView.access$2(PageBookView.java:880)
        at org.eclipse.ui.part.PageBookView$2.selectionChanged(PageBookView.java
:154)
        at org.eclipse.search.ui.text.AbstractTextSearchViewPage$SelectionProvid
erAdapter.selectionChanged(AbstractTextSearchViewPage.java:187)
        at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:162)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:843)
        at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
        at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
        at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:160
)
        at org.eclipse.jface.viewers.StructuredViewer.updateSelection(Structured
Viewer.java:1976)
        at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredVie
wer.java:1128)
        at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(Structure
dViewer.java:1154)
        at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.j
ava:213)
        at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:207)
        at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:3
74)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav
a:419)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95
)
        at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformAct
ivator.java:78)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli
cation(EclipseAppLauncher.java:92)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ec
lipseAppLauncher.java:68)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja
va:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)
Comment 1 Boris Bokowski CLA 2006-06-12 23:24:29 EDT
Could this be a corrupt workspace?  I looked in the log if there was anything relevant, and now I found (further down) that this workspace may be corrupt - I ran out of disk space last time I had this workspace open.

BTW - is there a recommended way to proceed if you think the workspace is corrupt?  The log contains an entry from core.resources "A workspace crash was detected. The previous session did not exit normally.". Neither a full rebuild nor restarting Eclipse helped.
Comment 2 Olivier Thomann CLA 2006-10-10 21:46:06 EDT
Frederic,

This might have to do with caching the jdk level.
Comment 3 Frederic Fusier CLA 2007-06-19 15:59:01 EDT

*** This bug has been marked as a duplicate of bug 159325 ***