Bug 31610 - IDE does hang-up
Summary: IDE does hang-up
Status: RESOLVED DUPLICATE of bug 33231
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 2.1 RC2   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-02-11 18:56 EST by Hiroyuki Inaba CLA
Modified: 2003-03-05 06:21 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hiroyuki Inaba CLA 2003-02-11 18:56:53 EST
I using Eclipse 2.0.1. 
The phenomenon that IDE does hang-up is occurred.
I want you to help. 

When the cpu clock is low, hang-up is sometimes occurred.
I sent the stack trace when hang-up is done.
I think that depends on the timing about hang-up.
I think that the problem is the locked time with synchronized is long. 
When the locked time with synchronized is shortened, hang-up has not been 
occurred. 

It is thought that the update method is good to shorten the synchrnized.
I want to get the advice from you. 

Example: org.eclipse.jdt.internal.core.JavaElement.java

[ Befre update ]

public JavaElementInfo getElementInfo() throws JavaModelException {
	JavaModelManager manager;
	synchronized(manager = JavaModelManager.getJavaModelManager()){
		Object info = manager.getInfo(this);
		if (info == null) {
			openHierarchy();
			info= manager.getInfo(this);
			if (info == null) {
				throw newNotPresentException();
			}
		}
		return (JavaElementInfo)info;
	}
}

[ After update ]  Note: "+++" is updated line.

public JavaElementInfo getElementInfo() throws JavaModelException {
	JavaModelManager manager = JavaModelManager.getJavaModelManager();
+++	synchronized(manager ){
+++		Object info = manager.getInfo(this);
+++	}
	if (info == null) {
		openHierarchy();
+++		synchronized(manager ){
+++			info= manager.getInfo(this);
+++		}
		if (info == null) {
			throw newNotPresentException();
		}
	}
	return (JavaElementInfo)info;
}

I found the long-synchrnized is 2 place in JavaElement.java, and 1 place in 
JavaProject.java. 

[ Stack Trace ] 

  Memory usage (Free/Total) = 612048/9646080 (bytes)

 (ProcessId = 0xb28, Tool ThreadId = 0x9fc)
****************************************************************
Full thread dump:

"Thread-1" prio=10 tid=0x2c0c008 nid=0x9fc waiting on monitor [0..0x7b3fd38]

"Java indexing" daemon prio=4 tid=0x8e8bd8 nid=0xc1c waiting for monitor entry 
[0x795e000..0x795fdc0]
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:306)
	- waiting to lock <86fbd90> (a 
org.eclipse.jdt.internal.core.JavaModelManager)
	at org.eclipse.jdt.internal.core.JavaProject.getJavaProjectElementInfo
(JavaProject.java:976)
	at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath0
(JavaProject.java:2057)
	at org.eclipse.jdt.internal.core.SetClasspathOperation.updateClasspath
(SetClasspathOperation.java:449)
	at 
org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation
(SetClasspathOperation.java:212)
	at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:305)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:513)
	at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1378)
	at org.eclipse.jdt.internal.core.JavaModelManager.runOperation
(JavaModelManager.java:1207)
	at org.eclipse.jdt.internal.core.JavaElement.runOperation
(JavaElement.java:574)
	at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath
(JavaProject.java:2020)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2199)
	at 
