History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CAMEL-702
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Claus Ibsen
Reporter: Charles Moulliard
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Apache Camel

net.sf.saxon.trans.StaticError: XQuery syntax error in ##: generated when several threads are created for a route

Created: 11/Jul/08 08:38 AM   Updated: 17/Jul/08 05:01 AM
Component/s: camel-saxon
Affects Version/s: 1.4.0
Fix Version/s: 1.4.0

Time Tracking:
Not Specified

Environment: Win2K / Camel Apache 1.4-SNAPSHOT (11/07/2208)


 Description  « Hide
Hi,

When I configure the following routes to process 10 xml files in a directory , everything works correctly

A)

from("file:///c:/temp/test/?delete=false&lock=true&consumer.delay=500&consumer.initialDelay=10").thread(10)
.to("bean:authenticate")
.choice().when(header("authenticated").isEqualTo(true))
//.to("display")
.to("direct:extractDocument")
.otherwise().to("activemq:queue:rejectedmessages.queue");

B)

from("direct:extractDocument").thread(1)
.setHeader("responder").xpath("//XyZ:Response/text()", String.class, ns)
.setHeader("channel", "File-Channel")

.to("bean:saveContent")
.to("xquery:com/myapplication/transformation/in/extract.xquery")
.to("activemq:queue:A.in.queue");
}

C) from("activemq:queue:A.in.queue").thread(10)
.filter(body().isInstanceOf(String.class))
.unmarshal(jaxb)
.to("bean:convert")
.to("bean:save")
.to("activemq:queue:A.in.queue");

Here is the log trace

4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4336937 [Thread Processor] INFO Authenticate - Company authenticated
4337359 [Thread Processor] INFO SaveContent - Message saved
4338562 [Thread Processor] INFO SaveContent - Message saved
4338828 [Thread Processor] INFO SaveContent - Message saved
4339062 [Thread Processor] INFO SaveContent - Message saved
4339328 [Thread Processor] INFO SaveContent - Message saved
4339890 [Thread Processor] INFO SaveContent - Message saved
4340312 [Thread Processor] INFO SaveContent - Message saved
4340515 [Thread Processor] INFO SaveContent - Message saved
4340687 [Thread Processor] INFO SaveContent - Message saved
4340750 [Thread Processor] INFO Convert - Message send
4340906 [Thread Processor] INFO SaveContent - Message saved
4341218 [Thread Processor] INFO Save - Order saved
4341328 [Thread Processor] INFO Convert - Message send
4341890 [Thread Processor] INFO Save - Order saved
4341922 [Thread Processor] INFO Convert - Message send
4342672 [Thread Processor] INFO Save - Order saved
4342734 [Thread Processor] INFO Convert - Message send
4343672 [Thread Processor] INFO Save - Order saved
4343718 [Thread Processor] INFO Convert - Message send
4344703 [Thread Processor] INFO Save - Order saved
4344734 [Thread Processor] INFO Convert - Message send
4345937 [Thread Processor] INFO Save - Order saved
4345984 [Thread Processor] INFO Convert - Message send
4347359 [Thread Processor] INFO Save - Order saved
4347375 [Thread Processor] INFO Convert - Message send
4349078 [Thread Processor] INFO Save - Order saved
4349109 [Thread Processor] INFO Convert - Message send
4350859 [Thread Processor] INFO Save - Order saved
4350906 [Thread Processor] INFO Convert - Message send
4352593 [Thread Processor] INFO Save - Order saved

but when I would like to increase the number of threads to execute more than one XQUERY at a time

B) from("direct:extractDocument").thread(10)
.setHeader("responder").xpath("//XyZ:Response/text()", String.class, ns)
.setHeader("channel", "File-Channel")

.to("bean:saveContent")
.to("xquery:com/myapplication/transformation/in/extract.xquery")
.to("activemq:queue:A.in.queue");

the following error is generated

4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4315906 [Thread Processor] INFO com.bravura.babel.server.common.Authenticate - Company authenticated
4316750 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4316781 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4316781 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4317094 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4317125 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4317172 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4317203 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4317250 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4317281 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved
4317328 [Thread Processor] INFO com.bravura.babel.server.common.SaveContent - Message saved

43Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
Error on line 1 column 0
XPST0003: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
18219 [Thread Processor] ERROR org.apache.camel.processor.DeadLetterChannel - Failed delivery for exchangeId: ID-dell-charles/4777-1215789902562/0-1. On delivery attempt: 0 caught: org.apache.camel.RuntimeExpressionException: net.sf.saxon.trans.StaticError: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
43org.apache.camel.RuntimeExpressionException: net.sf.saxon.trans.StaticError: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:125)
at org.apache.camel.component.xquery.XQueryBuilder.process(XQueryBuilder.java:89)
at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.access$100(Pipeline.java:40)
at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:124)
at org.apache.camel.processor.ThreadProcessor$ProcessCall.run(ThreadProcessor.java:66)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: net.sf.saxon.trans.StaticError: XQuery syntax error in ##:
Unexpected token "<eof>" in path expression
at net.sf.saxon.query.QueryParser.grumble(QueryParser.java:323)
at net.sf.saxon.expr.ExpressionParser.grumble(ExpressionParser.java:136)
at net.sf.saxon.expr.ExpressionParser.parseBasicStep(ExpressionParser.java:1403)
at net.sf.saxon.expr.ExpressionParser.parseStepExpression(ExpressionParser.java:1220)
at net.sf.saxon.expr.ExpressionParser.parseRelativePath(ExpressionParser.java:1160)
at net.sf.saxon.expr.ExpressionParser.parsePathExpression(ExpressionParser.java:1146)
at net.sf.saxon.expr.ExpressionParser.parseUnaryExpression(ExpressionParser.java:1025)
at net.sf.saxon.expr.ExpressionParser.parseCastExpression(ExpressionParser.java:684)
at net.sf.saxon.expr.ExpressionParser.parseCastableExpression(ExpressionParser.java:639)
at net.sf.saxon.expr.ExpressionParser.parseTreatExpression(ExpressionParser.java:620)
at net.sf.saxon.expr.ExpressionParser.parseInstanceOfExpression(ExpressionParser.java:602)
at net.sf.saxon.expr.ExpressionParser.parseIntersectExpression(ExpressionParser.java:1058)
at net.sf.saxon.expr.ExpressionParser.parseUnionExpression(ExpressionParser.java:1040)
at net.sf.saxon.expr.ExpressionParser.parseMultiplicativeExpression(ExpressionParser.java:977)
at net.sf.saxon.expr.ExpressionParser.parseAdditiveExpression(ExpressionParser.java:957)
at net.sf.saxon.expr.ExpressionParser.parseRangeExpression(ExpressionParser.java:873)
at net.sf.saxon.expr.ExpressionParser.parseComparisonExpression(ExpressionParser.java:823)
at net.sf.saxon.expr.ExpressionParser.parseAndExpression(ExpressionParser.java:414)
at net.sf.saxon.expr.ExpressionParser.parseOrExpression(ExpressionParser.java:396)
at net.sf.saxon.expr.ExpressionParser.parseExprSingle(ExpressionParser.java:350)
at net.sf.saxon.expr.ExpressionParser.parseExpression(ExpressionParser.java:314)
at net.sf.saxon.query.QueryParser.parseQuery(QueryParser.java:256)
at net.sf.saxon.query.QueryParser.makeXQueryExpression(QueryParser.java:97)
at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:450)
at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:513)
at org.apache.camel.component.xquery.XQueryBuilder$3.createQueryExpression(XQueryBuilder.java:216)
at org.apache.camel.component.xquery.XQueryBuilder.getExpression(XQueryBuilder.java:294)
at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:153)
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:115)
... 14 more



 All   Comments   Work Log   Change History   Subversion Commits   FishEye   Crucible      Sort Order: Ascending order - Click to sort in descending order
Claus Ibsen - 11/Jul/08 11:01 PM
Could be an concurrency issue with the xquery and saxon framework.

Charles Moulliard - 13/Jul/08 11:38 PM
Should we have to open a defect on Saxon Jira web site ?

Claus Ibsen - 13/Jul/08 11:47 PM
I do think Gert did some changes in Camel related to some concurrency issues with a component similar to this one. We should get his attention first I think.

Claus Ibsen - 14/Jul/08 12:12 AM
Charles is it possible for you to create a unit test that fails with this?

Can you trigger the problem all the time?


Claus Ibsen - 14/Jul/08 01:35 AM
Charles I am looking into this. I will try to commit a patch later. Could you then try out with the latest 1.4-SNAPSHOT. I will post again here when its ready.

Claus Ibsen - 14/Jul/08 02:26 AM
Charles we have a proposed patch now. Gert is taking a look too.

When the builds server has created a new snapshot build on the maven repo you can try it out. Wait a few hours.


Charles Moulliard - 14/Jul/08 02:39 AM
Many thanks. I suppose that the current snaphot (not yet created with the patch) is ?

[ ] apache-camel-1.4-20080714.001554-34.zip 14-Jul-2008 02:03 6.7M


Claus Ibsen - 14/Jul/08 03:08 AM
2008-07-14 12:05:42,406 [hread Processor] ERROR DeadLetterChannel - Failed delivery for exchangeId: ID-claus-acer/4188-1216029941640/0-0. On delivery attempt: 0 caught: org.apache.camel.RuntimeExpressionException: java.lang.IllegalArgumentException: Supplied node must be built using the same or a compatible Configuration
org.apache.camel.RuntimeExpressionException: java.lang.IllegalArgumentException: Supplied node must be built using the same or a compatible Configuration
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:124)
at org.apache.camel.model.language.ExpressionType.evaluate(ExpressionType.java:98)
at org.apache.camel.processor.TransformProcessor.process(TransformProcessor.java:42)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.access$100(Pipeline.java:40)
at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:124)
at org.apache.camel.processor.ThreadProcessor$ProcessCall.run(ThreadProcessor.java:66)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException: Supplied node must be built using the same or a compatible Configuration
at net.sf.saxon.query.DynamicQueryContext.setContextItem(DynamicQueryContext.java:89)
at org.apache.camel.component.xquery.XQueryBuilder.createDynamicContext(XQueryBuilder.java:390)
at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:151)
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:114)
... 12 more

Claus Ibsen - 14/Jul/08 03:10 AM
Could be when was the last build? There has been some commits before this today that could have caused this build. But try it out and see how it goes.

Charles the build server has just finished the build. So check back in a little while to see if there is a new build.


Claus Ibsen - 14/Jul/08 04:24 AM
Charles. Gert and I have found a solution (we think). I have just committed the final details.

Could you test it. The builds should take approx 2 hours before its online on the maven repo. Or wait until tomorrow with the test, then you are sure to grab the latest build.


Charles Moulliard - 15/Jul/08 01:11 AM
Well. We progress but I have a new error. This is reproducible. The error does not occur for every message and unfortunately for us, Camel receives a null pointer exception.

4320078 [Thread Processor] ERROR org.apache.camel.processor.DeadLetterChannel - Failed delivery for exchangeId: ID-dell-charles/2644-1216109166046/0-1. On delivery attempt: 0 caught: org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException
43org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:132)
at org.apache.camel.component.xquery.XQueryBuilder.process(XQueryBuilder.java:90)
at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.access$100(Pipeline.java:40)
at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:124)
at org.apache.camel.processor.ThreadProcessor$ProcessCall.run(ThreadProcessor.java:66)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at net.sf.saxon.value.Value.asItem(Value.java:71)
at net.sf.saxon.expr.VariableReference.evaluateItem(VariableReference.java:291)
at net.sf.saxon.functions.QNameFn.evaluateItem(QNameFn.java:66)
at net.sf.saxon.instruct.ComputedElement.getNameCode(ComputedElement.java:283)
at net.sf.saxon.instruct.ElementCreator.constructElement(ElementCreator.java:290)
at net.sf.saxon.instruct.ElementCreator.evaluateItem(ElementCreator.java:270)
at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320)
at net.sf.saxon.expr.IfExpression.iterate(IfExpression.java:257)
at net.sf.saxon.expr.ForExpression$MappingAction.map(ForExpression.java:591)
at net.sf.saxon.expr.MappingIterator.next(MappingIterator.java:54)
at net.sf.saxon.query.XQueryExpression$ErrorReportingIterator.next(XQueryExpression.java:553)
at net.sf.saxon.pull.PullFromIterator.next(PullFromIterator.java:60)
at net.sf.saxon.pull.PullFilter.next(PullFilter.java:83)
at net.sf.saxon.pull.PullNamespaceReducer.next(PullNamespaceReducer.java:66)
at net.sf.saxon.pull.PullFilter.next(PullFilter.java:83)
at net.sf.saxon.pull.PullPushTee.next(PullPushTee.java:57)
at net.sf.saxon.pull.PullConsumer.consume(PullConsumer.java:27)
at net.sf.saxon.pull.PullPushCopier.copy(PullPushCopier.java:27)
at net.sf.saxon.query.XQueryExpression.pull(XQueryExpression.java:402)
at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:162)
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:122)
... 14 more


Claus Ibsen - 15/Jul/08 02:37 AM
Charles does the message succed in the next redelivery?

The stacktrace is on the first failure = On delivery attempt: 0

Do you also have:
On delivery attempt: 1
On delivery attempt: 2
On delivery attempt: 3
etc.

How high is your throughput? Have you tried to lower the threads from 10 to eg. 5?
And you can also try a throttler() in from of the xquery to let XXX number of exchanges pass per. second. - throttle(20) will only pass 20 messages per second.


Claus Ibsen - 15/Jul/08 02:47 AM
Charles can you also try with a never version of Saxon.
http://saxon.sourceforge.net/

Has released v9.1.0.1 of Saxon. Unfortunately not in a maven repo (yet)


Charles Moulliard - 15/Jul/08 03:11 AM
The message is not redelivered.
Here is the full stack trace :

