Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jdt-dev] multiple init of classpath containers

I'm currently playing around with classpathcontainer and have noticed the following:

I have a workspace with one project. When I restart my initializer is called two times on different threads. Is this intentional? strange enough in both cases the project is marked as "not open" even though I have not closed it.

The API states

The method is typically called exactly once for a given Java project and classpath container entry. This method must not be called by other clients.

but do not mention what are the "untypical" cases :-)

-------- callstack 1 -------------
Thread [Worker-7: Decoration Calculation] (Suspended)	
	OSGiClasspathContainerInitializer.initialize(IPath, IJavaProject) line: 35	
	JavaModelManager.initializeContainer(IJavaProject, IPath) line: 3195	
	JavaModelManager$10.run(IProgressMonitor) line: 3079	
Workspace.run(ICoreRunnable, ISchedulingRule, int, IProgressMonitor) line: 2292 Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2317
	JavaModelManager.initializeAllContainers(IJavaProject, IPath) line: 3141	
	JavaModelManager.getClasspathContainer(IPath, IJavaProject) line: 2111	
	JavaCore.getClasspathContainer(IPath, IJavaProject) line: 3758	
JavaProject.resolveClasspath(IClasspathEntry[], IClasspathEntry[], boolean, boolean) line: 3196 JavaProject.resolveClasspath(JavaModelManager$PerProjectInfo, boolean, boolean) line: 3360
	JavaProject.getResolvedClasspath() line: 2444	
	JavaProject.isOnClasspath(IResource) line: 2731	
	BuildpathIndicatorLabelDecorator.getOverlay(Object) line: 49	
	BuildpathIndicatorLabelDecorator.decorate(Object, IDecoration) line: 35	
	LightweightDecoratorDefinition.decorate(Object, IDecoration) line: 251	
	LightweightDecoratorManager$LightweightRunnable.run() line: 105	
	SafeRunner.run(ISafeRunnable) line: 45	
LightweightDecoratorManager.decorate(Object, DecorationBuilder, LightweightDecoratorDefinition) line: 360 LightweightDecoratorManager.getDecorations(Object, DecorationBuilder) line: 346 DecorationScheduler$1.ensureResultCached(Object, boolean, IDecorationContext) line: 386
	DecorationScheduler$1.run(IProgressMonitor) line: 362	
	Worker.run() line: 63	


 ------- callstack 2 --------------
Thread [Worker-8: Initializing Java Tooling] (Suspended)	
	OSGiClasspathContainerInitializer.initialize(IPath, IJavaProject) line: 35	
	JavaModelManager.initializeContainer(IJavaProject, IPath) line: 3195	
	JavaModelManager$10.run(IProgressMonitor) line: 3079	
Workspace.run(ICoreRunnable, ISchedulingRule, int, IProgressMonitor) line: 2292 Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2317
	JavaModelManager.initializeAllContainers(IJavaProject, IPath) line: 3141	
	JavaModelManager.getClasspathContainer(IPath, IJavaProject) line: 2111	
	JavaCore.initializeAfterLoad(IProgressMonitor) line: 4547	
	InitializeAfterLoadJob$RealJob.run(IProgressMonitor) line: 39	
	Worker.run() line: 63	




Back to the top