com.fujitsu.apworks.apdesigner.core.container.jick.JICKClasspathContainerInitial
izer.initialize(JICKClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.xml.XMLClasspathContainerInitializ
er.initialize(XMLClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.apw.APWClasspathContainerInitializ
er.initialize(APWClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.jbk.JBKClasspathContainerInitializ
er.initialize(JBKClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.soap.SOAPClasspathContainerInitial
izer.initialize(SOAPClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.apc.APCClasspathContainerInitializ
er.initialize(APCClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.j2ee.J2EEClasspathContainerInitial
izer.initialize(J2EEClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexAll
(IndexManager.java:262)
	at 
org.eclipse.jdt.internal.core.search.indexing.IndexManager.checkIndexConsistency
(IndexManager.java:160)
	at 
org.eclipse.jdt.internal.core.search.indexing.IndexManager.activateProcessing
(IndexManager.java:79)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:307)
	at java.lang.Thread.run(Thread.java:479)

"Snapshot" prio=5 tid=0x99ae30 nid=0x874 waiting on monitor 
[0x791f000..0x791fdc0]
	at java.lang.Object.wait(Native Method)
	- waiting on <810d1a0> (a org.eclipse.core.internal.utils.Semaphore)
	at java.lang.Object.wait(Object.java:415)
	at org.eclipse.core.internal.utils.Semaphore.acquire
(Semaphore.java:24)
	- locked <810d1a0> (a org.eclipse.core.internal.utils.Semaphore)
	at org.eclipse.core.resources.WorkspaceLock.acquire
(WorkspaceLock.java:51)
	at org.eclipse.ui.internal.UIWorkspaceLock.acquire
(UIWorkspaceLock.java:40)
	at org.eclipse.core.internal.resources.WorkManager.checkIn
(WorkManager.java:80)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation
(Workspace.java:1328)
	at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1376)
	at 
org.eclipse.core.internal.resources.DelayedSnapshotRunnable.runSnapshot
(DelayedSnapshotRunnable.java:71)
	at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run
(DelayedSnapshotRunnable.java:47)
	at java.lang.Thread.run(Thread.java:479)

"Signal Dispatcher" daemon prio=10 tid=0x8fc400 nid=0x484 waiting on monitor 
[0..0]

"JDWP Command Reader" daemon prio=5 tid=0x8fa090 nid=0x9bc runnable [0..0]

"JDWP Event Helper Thread" daemon prio=5 tid=0x8f94f0 nid=0xd3c runnable [0..0]

"JDWP Transport Listener: dt_socket" daemon prio=5 tid=0x8f8bb0 nid=0xce0 
runnable [0..0x6d5fb2c]

"Finalizer" daemon prio=9 tid=0x8ee510 nid=0xcf0 waiting on monitor 
[0x2d0f000..0x2d0fdc0]
	at java.lang.Object.wait(Native Method)
	- waiting on <83719f8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:103)
	- locked <83719f8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:157)

"Reference Handler" daemon prio=10 tid=0x2a504a0 nid=0xcd4 waiting on monitor 
[0x2ccf000..0x2ccfdc0]
	at java.lang.Object.wait(Native Method)
	- waiting on <836d7a0> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:415)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:105)
	- locked <836d7a0> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x3b5078 nid=0xd28 waiting on monitor [0x6e000..0x6fc00]
	at java.lang.Object.wait(Native Method)
	- waiting on <8180018> (a org.eclipse.core.internal.utils.Semaphore)
	at java.lang.Object.wait(Object.java:415)
	at org.eclipse.core.internal.utils.Semaphore.acquire
(Semaphore.java:24)
	- locked <8180018> (a org.eclipse.core.internal.utils.Semaphore)
	at org.eclipse.core.resources.WorkspaceLock.acquire
(WorkspaceLock.java:51)
	at org.eclipse.ui.internal.UIWorkspaceLock.acquire
(UIWorkspaceLock.java:40)
	at org.eclipse.core.internal.resources.WorkManager.checkIn
(WorkManager.java:80)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation
(Workspace.java:1328)
	at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1376)
	at org.eclipse.jdt.internal.core.JavaModelManager.runOperation
(JavaModelManager.java:1207)
	at org.eclipse.jdt.internal.core.JavaElement.runOperation
(JavaElement.java:574)
	at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath
(JavaProject.java:2020)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2199)
	at 
com.fujitsu.apworks.apdesigner.core.container.jick.JICKClasspathContainerInitial
izer.initialize(JICKClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.xml.XMLClasspathContainerInitializ
er.initialize(XMLClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.apw.APWClasspathContainerInitializ
er.initialize(APWClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.jbk.JBKClasspathContainerInitializ
er.initialize(JBKClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.soap.SOAPClasspathContainerInitial
izer.initialize(SOAPClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.apc.APCClasspathContainerInitializ
er.initialize(APCClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:2170)
	at 
com.fujitsu.apworks.apdesigner.core.container.j2ee.J2EEClasspathContainerInitial
izer.initialize(J2EEClasspathContainerInitializer.java:42)
	at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:740)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:735)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1399)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1323)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1295)
	at 
org.eclipse.jdt.internal.core.JavaProject.updatePackageFragmentRoots
(JavaProject.java:2183)
	at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath0
(JavaProject.java:2069)
	- locked <8180d08> (a 
org.eclipse.jdt.internal.core.JavaProjectElementInfo)
	at org.eclipse.jdt.internal.core.JavaProject.generateInfos
(JavaProject.java:819)
	at org.eclipse.jdt.internal.core.Openable.buildStructure
(Openable.java:83)
	at org.eclipse.jdt.internal.core.Openable.openWhenClosed
(Openable.java:405)
	at org.eclipse.jdt.internal.core.JavaProject.openWhenClosed
(JavaProject.java:1683)
	at org.eclipse.jdt.internal.core.JavaElement.openHierarchy
(JavaElement.java:521)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:308)
	- locked <86fbd90> (a org.eclipse.jdt.internal.core.JavaModelManager)
	at org.eclipse.jdt.internal.core.JavaElement.getChildren
