[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/&gt;, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/&gt;, <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/&gt;, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/&gt;, <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/&gt;, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : jnp://127.0.0.1:1099/&gt;, <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