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.

Reply via email to