[ 
https://issues.apache.org/jira/browse/WICKET-2875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12868687#action_12868687
 ] 

Igor Vaynberg commented on WICKET-2875:
---------------------------------------

stefan, test the snapshot and make sure the code is working well and is 
actually removing the hotspot. i dont have a largish project that is using 
spring integration using wicket's ioc module so its hard for me to test and 
make sure its working correctly. once you confirm i will see if i can find the 
time to do a build.

cheers.

> 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.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8
>         Environment: current trunk version
>            Reporter: Stefan Fussenegger
>            Assignee: Igor Vaynberg
>         Attachments: wicket-2875.patch
>
>
> 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:
> // 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);
> }
> By the way: This bug was introduced with the fix of WICKET-625 in revision 
> 830070 dated 0ct 27, 2009

-- 
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