|
|
Re: IClasspathContainer.getClasspathEntries() gets called multiple times [message #1803847 is a reply to message #1803832] |
Tue, 12 March 2019 12:13   |
Alex Kravets Messages: 561 Registered: November 2009 |
Senior Member |
|
|
Thanks Brian,
The classpath container is added during project creation. Code that does this is:
ApplicationClasspathContainer appClasspathContainer;
try {
appClasspathContainer = new ApplicationClasspathContainer(javaProject);
IPath appClasspathContainerPath = appClasspathContainer.getPath();
IClasspathEntry appEntry = JavaCore.newContainerEntry(appClasspathContainerPath, true);
JavaCore.setClasspathContainer( appClasspathContainerPath,
new IJavaProject[]{javaProject },
new IClasspathContainer[] {appClasspathContainer},
monitor);
classpathEntries.add(appEntry);
} catch (CoreException | XmlException | IOException e) {
Activator.getDefault().logError(e.getLocalizedMessage(), e);
}
javaProject.setRawClasspath((IClasspathEntry [])classpathEntries.toArray(new IClasspathEntry[classpathEntries.size()]), monitor);
If I comment out javaProject.setRawClasspath... line then IClasspathContainer.getClasspathEntries() is called exactly once, but container is not added of course, otherwise as 10+ times.
I tried debugging the call chain and it seems that JavaProject.resolveClasspath() gets called during calls to workspace refresh and different workspace modification operations.
[Updated on: Tue, 12 March 2019 13:13] Report message to a moderator
|
|
|
|
Powered by
FUDForum. Page generated in 0.01440 seconds