You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by "Vladimir Dvorak (Jira)" <ji...@apache.org> on 2021/03/25 10:31:00 UTC

[jira] [Comment Edited] (OWB-1381) Empty resolvedComponents not cached in InjectionResolver

    [ https://issues.apache.org/jira/browse/OWB-1381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17308573#comment-17308573 ] 

Vladimir Dvorak edited comment on OWB-1381 at 3/25/21, 10:30 AM:
-----------------------------------------------------------------

Please notice, that I've modified InjectionResolver to catch the problem, so  line 573 is added by me:

{{{{InjectionResolver.implResolveByType(boolean, Type, Class<?>, Annotation...) line: 573}}}}
{{ \{{InjectionResolver.implResolveByType(boolean, Type, Annotation...) line: 426 }}}}
{{ \{{BeanManagerImpl.getBeans(Type, Annotation...) line: 664 }}}}
{{ \{{InjectableBeanManager.getBeans(Type, Annotation...) line: 131 }}}}
{{ \{{ManagedArtifactResolver.getContextualReference(BeanManager, Class<T>) line: 68 }}}}
{{ \{{ManagedArtifactResolver.resolveManagedConverter(Class<Converter>) line: 53 }}}}
{{ \{{InjectionAwareApplicationWrapper.managedOrDefaultConverter(Converter) line: 80 }}}}
{{ \{{InjectionAwareApplicationWrapper.createConverter(Class<?>) line: 60 }}}}
{{ \{{ComponentUtils.getValueToRender(FacesContext, UIComponent, Object) line: 118 }}}}
{{ \{{ComponentUtils.getValueToRender(FacesContext, UIComponent) line: 69 }}}}
{{ \{{SelectBooleanCheckboxRenderer.encodeMarkup(FacesContext, SelectBooleanCheckbox) line: 72 }}}}{{ }}

 


was (Author: skybber):
Please notice, that I've modified InjectionResolver to catch the problem, so  line 573 is added by me:

{{}}{{InjectionResolver.implResolveByType(boolean, Type, Class<?>, Annotation...) line: 573}}
{{InjectionResolver.implResolveByType(boolean, Type, Annotation...) line: 426 }}
{{BeanManagerImpl.getBeans(Type, Annotation...) line: 664 }}
{{InjectableBeanManager.getBeans(Type, Annotation...) line: 131 }}
{{ManagedArtifactResolver.getContextualReference(BeanManager, Class<T>) line: 68 }}
{{ManagedArtifactResolver.resolveManagedConverter(Class<Converter>) line: 53 }}
{{InjectionAwareApplicationWrapper.managedOrDefaultConverter(Converter) line: 80 }}
{{InjectionAwareApplicationWrapper.createConverter(Class<?>) line: 60 }}
{{ComponentUtils.getValueToRender(FacesContext, UIComponent, Object) line: 118 }}
{{ComponentUtils.getValueToRender(FacesContext, UIComponent) line: 69 }}
{{SelectBooleanCheckboxRenderer.encodeMarkup(FacesContext, SelectBooleanCheckbox) line: 72 }}

 

 

> Empty resolvedComponents not cached in InjectionResolver
> --------------------------------------------------------
>
>                 Key: OWB-1381
>                 URL: https://issues.apache.org/jira/browse/OWB-1381
>             Project: OpenWebBeans
>          Issue Type: Improvement
>          Components: Injection and Lookup
>    Affects Versions: 2.0.21
>            Reporter: Vladimir Dvorak
>            Priority: Minor
>
> YourKit performance analyzer showed that the call of InjectionResolver.implResolveByType() could be pretty expensive. The method uses caching except the case when no component is found. This case is skipped at the end of the metod as is visible at:
> [https://github.com/apache/openwebbeans/blob/master/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java#L559]
>  
> In our case we have huge JSF page with a lot of JSF Converters classes, that form injectionPointType input argument of the method. It is not clear why JSF converters are not found...
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)