Hello,




with update of Tomcat to version 8.5.49 we observed issue in our application
when accessing login page. 

Application log contains StackOverflowError. There is recursive call of 
CompositionHandler.apply() method.

It seems that issue is connected with resource caching because when I set 
resources attribute cachingAllowed="false" in application xml, issue
disapears.

Could it be caused by fix of Bug 63872? 

Application was working with previous 8.5.* tomcat versions without issues.

Application uses javax.faces library version 2.2.17




-- LOG snippet

Caused by: java.lang.StackOverflowError

at java.net.URL.<init>(Unknown Source)

at java.net.URL.<init>(Unknown Source)

at sun.misc.URLClassPath$FileLoader.getResource(Unknown Source)

at sun.misc.URLClassPath$FileLoader.findResource(Unknown Source)

at sun.misc.URLClassPath$1.next(Unknown Source)

at sun.misc.URLClassPath$1.hasMoreElements(Unknown Source)

at java.net.URLClassLoader$3$1.run(Unknown Source)

at java.net.URLClassLoader$3$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader$3.next(Unknown Source)

at java.net.URLClassLoader$3.hasMoreElements(Unknown Source)

at sun.misc.CompoundEnumeration.next(Unknown Source)

at sun.misc.CompoundEnumeration.hasMoreElements(Unknown Source)

at org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.inc
(WebappClassLoaderBase.java:2691)

at org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.
hasMoreElements(WebappClassLoaderBase.java:2676)

at java.util.ServiceLoader$LazyIterator.hasNextService(Unknown Source)

at java.util.ServiceLoader$LazyIterator.hasNext(Unknown Source)

at java.util.ServiceLoader$1.hasNext(Unknown Source)

at javax.xml.parsers.FactoryFinder$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at javax.xml.parsers.FactoryFinder.findServiceProvider(Unknown Source)

at javax.xml.parsers.FactoryFinder.find(Unknown Source)

at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)

at com.sun.faces.util.Util.createSAXParserFactory(Util.java:297)

at com.sun.faces.facelets.compiler.SAXCompiler.createSAXParser(SAXCompiler.
java:527)

at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:
463)

at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:
440)

at com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124)

at com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet
(DefaultFaceletFactory.java:481)

at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100
(DefaultFaceletFactory.java:106)

at com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance
(DefaultFaceletFactory.java:199)

at com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance
(DefaultFaceletFactory.java:197)

at com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance
(DefaultFaceletCache.java:86)

at com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance
(DefaultFaceletCache.java:81)

at com.sun.faces.util.ExpiringConcurrentCache$1.call
(ExpiringConcurrentCache.java:99)

at java.util.concurrent.FutureTask.run(Unknown Source)

at com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.
java:114)

at com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet
(DefaultFaceletCache.java:124)

at com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet
(DefaultFaceletCache.java:63)

at com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet
(DefaultFaceletFactory.java:295)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
370)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
350)

at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet
(DefaultFaceletContext.java:199)

at com.sun.faces.facelets.tag.ui.CompositionHandler.apply
(CompositionHandler.java:174)

at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.
java:93)

at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.
java:87)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
312)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
371)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
350)

at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet
(DefaultFaceletContext.java:199)

at com.sun.faces.facelets.tag.ui.CompositionHandler.apply
(CompositionHandler.java:174)

at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.
java:93)

at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.
java:87)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
312)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
371)

at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:
350)

at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet
(DefaultFaceletContext.java:199)



Kind Regards,

Jan Atos



Reply via email to