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.

Reply via email to