Why infinity loop when xml validation failes with switchyard project in Fuse 6.2 ?
Issue
- User created a sample project that validates xml against xsd and when runnig the unitest with invalid xml it goes into infinity loop and throwing exception every second.
- why is this infinity loop?
- Below are the logs
Headers {breadcrumbId=ID-tal-6517-1437661022613-0-11, CamelFileAbsolute=true, CamelFileAbsolutePath=c:\temp\files\input\order.xml, CamelFileContentType=text/xml, CamelFileLastModified=1437660989831, CamelFileLength=211, CamelFileName=order.xml, CamelFileNameConsumed=order.xml, CamelFileNameOnly=order.xml, CamelFileParent=c:\temp\files\input, CamelFilePath=c:\temp\files\input\order.xml, CamelFileRelativePath=order.xml, CamelRedelivered=false, CamelRedeliveryCounter=0, org.switchyard.messageComposer=org.switchyard.component.camel.common.composer.CamelMessageComposer@19eef064, org.switchyard.operationSelector=null}
BodyType org.apache.camel.component.file.GenericFile
Body [Body is file based: GenericFile[c:\temp\files\input\order.xml]]
]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.switchyard.HandlerException: SWITCHYARD014000: Validator 'org.switchyard.validate.xml.internal.XmlValidator' failed: 1 validation error(s):
org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: Invalid content was found starting with element 'tal'. No child element is expected at this point.
at org.switchyard.handlers.ValidateHandler.handleMessage(ValidateHandler.java:71)
at org.switchyard.bus.camel.processors.HandlerProcessor.process(HandlerProcessor.java:61)
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.switchyard.bus.camel.audit.FaultProcessor.process(FaultProcessor.java:45)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:113)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:84)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.switchyard.bus.camel.audit.FaultProcessor.process(FaultProcessor.java:45)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:375)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:233)
at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:168)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:119)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:105)
at org.switchyard.bus.camel.ExchangeDispatcher.dispatch(ExchangeDispatcher.java:87)
at org.switchyard.bus.camel.CamelExchange.sendInternal(CamelExchange.java:238)
at org.switchyard.bus.camel.CamelExchange.send(CamelExchange.java:175)
at org.switchyard.component.camel.switchyard.SwitchYardProducer.process(SwitchYardProducer.java:110)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:435)
at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:211)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:175)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
17:17:04,943 WARN [org.apache.camel.component.file.GenericFileOnCompletion] Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileDeleteProcessStrategy@3fb453f5 for file: GenericFile[c:\temp\files\input\order.xml]
17:17:05,473 ERROR [org.switchyard.bus.camel.DefaultErrorListener]
------- Begin Message Trace -------
Consumer -> {urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService
Provider -> {urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService
Operation -> greet
MEP -> IN_ONLY
Phase -> IN
State -> OK
Exchange Context ->
CamelCreatedTimestamp ..........................: Thu Jul 23 17:17:05 IDT 2015
CamelExceptionCaught ...........................: org.switchyard.HandlerException: SWITCHYARD014000: Validator 'org.switchyard.validate.xml.internal.XmlValidator' failed: 1 validation error(s):
org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: Invalid content was found starting with element 'tal'. No child element is expected at this point.
CamelExceptionHandled ..........................: true
CamelFailureEndpoint ...........................: direct://%7Burn:switchyard-quickstart:validate-xml:0.1.0%7DGreetingService
CamelFilterMatched .............................: false
CamelMessageHistory ............................: [DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=doTry1], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=filter1], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=process1], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=process2], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=process3], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=process4], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=process5], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=process6], DefaultMessageHistory[routeId=direct:{urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, node=process17]]
CamelToEndpoint ................................: direct://%7Burn:switchyard-quickstart:validate-xml:0.1.0%7DGreetingService
TryRouteBlock ..................................: true
org.switchyard.bus.camel.consumer ..............: ServiceReference [name={urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, interface=BaseServiceInterface [type=java, operations=[greet : IN_ONLY : [{urn:switchyard-quickstart:validate-xml:0.1.0}order, null, null]]], domain=ServiceDomain [name=org.switchyard.domains.root]]
org.switchyard.bus.camel.contract ..............: org.switchyard.metadata.BaseExchangeContract@14a31eb3
org.switchyard.bus.camel.dispatcher ............: org.switchyard.bus.camel.ExchangeDispatcher@1d8c4428
org.switchyard.bus.camel.labels ................: {org.switchyard.exchangeInitiatedNS=[org.switchyard.label.behavior.transient], org.switchyard.exchangeGatewayName=[org.switchyard.label.behavior.transient], org.switchyard.security.context.SecurityContext=[org.switchyard.label.behavior.transient]}
org.switchyard.bus.camel.phase .................: IN
org.switchyard.bus.camel.provider ..............: Service [name={urn:switchyard-quickstart:validate-xml:0.1.0}GreetingService, interface=BaseServiceInterface [type=java, operations=[greet : IN_ONLY : [{urn:switchyard-quickstart:validate-xml:0.1.0}order, null, null]]], domain=ServiceDomain [name=org.switchyard.domains.root], metadata=org.switchyard.metadata.ServiceMetadataBuilder$ServiceMetadataImpl@4668344d]
org.switchyard.bus.camel.replyHandler ..........: org.switchyard.component.camel.switchyard.CamelResponseHandler@774af0e1
org.switchyard.exchangeGatewayName .............: ayalon-files
org.switchyard.exchangeInitiatedNS .............: 7453591991429
org.switchyard.security.context.SecurityContext : DefaultSecurityContext@1876010549[systemUUID=400a7c40-0975-436a-a3a0-9dbb9c5cea2a, expirationMillis=0, credentials=[], securityDomainsToSubjects={other=Subject:
}]
Message Context ->
breadcrumbId ........................: ID-tal-6517-1437661022613-0-18
org.switchyard.bus.camel.labels .....: {org.switchyard.bus.camel.messageSent=[org.switchyard.label.behavior.transient], org.switchyard.contentType=[org.switchyard.label.behavior.transient], org.switchyard.validatedType=[org.switchyard.label.behavior.transient]}
org.switchyard.bus.camel.messageSent : true
org.switchyard.contentType ..........: {urn:switchyard-quickstart:validate-xml:0.1.0}order
org.switchyard.messageId ............: ID-tal-6517-1437661022613-0-18
org.switchyard.validatedType ........: interface org.switchyard.Message
------ End Message Trace -------
Caught exception of type org.switchyard.HandlerException with message: SWITCHYARD014000: Validator 'org.switchyard.validate.xml.internal.XmlValidator' failed: 1 validation error(s):
org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: Invalid content was found starting with element 'tal'. No child element is expected at this point.
org.switchyard.HandlerException: SWITCHYARD014000: Validator 'org.switchyard.validate.xml.internal.XmlValidator' failed: 1 validation error(s):
org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: Invalid content was found starting with element 'tal'. No child element is expected at this point.
at org.switchyard.handlers.ValidateHandler.handleMessage(ValidateHandler.java:71)
at org.switchyard.bus.camel.processors.HandlerProcessor.process(HandlerProcessor.java:61)
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.switchyard.bus.camel.audit.FaultProcessor.process(FaultProcessor.java:45)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:113)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:84)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.switchyard.bus.camel.audit.FaultProcessor.process(FaultProcessor.java:45)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:375)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:233)
at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:168)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:119)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:105)
at org.switchyard.bus.camel.ExchangeDispatcher.dispatch(ExchangeDispatcher.java:87)
at org.switchyard.bus.camel.CamelExchange.sendInternal(CamelExchange.java:238)
at org.switchyard.bus.camel.CamelExchange.send(CamelExchange.java:175)
at org.switchyard.component.camel.switchyard.SwitchYardProducer.process(SwitchYardProducer.java:110)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:435)
at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:211)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:175)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
17:17:05,489 ERROR [org.apache.camel.processor.DefaultErrorHandler] Failed delivery for (MessageId: ID-tal-6517-1437661022613-0-16 on ExchangeId: ID-tal-6517-1437661022613-0-17). Exhausted after delivery attempt: 1 caught: org.switchyard.HandlerException: SWITCHYARD014000: Validator 'org.switchyard.validate.xml.internal.XmlValidator' failed: 1 validation error(s):
org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: Invalid content was found starting with element 'tal'. No child element is expected at this point.
Environment
- Red Hat JBoss Fuse
- 6.2.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
