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

Martin Kočí commented on MYFACES-3481:
--------------------------------------

I see same results as reported with current trunk. The change in 
javax.faces.view.facelets.ValidatorHandler.getTagHandlerDelegate() is deployed 
and return the cached instance. Reproducible with:

<f:validateBean>
            <h:outputLabel>myfaces</h:outputLabel>
</f:validateBean> 


FactoryFinder._getFactory(String) line: 267     
FactoryFinder.getFactory(String) line: 206      
HtmlComponentHandler(DelegatingMetaTagHandler).<init>(TagConfig) line: 42       
HtmlComponentHandler(ComponentHandler).<init>(ComponentConfig) line: 37 
HtmlComponentHandler.<init>(ComponentConfig) line: 37   
GeneratedConstructorAccessor18.newInstance(Object[]) line: not available        
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27        
Constructor<T>.newInstance(Object...) line: 513 
AbstractTagLibrary$UserComponentHandlerFactory.createHandler(TagConfig) line: 
519       
HtmlLibrary(AbstractTagLibrary).createTagHandler(String, String, TagConfig) 
line: 98    
CompositeTagLibrary.createTagHandler(String, String, TagConfig) line: 93        
TagUnit.createFaceletHandler() line: 56 
TextUnit.createFaceletHandler() line: 104       
TagUnit(CompilationUnit).getNextFaceletHandler() line: 82       
TagUnit.getNextHandler() line: 61       
AbstractTagLibrary$ValidatorConfigWrapper.getNextHandler() line: 317    
ValidatorTagHandlerDelegate.apply(FaceletContext, UIComponent) line: 152        
ValidatorHandler(DelegatingMetaTagHandler).apply(FaceletContext, UIComponent) 
line: 53  


                
> [perf] f:validateBean re-creates facelets handlers 
> (MetaRulesetImpl,DelegatingMetaTagHandler ...) for children every time
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3481
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3481
>             Project: MyFaces Core
>          Issue Type: Improvement
>            Reporter: Martin Kočí
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.13, 2.1.7
>
>
> myfaces in Production stage:
> <f:validateBean>
>             <h:outputLabel>myfaces</h:outputLabel>
> </f:validateBean>
> (or book.xhtml in myfaces-jpa test app)
> In every request/response, this invocation appears:
> MetaRulesetImpl.<init>(Tag, Class<?>) line: 118       
> ComponentTagHandlerDelegate.createMetaRuleset(Class) line: 459        
> HtmlComponentHandler(DelegatingMetaTagHandler).createMetaRuleset(Class) line: 
> 102     
> HtmlComponentHandler.createMetaRuleset(Class) line: 42        
> HtmlComponentHandler(MetaTagHandler).setAttributes(FaceletContext, Object) 
> line: 63   
> HtmlComponentHandler(DelegatingMetaTagHandler).setAttributes(FaceletContext, 
> Object) line: 93 
> ComponentTagHandlerDelegate.apply(FaceletContext, UIComponent) line: 235      
> HtmlComponentHandler(DelegatingMetaTagHandler).apply(FaceletContext, 
> UIComponent) line: 53    
> ValidatorTagHandlerDelegate.apply(FaceletContext, UIComponent) line: 152      
> ValidatorHandler(DelegatingMetaTagHandler).apply(FaceletContext, UIComponent) 
> line: 53        
> this applies for all children of f:validateBean
> Without f:validateBean Metatag rules are created only once in production 
> stage during initial request to facelet.
> (Not sure if it is a bug - maybe something special needs to be done for 
> f:beanValidator )
> It also leads to stack bellow - but _getFactory method is synchronized and 
> slow down response times to  the same facelet:
> FactoryFinder._getFactory(String) line: 259   
> FactoryFinder.getFactory(String) line: 206    
> ConvertNumberHandler(DelegatingMetaTagHandler).<init>(TagConfig) line: 42     
> ConvertNumberHandler(FaceletsAttachedObjectHandler).<init>(TagConfig) line: 
> 42        
> ConvertNumberHandler(ConverterHandler).<init>(ConverterConfig) line: 44       
> ConvertNumberHandler.<init>(ConverterConfig) line: 57 
> NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not 
> available [native method] 
> NativeConstructorAccessorImpl.newInstance(Object[]) line: 39  
> DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27      
> Constructor<T>.newInstance(Object...) line: 513       
> AbstractTagLibrary$UserConverterHandlerFactory.createHandler(TagConfig) line: 
> 593     
> CoreLibrary(AbstractTagLibrary).createTagHandler(String, String, TagConfig) 
> line: 98  
> CompositeTagLibrary.createTagHandler(String, String, TagConfig) line: 93      
> TagUnit.createFaceletHandler() line: 56       
> TextUnit.createFaceletHandler() line: 104     
> TagUnit(CompilationUnit).getNextFaceletHandler() line: 82     
> TagUnit.getNextHandler() line: 61     
> AbstractTagLibrary$ComponentConfigWrapper.getNextHandler() line: 431  
> HtmlComponentHandler(TagHandler).<init>(TagConfig) line: 39   
> HtmlComponentHandler(MetaTagHandler).<init>(TagConfig) line: 35       
> HtmlComponentHandler(DelegatingMetaTagHandler).<init>(TagConfig) line: 40     
> HtmlComponentHandler(ComponentHandler).<init>(ComponentConfig) line: 37       
> HtmlComponentHandler.<init>(ComponentConfig) line: 37 
> GeneratedConstructorAccessor17.newInstance(Object[]) line: not available      
> DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27      
> Constructor<T>.newInstance(Object...) line: 513       
> AbstractTagLibrary$UserComponentHandlerFactory.createHandler(TagConfig) line: 
> 519     
> HtmlLibrary(AbstractTagLibrary).createTagHandler(String, String, TagConfig) 
> line: 98  
> CompositeTagLibrary.createTagHandler(String, String, TagConfig) line: 93      
> TagUnit.createFaceletHandler() line: 56       
> TextUnit.createFaceletHandler() line: 104     
> TagUnit(CompilationUnit).getNextFaceletHandler() line: 82     

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to