[esb-issues] [JBoss JIRA] Commented: (JBESB-2916) Schema Validation - Non-conforming messages are not properly handled
Tom Fennelly (JIRA)
jira-events at lists.jboss.org
Thu Oct 29 07:36:05 EDT 2009
[ https://jira.jboss.org/jira/browse/JBESB-2916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12492043#action_12492043 ]
Tom Fennelly commented on JBESB-2916:
-------------------------------------
Thanks Jirka.
So the issue is with serializing the fault exception. The DOMResult instance on ValidationException is not Serializable.
> Schema Validation - Non-conforming messages are not properly handled
> --------------------------------------------------------------------
>
> Key: JBESB-2916
> URL: https://jira.jboss.org/jira/browse/JBESB-2916
> Project: JBoss ESB
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Rosetta
> Affects Versions: 4.6
> Reporter: Jiri Pechanec
> Assignee: Tom Fennelly
> Fix For: 4.7
>
> Attachments: JBESB_2916_UnitTest.patch, mv.tgz, validation.log.gz, xmlnonconform.zip
>
>
> I tried to send two kinds of messages two the validation action
> 1) Malformed XML - it works correctly
> The log contains 10:13:39,213 ERROR [STDERR] [Fatal Error] :20:3: The element type "item" must be terminated by the matching end-tag "</item>", an exception is thrown and propagated as fault to the caller when synchornnous invocation is in place
> 2) In case of well-formed XML but non-conforming to schema an exception is thrown and the fault is not generated
> 09:09:04,997 ERROR [SchemaValidationAction] SAXExcption while trying to validate against schema '/schemas/valid-ns.xsd'
> org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'p:orderperson'. One of '{orderperson}' is expected.
> at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
> at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
> at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
> at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
> at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
> at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source)
> at org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source)
> at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
> at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
> at org.apache.xerces.jaxp.validation.DOMValidatorHelper.beginNode(Unknown Source)
> at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source)
> at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source)
> at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown Source)
> at org.jboss.soa.esb.actions.validation.SchemaValidationAction.validate(SchemaValidationAction.java:117)
> at org.jboss.soa.esb.actions.validation.SchemaValidationAction.process(SchemaValidationAction.java:107)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:634)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:586)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:420)
> at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:545)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> 09:09:05,018 ERROR [ActionProcessingPipeline] Failed to send fault to address JMSEpr [ PortReference < <wsa:Address jms:jnp://127.0.0.1:1099#queue/quickstart_message_validation_esbns_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:destination-name : queue/quickstart_message_validation_esbns_reply/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='27644272-0ca0-40fd-9465-5e1ed0b194f7'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message header: [ To: JMSEpr [ PortReference < <wsa:Address jms:jnp://127.0.0.1:1099#queue/quickstart_message_validation_esbns_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:destination-name : queue/quickstart_message_validation_esbns_reply/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='27644272-0ca0-40fd-9465-5e1ed0b194f7'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] From: JMSEpr [ PortReference < <wsa:Address jms:jnp://127.0.0.1:1099#queue/quickstart_message_validation_esbns/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:destination-name : queue/quickstart_message_validation_esbns/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] RelatesTo: 386d71a6-a767-4de1-8e17-e43d0da95be0 ]
> org.jboss.soa.esb.couriers.CourierMarshalUnmarshalException: Failed to serialize ESB Message.
> at org.jboss.internal.soa.esb.couriers.JmsCourier.internalDeliver(JmsCourier.java:225)
> at org.jboss.internal.soa.esb.couriers.JmsCourier.deliver(JmsCourier.java:182)
> at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.deliver(TwoWayCourierImpl.java:189)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.messageTo(ActionProcessingPipeline.java:861)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.faultTo(ActionProcessingPipeline.java:811)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:666)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:586)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:420)
> at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:545)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.io.IOException: Util.serialize caught XMLStreamException:
> at org.jboss.soa.esb.util.Util.serialize(Util.java:198)
> at org.jboss.internal.soa.esb.couriers.JmsCourier.internalDeliver(JmsCourier.java:219)
> ... 11 more
> Caused by: javax.xml.stream.XMLStreamException
> at org.jboss.internal.soa.esb.message.format.xml.marshal.MarshalUnmarshalManager.marshal(MarshalUnmarshalManager.java:149)
> at org.jboss.internal.soa.esb.message.format.xml.BodyImpl.writeChildContent(BodyImpl.java:146)
> at org.jboss.internal.soa.esb.util.stax.ElementContent.writeContent(ElementContent.java:41)
> at org.jboss.internal.soa.esb.util.stax.StreamHelper.writeElement(StreamHelper.java:125)
> at org.jboss.internal.soa.esb.message.format.xml.MessageImpl.writeChildContent(MessageImpl.java:236)
> at org.jboss.internal.soa.esb.util.stax.ElementContent.writeContent(ElementContent.java:41)
> at org.jboss.soa.esb.util.Util.serialize(Util.java:188)
> ... 12 more
> The behaviour should be same in both cases
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the esb-issues
mailing list