Hi Patrick,
  

  
confirmed, see WICKET-6631
  

  
We'll fix it as soon as possible.
  

  
Have fun
  
Sven
  
  
  

  
  
  
  
  
>   
> On 16.01.2019 at 13:56,  <Patrick Schwarzer>  wrote:
>   
>           
>   
>
> Dear Sir or Madam,
>
>   
>
>   
>
>   
>
> we have done a Performance measurement on our application, which uses Wicket 
> 7.10 to identify performance hotspots.
>
>   
>
> During this, we identified a programming issue in 
> AnnotProxyFieldValueFactory::getBeanName:
>
>   
>
>   
>
>   
>   /**
>  *  
>  *  @param  field
>   *  @return  bean name
>  */
> private  String getBeanName(final  Field field, String name,  boolean  
> required, Class<?>  generic)
> {
>   if  (Strings.isEmpty(name))
>  {
>  Class<?>   fieldType  = field.getType();
>  SimpleEntry<Class<?>, Class<?>>   keyPair  =
>   new  SimpleEntry<Class<?>, Class<?>>(fieldType, generic);
>
>  name =  beanNameCache.get(fieldType);  // BUG HERE, must be keyPair, NOT 
> fieldType
>   if  (name ==  null)
>  {
>  name = getBeanNameOfClass(contextLocator.getSpringContext(),  fieldType,  
>  generic, field.getName());
>
>   if  (name !=  null)
>  {
>   
>  String  tmpName  =  beanNameCache.putIfAbsent(keyPair, name); // keyPair is 
> inserted into the Map here
>   if  (tmpName  !=  null)
>  {
>  name =  tmpName;
>  }
>  }
>  }
> }     
>
>   
>
>   
>
> …
>
>   
>
>   
>
>   
>
> It seems, that the caching mechanism is never used, because the get call uses 
> the wrong parameter (fieldType instead of keyPair).
>
>   
>
> We are using Spring with Wicket, with many Components using @Inject 
> annotation. We figured out, that this bug slows down the inject process of 
> beans in our components significantly.
>
>   
>
>   
>
>   
>
> We also checked the current Wicket version 7.11 and 8.2, both having this 
> issues.
>
>   
>
>   
>
>   
>
> Can you confirm this bug and told us, when there will be a bugfix?
>
>   
>
>   
>
>   
>
> Kind regards
>
>   
>
>   
>
>   
>
>  PATRICK SCHWARZER
>   SOFTWARE ENGINEER
>   
> o+49 89 32175 655
>
>   TOMTEC Imaging Systems GmbH
>   Edisonstrasse 6, 85716 Unterschleissheim, Germany, Managing Director:
>  Johannes Waldinger, Dr. Thomas Piehler, HRB   235646   Amtsgericht Muenchen
>   
>
>   
>   
>
>
>   
>
>   
>
>   
>
>   
>
>   
>   
     

Reply via email to