Maven Doxia

Fix ArrayIndexOutOfBoundsException in XhtmlBaseSink

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.1
  • Fix Version/s: 1.1
  • Component/s: Module - Xdoc
  • Labels:
    None
  • Patch Submitted:
    Yes
  • Number of attachments :
    1

Description

Attempt to render a multi column table using XDoc:

java.lang.ArrayIndexOutOfBoundsException: 1
	at org.apache.maven.doxia.sink.XhtmlBaseSink.tableCell(XhtmlBaseSink.java:807)
	at org.apache.maven.doxia.sink.XhtmlBaseSink.tableCell(XhtmlBaseSink.java:780)
	at org.apache.maven.doxia.sink.XhtmlBaseSink.tableHeaderCell(XhtmlBaseSink.java:768)
	at org.apache.maven.doxia.parser.XhtmlBaseParser.baseStartTag(XhtmlBaseParser.java:300)
	at org.apache.maven.doxia.module.xdoc.XdocParser.handleStartTag(XdocParser.java:213)
	at org.apache.maven.doxia.parser.AbstractXmlParser.parseXml(AbstractXmlParser.java:103)
	at org.apache.maven.doxia.parser.AbstractXmlParser.parse(AbstractXmlParser.java:54)
	at org.apache.maven.doxia.module.xdoc.XdocParser.parse(XdocParser.java:93)
	at org.apache.maven.doxia.DefaultDoxia.parse(DefaultDoxia.java:63)
	at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.renderDocument(DefaultSiteRenderer.java:345)
	at org.apache.maven.doxia.siterenderer.DoxiaDocumentRenderer.renderDocument(DoxiaDocumentRenderer.java:46)
	at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.renderModule(DefaultSiteRenderer.java:272)
	at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render(DefaultSiteRenderer.java:102)
	at org.apache.maven.plugins.site.SiteMojo.renderLocale(SiteMojo.java:137)
	at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:96)

The XDocParser/XHtmlBaseParser calls sink.tableRows() always with a single-element array. This is usually not enough to describe all columns of the table individually. Hence, XHtmlBaseSink should be prepared to render a table cell that does not have a corresponding cellJustif entry. The patch simply repeats the justification of the last array element.

Last but not least, it might be worth to consider changing the default cell alignment to left alignment to match the default behavior of HTML for table body cells. Additionally, left-alignment seems to be the current behavior of the xdoc module in the alpha branch.

Issue Links

Activity

Hide
Lukas Theussl added a comment -

Fixed, thanks! Also switched to left default justification in XhtmlBaseParser.

Show
Lukas Theussl added a comment - Fixed, thanks! Also switched to left default justification in XhtmlBaseParser.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: