Camel Bindy Parser One to Many KvP Unmarshall Issue ---------------------------------------------------
Key: CAMEL-4311 URL: https://issues.apache.org/jira/browse/CAMEL-4311 Project: Camel Issue Type: Bug Components: camel-bindy Affects Versions: 2.8.0, 2.7.3, 2.7.2, 2.7.0 Environment: Windows, Linux Reporter: surya Priority: Minor Fix For: 2.9.0 Bindy KvP unmarshall issue. While unmarshalling FIX messages, camel-bindy causing inconsistencies if the incoming fix messages are defined to map using 'OneToMany' annotations. In a given route for eg: BindyKeyValuePairDataFormat kvpBindyDataFormat = new BindyKeyValuePairDataFormat("org.apache.camel.dataformat.bindy.model.fix.complex.onetomany"); public void configure() { from(URI_DIRECT_START).unmarshal(kvpBindyDataFormat).to(URI_MOCK_RESULT); } kvpBindyDataFormat is single instance for multiple threads and with in 'BindyKeyValuePairFactory' class instance varialbe below is shared across multiple threads causing data inconsistencies. private Map<String, List<Object>> lists = new HashMap<String, List<Object>>(); Values from previous thread/messages are retained in the current thread causing issues. For eg in the test case: public class BindyComplexOneToManyKeyValuePairUnMarshallTest extends CommonBindyTest if we send another message with no repeating groups are sent. String message2 = "8=FIX 4.19=2034=135=049=INVMGR56=BRKR" + "1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test" + "10=220"; The output message has repeating group data from message processed in earlier thread are pouplated causing data inconsistencies. Please suggest the fix considering multi-threading scenario. I am willing to volunteer for the fix. Regards, Surya -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira