You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2023/02/25 16:24:00 UTC

[jira] [Assigned] (CAMEL-19079) NullPointerException thrown when using the language:xquery endpoint

     [ https://issues.apache.org/jira/browse/CAMEL-19079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen reassigned CAMEL-19079:
-----------------------------------

    Assignee: Claus Ibsen

> NullPointerException thrown when using the language:xquery endpoint
> -------------------------------------------------------------------
>
>                 Key: CAMEL-19079
>                 URL: https://issues.apache.org/jira/browse/CAMEL-19079
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-language, camel-saxon
>    Affects Versions: 3.20.1
>            Reporter: Darren Coleman
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> I get a {{NullPointerException}} when running a basic route that sends data to the {{language:xquery}} endpoint. It looks like the exception is caused the the Saxon Configuration object not being initialized. 
> Here is an example that reproduces the error:
> {code:java}
> public class CamelXQueryLanguageTest {
>     public static void main(String[] args) throws Exception {
>         CamelContext context = new DefaultCamelContext();
>         context.start();
>         
>         ProducerTemplate producer = context.createProducerTemplate();
>         String result = producer.requestBody(
>             "language:xquery:upper-case(/message/text())", 
>             "<message>Hello from XQuery</message>", 
>             String.class);
>         System.out.println("Result: " + result);
>         
>         context.stop();
>     }
> }
> {code}
> Here is the stack trace from this code:
> {code:java}
> Exception in thread "main" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[]
> 	at org.apache.camel.CamelExecutionException.wrapCamelExecutionException(CamelExecutionException.java:45)
> 	at org.apache.camel.support.ExchangeHelper.extractResultBody(ExchangeHelper.java:660)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:591)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:587)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:414)
> 	at org.acme.CamelXQueryLanguageTest.main(CamelXQueryLanguageTest.java:14)
> Caused by: org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException: Cannot invoke "net.sf.saxon.Configuration.makeErrorReporter()" because "config" is null
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:202)
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:167)
> 	at org.apache.camel.component.language.LanguageProducer.process(LanguageProducer.java:110)
> 	at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
> 	at org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:214)
> 	at org.apache.camel.impl.engine.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:111)
> 	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
> 	at org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:108)
> 	at org.apache.camel.support.cache.DefaultProducerCache.send(DefaultProducerCache.java:199)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:413)
> 	... 1 more
> Caused by: java.lang.NullPointerException: Cannot invoke "net.sf.saxon.Configuration.makeErrorReporter()" because "config" is null
> 	at net.sf.saxon.query.DynamicQueryContext.<init>(DynamicQueryContext.java:58)
> 	at org.apache.camel.component.xquery.XQueryBuilder.createDynamicContext(XQueryBuilder.java:569)
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:230)
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:192)
> 	... 12 more
> {code}
> If I create an instance of the Configuration object explicitly and set it in the XQueryLanguage, that NPE disappears only for another one to be thrown when evaluating the expression.
> For example, if I add the following 2 lines before starting the context:
> {code:java}
> XQueryLanguage language = (XQueryLanguage) context.resolveLanguage("xquery");
> language.setConfiguration(new Configuration());
> 					
> context.start();
> {code}
> An exception now appears via:
> {code}
> Caused by: org.apache.camel.RuntimeExpressionException: java.lang.NullPointerException: Cannot invoke "net.sf.saxon.query.XQueryExpression.run(net.sf.saxon.query.DynamicQueryContext, javax.xml.transform.Result, java.util.Properties)" because "expression" is null
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:202)
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:167)
> 	at org.apache.camel.component.language.LanguageProducer.process(LanguageProducer.java:110)
> 	at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
> 	at org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:214)
> 	at org.apache.camel.impl.engine.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:111)
> 	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
> 	at org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:108)
> 	at org.apache.camel.support.cache.DefaultProducerCache.send(DefaultProducerCache.java:199)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:413)
> 	... 1 more
> Caused by: java.lang.NullPointerException: Cannot invoke "net.sf.saxon.query.XQueryExpression.run(net.sf.saxon.query.DynamicQueryContext, javax.xml.transform.Result, java.util.Properties)" because "expression" is null
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:232)
> 	at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:192)
> 	... 12 more
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)