4315594 [Thread Processor] ERROR org.apache.camel.processor.DeadLetterChannel - Failed delivery for exchangeId: ID-dell-charles/3883-1216116412562/0-0. On delivery attempt: 0 caught: org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException
43org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:132)
at org.apache.camel.component.xquery.XQueryBuilder.process(XQueryBuilder.java:90)
at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.access$100(Pipeline.java:40)
at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:124)
at org.apache.camel.processor.ThreadProcessor$ProcessCall.run(ThreadProcessor.java:66)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at net.sf.saxon.value.Value.asItem(Value.java:71)
at net.sf.saxon.expr.VariableReference.evaluateItem(VariableReference.java:291)
at net.sf.saxon.functions.QNameFn.evaluateItem(QNameFn.java:66)
at net.sf.saxon.instruct.ComputedElement.getNameCode(ComputedElement.java:283)
at net.sf.saxon.instruct.ElementCreator.constructElement(ElementCreator.java:290)
at net.sf.saxon.instruct.ElementCreator.evaluateItem(ElementCreator.java:270)
at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320)
at net.sf.saxon.expr.IfExpression.iterate(IfExpression.java:257)
at net.sf.saxon.expr.ForExpression$MappingAction.map(ForExpression.java:591)
at net.sf.saxon.expr.MappingIterator.next(MappingIterator.java:54)
at net.sf.saxon.query.XQueryExpression$ErrorReportingIterator.next(XQueryExpression.java:553)
at net.sf.saxon.pull.PullFromIterator.next(PullFromIterator.java:60)
at net.sf.saxon.pull.PullFilter.next(PullFilter.java:83)
at net.sf.saxon.pull.PullNamespaceReducer.next(PullNamespaceReducer.java:66)
at net.sf.saxon.pull.PullFilter.next(PullFilter.java:83)
at net.sf.saxon.pull.PullPushTee.next(PullPushTee.java:57)
at net.sf.saxon.pull.PullConsumer.consume(PullConsumer.java:27)
at net.sf.saxon.pull.PullPushCopier.copy(PullPushCopier.java:27)
at net.sf.saxon.query.XQueryExpression.pull(XQueryExpression.java:402)
at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:162)
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:122)
... 14 more
15594 [Thread Processor] ERROR org.apache.camel.processor.DeadLetterChannel - Failed delivery for exchangeId: ID-dell-charles/3883-1216116412562/0-1. On delivery attempt: 0 caught: org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException
43org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:132)
at org.apache.camel.component.xquery.XQueryBuilder.process(XQueryBuilder.java:90)
at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.access$100(Pipeline.java:40)
at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:124)
at org.apache.camel.processor.ThreadProcessor$ProcessCall.run(ThreadProcessor.java:66)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at net.sf.saxon.value.Value.asItem(Value.java:71)
at net.sf.saxon.expr.VariableReference.evaluateItem(VariableReference.java:291)
at net.sf.saxon.functions.QNameFn.evaluateItem(QNameFn.java:66)
at net.sf.saxon.instruct.ComputedElement.getNameCode(ComputedElement.java:283)
at net.sf.saxon.instruct.ElementCreator.constructElement(ElementCreator.java:290)
at net.sf.saxon.instruct.ElementCreator.evaluateItem(ElementCreator.java:270)
at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320)
at net.sf.saxon.expr.IfExpression.iterate(IfExpression.java:257)
at net.sf.saxon.expr.ForExpression$MappingAction.map(ForExpression.java:591)
at net.sf.saxon.expr.MappingIterator.next(MappingIterator.java:54)
at net.sf.saxon.query.XQueryExpression$ErrorReportingIterator.next(XQueryExpression.java:553)
at net.sf.saxon.pull.PullFromIterator.next(PullFromIterator.java:60)
at net.sf.saxon.pull.PullFilter.next(PullFilter.java:83)
at net.sf.saxon.pull.PullNamespaceReducer.next(PullNamespaceReducer.java:66)
at net.sf.saxon.pull.PullFilter.next(PullFilter.java:83)
at net.sf.saxon.pull.PullPushTee.next(PullPushTee.java:57)
at net.sf.saxon.pull.PullConsumer.consume(PullConsumer.java:27)
at net.sf.saxon.pull.PullPushCopier.copy(PullPushCopier.java:27)
at net.sf.saxon.query.XQueryExpression.pull(XQueryExpression.java:402)
at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:162)
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:122)
... 14 more

I will test with new Saxon release and/or add the throttle.
When I change the number of threads, I can sometimes send messages without errors.


Charles Moulliard - 15/Jul/08 03:19 AM
The error has disappeared with the last version of Saxon 9-1-0-1j.

remark : I haven't added the throttle option to make the test.

Many thanks for your help.