Search code examples
jsfjsf-2websphere

WebSphere web container threads blocked while loading JSF Expression Factory


I am using WAS 8, JSF 2 (Apache MyFaces) During performance testing, we noticed that some of the web container threads are getting blocked while loading JSF Expression Factory. Find log below from thread dump

Any suggestion on how to avoid this will be useful. Why JSF is loading the classes for every new instance creation of javax.el.expressionfactory?

java/lang/ClassLoader.loadClass(ClassLoader.java:627(Compiled Code)) at
javax/el/ExpressionFactory.newInstance(ExpressionFactory.java:175(Compiled Code)) at
javax/el/ExpressionFactory.newInstance(ExpressionFactory.java:107(Compiled Code)) at
javax/el/BeanELResolver.invoke(BeanELResolver.java:404(Compiled Code)) at
javax/el/CompositeELResolver.invoke(CompositeELResolver.java:137(Compiled Code)) at
org/apache/el/parser/AstValue.getValue(AstValue.java:162(Compiled Code)) at
org/apache/el/ValueExpressionImpl.getValue(ValueExpressionImpl.java:283(Compiled Code)) at
org/apache/myfaces/view/facelets/el/TagValueExpression.getValue(TagValueExpression.java:85(Compiled Code)) at
org/apache/el/parser/AstIdentifier.getValue(AstIdentifier.java:67(Compiled Code)) at
org/apache/el/ValueExpressionImpl.getValue(ValueExpressionImpl.java:283(Compiled Code)) at
org/apache/myfaces/view/facelets/el/ELText$ELTextVariable.toString(ELText.java:202(Compiled Code)) at
org/apache/myfaces/view/facelets/el/ELText$ELTextComposite.toString(ELText.java:134(Compiled Code)) at
org/apache/myfaces/view/facelets/compiler/AttributeInstruction.write(AttributeInstruction.java:51(Compiled Code)) at
org/apache/myfaces/view/facelets/compiler/UIInstructions.encodeBegin(UIInstructions.java:46(Compiled Code)) at
org/apache/myfaces/view/facelets/compiler/UILeaf.encodeAll(UILeaf.java:214(Compiled Code)) at
javax/faces/component/UIComponent.encodeAll(UIComponent.java:622(Compiled Code)) at
javax/faces/component/UIComponent.encodeAll(UIComponent.java:622(Compiled Code)) at
org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1320(Compiled Code)) at
org/apache/myfaces/application/ViewHandlerImpl.renderView(ViewHandlerImpl.java:263(Compiled Code)) at
org/apache/myfaces/lifecycle/RenderResponseExecutor.execute(RenderResponseExecutor.java:85(Compiled Code)) at
org/apache/myfaces/lifecycle/LifecycleImpl.render(LifecycleImpl.java:239(Compiled Code)) at
javax/faces/webapp/FacesServlet.service(FacesServlet.java:191(Compiled Code)) at
com/ibm/ws/cache/servlet/ServletWrapper.serviceProxied(ServletWrapper.java:307(Compiled Code)) at
com/ibm/ws/cache/servlet/CacheHook.handleFragment(CacheHook.java:562(Compiled Code)) at
com/ibm/ws/cache/servlet/CacheHook.handleServlet(CacheHook.java:255(Compiled Code)) at
com/ibm/ws/cache/servlet/ServletWrapper.service(ServletWrapper.java:259(Compiled Code)) at
com/ibm/ws/webcontainer/servlet/ServletWrapper.service(ServletWrapper.java:1224(Compiled Code)) at
com/ibm/ws/webcontainer/servlet/ServletWrapper.handleRequest(ServletWrapper.java:774(Compiled Code))

Solution

  • This appears to be a recently resolved (but as yet not shipped in a fixpack) APAR, PM78648.

    http://www-01.ibm.com/support/docview.wss?uid=swg24034243&myns=swgws&mynp=OCSSEQTP&mync=R

    I'd suggest opening a ticket with IBM and requesting an interim fix so you can continue your performance testing.