Heavily Broken Caching in Injector
----------------------------------
Key: WICKET-2875
URL: https://issues.apache.org/jira/browse/WICKET-2875
Project: Wicket
Issue Type: Bug
Affects Versions: 1.4.9
Environment: current trunk version
Reporter: Stefan Fussenegger
The caching implementation in org.apache.wicket.injection.Injector is heavily
broken. for each (!) component, a ConcurrentHashMap is created and
findFields(..) get called. This happens as a new container is created for every
yet unknown class instead of yet unknown ClassLoaders.
this is the erroneous code:
{code:java}
// try cache
ConcurrentHashMap<String, Field[]> container =
cache.get(clazz.getClassLoader());
if (container != null)
{
fields = container.get(clazz.getName());
}
if (fields == null)
{
fields = findFields(clazz, factory);
// write to cache
container = new ConcurrentHashMap<String, Field[]>();
container.put(clazz.getName(), fields);
cache.put(clazz.getClassLoader(), container);
}
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.