Christoph,
Is this something you are seeing in recent times? I don't see much has
changed in this
area with the last one was around bug 525597.
In any case, can you raise a bug to continue the discussion?
Regards,
Jay
-----"jdt-dev" <jdt-dev-bounces@xxxxxxxxxxx
<mailto:jdt-dev-bounces@xxxxxxxxxxx>> wrote: -----
To: "Eclipse JDT general developers list." <jdt-dev@xxxxxxxxxxx
<mailto:jdt-dev@xxxxxxxxxxx>>
From: "Christoph Läubrich"
Sent by: "jdt-dev"
Date: 04/15/2021 11:39AM
Subject: [EXTERNAL] [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
_______________________________________________
jdt-dev mailing list
jdt-dev@xxxxxxxxxxx <mailto:jdt-dev@xxxxxxxxxxx>
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jdt-dev
<https://www.eclipse.org/mailman/listinfo/jdt-dev>
_______________________________________________
jdt-dev mailing list
jdt-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jdt-dev