Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.1.3
-
None
Description
If the <dt> tag is missing from a definition list <dl> element, for example as below:
<?xml version="1.0"?> <document url="doxia_test.html"> <body> <section name="Section"> <subsection name="Subsection"> <dl> <!-- <dt>dt</dt> --> <dd>dd</dd> </dl> </subsection> </section> </body> </document>
and the output format is PDF then the plugin crashes with EmptyStackException:
[INFO] Trace java.lang.reflect.UndeclaredThrowableException at $Proxy0.body_(Unknown Source) at org.apache.maven.doxia.module.xdoc.XdocParser.handleEndTag(XdocParser.java:256) at org.apache.maven.doxia.parser.AbstractXmlParser.parseXml(AbstractXmlParser.java:217) at org.apache.maven.doxia.parser.AbstractXmlParser.parse(AbstractXmlParser.java:137) at org.apache.maven.doxia.parser.XhtmlBaseParser.parse(XhtmlBaseParser.java:90) at org.apache.maven.doxia.module.xdoc.XdocParser.parse(XdocParser.java:104) at org.apache.maven.doxia.DefaultDoxia.parse(DefaultDoxia.java:63) at org.apache.maven.doxia.book.services.renderer.AbstractITextBookRenderer.renderSection(AbstractITextBookRenderer.java:264) at org.apache.maven.doxia.book.services.renderer.AbstractITextBookRenderer.renderChapter(AbstractITextBookRenderer.java:219) at org.apache.maven.doxia.book.services.renderer.AbstractITextBookRenderer.renderBook(AbstractITextBookRenderer.java:148) at org.apache.maven.doxia.book.DefaultBookDoxia.renderBook(DefaultBookDoxia.java:142) at org.apache.maven.doxia.plugin.DoxiaRenderBooksMojo.execute(DoxiaRenderBooksMojo.java:265) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.maven.doxia.sink.PipelineSink.invoke(PipelineSink.java:76) ... 31 more Caused by: java.util.EmptyStackException at java.util.Stack.peek(Stack.java:85) at java.util.Stack.pop(Stack.java:67) at org.apache.maven.doxia.module.itext.SinkActionContext.release(SinkActionContext.java:145) at org.apache.maven.doxia.module.itext.ITextSink.body_(ITextSink.java:291) ... 36 more
This is quite tricky to debug; it would help if the plugin gave some context - or better yet, detected the missing element.
Note that xdoc output does not crash, nor does it report an error.