[ 
https://issues.apache.org/jira/browse/TILES-505?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12857219#action_12857219
 ] 

Antonio Petrelli commented on TILES-505:
----------------------------------------

Try using Tiles 2.0.7.

> 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.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to