Skip to content
master
Go to file
Code

README.md

VDX - better error messages for XML validation

Provides more helpful output when reading XML based on validation/parse exceptions. Currently only used by WildFly and JBoss EAP.

Sample Output

With WildFly, instead of seeing:

09:40:13,124 ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0085: Failed to parse configuration
	at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:143) [wildfly-controller-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at org.jboss.as.server.ServerService.boot(ServerService.java:373) [wildfly-server-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:314) [wildfly-controller-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_92]
Caused by: com.ctc.wstx.exc.WstxParsingException: Duplicate attribute 'data-source'.
 at [row,col {unknown-source}]: [125,39]
	at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:621) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:491) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:475) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.AttributeCollector.throwDupAttr(AttributeCollector.java:1173) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.AttributeCollector.resolveNamespaces(AttributeCollector.java:1016) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.InputElementStack.resolveAndValidateElement(InputElementStack.java:509) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3059) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2919) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1123) [woodstox-core-5.0.3.jar:5.0.3]
	at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1204) [woodstox-core-5.0.3.jar:5.0.3]
	at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.nextTag(XMLExtendedStreamReaderImpl.java:152) [staxmapper-1.3.0.Final.jar:1.3.0.Final]
	at org.wildfly.extension.batch.jberet.BatchSubsystemParser_1_0.parseJobRepository(BatchSubsystemParser_1_0.java:125)
	at org.wildfly.extension.batch.jberet.BatchSubsystemParser_1_0.readElement(BatchSubsystemParser_1_0.java:103)
	at org.wildfly.extension.batch.jberet.BatchSubsystemParser_1_0.readElement(BatchSubsystemParser_1_0.java:52)
	at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122) [staxmapper-1.3.0.Final.jar:1.3.0.Final]
	at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) [staxmapper-1.3.0.Final.jar:1.3.0.Final]
	at org.jboss.as.server.parsing.StandaloneXml_4.parseServerProfile(StandaloneXml_4.java:531) [wildfly-server-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at org.jboss.as.server.parsing.StandaloneXml_4.readServerElement(StandaloneXml_4.java:226) [wildfly-server-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at org.jboss.as.server.parsing.StandaloneXml_4.readElement(StandaloneXml_4.java:125) [wildfly-server-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:104) [wildfly-server-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:49) [wildfly-server-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122) [staxmapper-1.3.0.Final.jar:1.3.0.Final]
	at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:76) [staxmapper-1.3.0.Final.jar:1.3.0.Final]
	at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:126) [wildfly-controller-3.0.0.Alpha23-SNAPSHOT.jar:3.0.0.Alpha23-SNAPSHOT]
	... 3 more

You'll now get:

09:42:29,037 ERROR [org.jboss.as.controller] (Controller Boot Thread)

OPVDX001: Validation error in standalone.xml -----------------------------------
|
|  123: <job-repository name="in-memory">
|  124:   <jdbc data-source="foo"
|  125:         data-source="bar"/>
|               ^^^^ 'data-source' can't appear more than once on this element
|
|  126: </job-repository>
|  127: <thread-pool name="batch">
|  128:     <max-threads count="10"/>
|
| A 'data-source' attribute first appears here:
|
|  122: <default-thread-pool name="batch"/>
|  123: <job-repository name="in-memory">
|  124:   <jdbc data-source="foo"
|               ^^^^
|
|  125:         data-source="bar"/>
|  126: </job-repository>
|  127: <thread-pool name="batch">
|
| The primary underlying error message was:
| > Duplicate attribute 'data-source'.
| >  at [row,col {unknown-source}]: [125,39]
|
|-------------------------------------------------------------------------------

About

Helpful error messages when xml parsing fails

Resources

License

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
You can’t perform that action at this time.