[
https://issues.jboss.org/browse/JBIDE-12771?page=com.atlassian.jira.plugi...
]
Viacheslav Kabanovich commented on JBIDE-12771:
-----------------------------------------------
This cache is totally cleaned by TypeResolutionCache.getInstance().clean() at every build
by KBBuilder. I decided that it is not safe enough to try to keep this cache updated by
IElementChangedListener, it is sufficient to gain speed between builds, and at a new build
refresh each loaded type.
I think that your problem can be solved by calling
TypeResolutionCache.getInstance().clean() in JaxrsProjectConfigurator.getJaxRsVersion()
before requesting types. Adding facets is a rare operation and will not deteriorate the
expected performance of the cache.
EclipseJavaUtil never evicts its cache when projects are deleted (or
their classpath change)
--------------------------------------------------------------------------------------------
Key: JBIDE-12771
URL:
https://issues.jboss.org/browse/JBIDE-12771
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: common/jst/core
Affects Versions: 3.3.1
Reporter: Fred Bricon
Assignee: Viacheslav Kabanovich
Fix For: 4.0.0.Beta1
When calling EclipseJavaUtil#findType(javaProject, qualifiedName) we hit a cache of
ITypes using the project name has key.
Problem is, the cache is never updated if the project is deleted, or its classpath
changes. This directly causes issues like JBIDE-12727, where we find an IType entry in a
project's classpath which has the same name as a previously deleted project.
Everything is static in EclipseJavaUtil so we won't be able to implement
IElementChangedListener directly. I believe you should had some new method in
EclipseJavaUtil, like evict(key), that'd be called by an other
IElementChangedListener, registered on plugin startup.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira