I am using camel-bindy version 3.8.0 and I'm hitting a null pointer exception
because bindy selects the key-value pair format and ignores the annotated
format type and XML-defined format when the model class is annotated with the
Spring @Value annotation or if the XML bean definition contains property
elements.
Model class:
@FixedLengthRecord(length=103)
public class MyModelClass {
@DataField(pos = 1, length = 2)
private String constantField;
@DataField(pos = 3, length = 5)
private String variableField;
...
Constructor and getters/setters
}
XML model bean definition
<bean id="chipsInMessage"
class="org.theclearinghouse.isomessaging.model.ChipsInMessage">
<property name="constantField" value="aConstantValue"/> </bean>
XML bindy route
<route id="inputMarshallingRouter">
<from uri="direct:inputMarshallingModule"/>
<marshal>
<bindy type="FixedLengthRecord" allowEmptyStream="false"
classType="MyModelClass"/>
</marshal>
<to uri="next:endpoint"/>
</route>
Exception
java.lang.NullPointerException: null
at
org.apache.camel.dataformat.bindy.util.ConverterUtils.getByteReturn(ConverterUtils.java:46)
at
org.apache.camel.dataformat.bindy.kvp.BindyKeyValuePairDataFormat.marshal(BindyKeyValuePairDataFormat.java:72)
at
org.apache.camel.support.processor.MarshalProcessor.process(MarshalProcessor.java:64)
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:395)
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
at
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60)
at
org.apache.camel.processor.Pipeline.process(Pipeline.java:147)
at
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:312)
at
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
at
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41)
at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:130)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:318)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1189)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1179)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1076)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
I'm debugging with Intellij IDEA on Windows 10
Thank you for any help with this
This e-mail may contain information that is privileged or confidential. If you
are not the intended recipient, please delete the e-mail and notify us
immediately.