Why infinity loop when xml validation failes with switchyard project in Fuse 6.2 ?

Solution Unverified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.