[
https://issues.apache.org/jira/browse/TILES-505?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12858699#action_12858699
]
Boxiong Ding commented on TILES-505:
------------------------------------
I have tried Tiles 2.0.7, but Tomcat won't even start.
> DefinitionsFactoryException: XML error reading definitions under large load
> ---------------------------------------------------------------------------
>
> Key: TILES-505
> URL: https://issues.apache.org/jira/browse/TILES-505
> Project: Tiles
> Issue Type: Bug
> Components: tiles-core
> Affects Versions: 2.0.0
> Environment: Tomcat 5.5.27, Struts 2.0.6.
> Reporter: Boxiong Ding
>
> I am using Struts 2.0.6, Tiles 2.0 and Tomcat 5.5.27. The application runs
> fine in the past, but recently we did some load testing and get the following
> exception intermittently during load test:
> 2010-04-08 05:51:09,970 ERROR [http-443-Processor22] ? - End event threw
> exception
> java.lang.NoSuchMethodException: No such accessible method: addAttribute() on
> object: org.apache.tiles.definition.digester.DigesterDefinitionsReader
> at
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:250)
> at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:208)
> at org.apache.commons.digester.Rule.end(Rule.java:228)
> at org.apache.commons.digester.Digester.endElement(Digester.java:1067)
> at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.apache.commons.digester.Digester.parse(Digester.java:1591)
> at
> org.apache.tiles.definition.digester.DigesterDefinitionsReader.read(DigesterDefinitionsReader.java:158)
> at
> org.apache.tiles.definition.UrlDefinitionsFactory.readDefinitions(UrlDefinitionsFactory.java:257)
> at
> org.apache.tiles.definition.UrlDefinitionsFactory.getComponentDefinitions(UrlDefinitionsFactory.java:116)
> at
> org.apache.tiles.definition.UrlDefinitionsFactory.getDefinition(UrlDefinitionsFactory.java:136)
> at
> org.apache.tiles.impl.BasicTilesContainer.getDefinition(BasicTilesContainer.java:463)
> at
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:363)
> at
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:345)
> at
> org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:107)
> at
> org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
> at
> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
> and immediately with the following exceptions:
> 2010-04-08 05:51:09,970 ERROR [http-443-Processor38] ? -
> ApplicationSessionAwareInterceptor:
> org.apache.tiles.definition.DefinitionsFactoryException: XML error reading
> definitions.
> at
> org.apache.tiles.definition.digester.DigesterDefinitionsReader.read(DigesterDefinitionsReader.java:161)
> at
> org.apache.tiles.definition.UrlDefinitionsFactory.readDefinitions(UrlDefinitionsFactory.java:257)
> at
> org.apache.tiles.definition.UrlDefinitionsFactory.getComponentDefinitions(UrlDefinitionsFactory.java:116)
> at
> org.apache.tiles.definition.UrlDefinitionsFactory.getDefinition(UrlDefinitionsFactory.java:136)
> at
> org.apache.tiles.impl.BasicTilesContainer.getDefinition(BasicTilesContainer.java:463)
> at
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:363)
> at
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:345)
> at
> org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:107)
> at
> org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
> at
> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
> Both exceptions are from DigesterDefinitionsReader.java and root cause for
> the second one is "org.xml.sax.SAXException: FWK005 parse may not be called
> while parsing.".
> I am wondering if tiles is thread safe in reading xml definitions. What I
> understand is it is using Xerces parser to parse tiles.xml, but Xerces parser
> is not thread safe [http://xerces.apache.org/xerces2-j/faq-dom.html], so
> there should be some synchronization.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.