(JavaElement.java:264)
	at org.eclipse.jdt.internal.core.Openable.hasChildren
(Openable.java:284)
	at org.eclipse.jdt.ui.StandardJavaElementContentProvider.hasChildren
(StandardJavaElementContentProvider.java:227)
	at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable
(AbstractTreeViewer.java:926)
	at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus
(AbstractTreeViewer.java:1269)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem
(AbstractTreeViewer.java:259)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren
(AbstractTreeViewer.java:243)
	at org.eclipse.jface.viewers.AbstractTreeViewer$2.run
(AbstractTreeViewer.java:646)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection
(StructuredViewer.java:688)
	at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged
(AbstractTreeViewer.java:638)
	at org.eclipse.jface.viewers.ContentViewer.setInput
(ContentViewer.java:234)
	at org.eclipse.jface.viewers.StructuredViewer.setInput
(StructuredViewer.java:875)
	at 
org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.createPartControl
(PackageExplorerPart.java:278)
	at org.eclipse.ui.internal.PartPane$4.run(PartPane.java:136)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.ui.internal.PartPane.createChildControl
(PartPane.java:134)
	at org.eclipse.ui.internal.PartPane.createControl(PartPane.java:178)
	at org.eclipse.ui.internal.ViewPane.createControl(ViewPane.java:181)
	at org.eclipse.ui.internal.PartTabFolder.createPartTab
(PartTabFolder.java:249)
	at org.eclipse.ui.internal.PartTabFolder.createControl
(PartTabFolder.java:221)
	at org.eclipse.ui.internal.PartSashContainer.createControl
(PartSashContainer.java:180)
	at org.eclipse.ui.internal.PerspectivePresentation.activate
(PerspectivePresentation.java:95)
	at org.eclipse.ui.internal.Perspective.onActivate
(Perspective.java:674)
	at org.eclipse.ui.internal.WorkbenchPage.onActivate
(WorkbenchPage.java:1552)
	at org.eclipse.ui.internal.WorkbenchWindow$7.run
(WorkbenchWindow.java:1248)
	at org.eclipse.swt.custom.BusyIndicator.showWhile
(BusyIndicator.java:66)
	at org.eclipse.ui.internal.WorkbenchWindow.setActivePage
(WorkbenchWindow.java:1235)
	at org.eclipse.ui.internal.WorkbenchWindow.restoreState
(WorkbenchWindow.java:1115)
	at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1207)
	at org.eclipse.ui.internal.Workbench.access$8(Workbench.java:1169)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:847)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:839)
	at org.eclipse.core.runtime.Platform.run(Platform.java:416)
	at org.eclipse.ui.internal.Workbench.openPreviousWorkbenchState
(Workbench.java:799)
	at org.eclipse.ui.internal.Workbench.init(Workbench.java:584)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:1296)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:798)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:432)
	at EclipseRuntimeLauncher.main(EclipseRuntimeLauncher.java:24)

"VM Thread" prio=5 tid=0x3bf258 nid=0xd40 runnable 

"VM Periodic Task Thread" prio=10 tid=0x8faf40 nid=0xd48 waiting on monitor 
"Suspend Checker Thread" prio=10 tid=0x8fb9e0 nid=0xa2c runnable
Comment 1 Philipe Mulet CLA 2003-02-12 04:58:49 EST
Did you reproduce it using a recent 2.1 integration build ?
Comment 2 Olivier Thomann CLA 2003-02-12 13:05:12 EST
What you suggest simply means to remove the synchronization. During the
openHierarchy() it could be possible to generate some infos which have not been
initialized.
Then you might end up with some code using an info that is not initialized. We
might have a dead-lock, but this is not a solution.
Could you please provide steps to reproduce and we will investigate it.
Comment 3 Olivier Thomann CLA 2003-02-27 15:59:46 EST
Did you reproduce the problem with one 2.1 integration build?
Comment 4 Hiroyuki Inaba CLA 2003-02-27 19:47:17 EST
Sorry, Our processing is added to 2.0.1. 
Therefore, it is not possible to confirm with 2.0.2 and 2.1.

The advice to synchronized was understood. 

The problem occurs by the Java Indexing thread. 
It is generated by the real path conversion of the classpath container. 
The real path conversion of the classpath container was not done in the Java 
Indexing thread. 
It is thought it is effective though it is provisional treatment.

Thanks.
Comment 5 Philipe Mulet CLA 2003-03-05 06:20:46 EST
This feels like a duplicate of bug 33231, which got addressed into 2.1 stream 
(I20030304).

No plan to backport to 2.0.x stream for now.
Comment 6 Philipe Mulet CLA 2003-03-05 06:21:02 EST

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