[ 
https://issues.apache.org/jira/browse/CAMEL-5979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13600641#comment-13600641
 ] 

Christian Müller commented on CAMEL-5979:
-----------------------------------------

It's now fixed in trunk (r1455750), camel-2.10.x (r1455752) and camel-2.9.y 
(r1455760, r1455762).
Could you please verify whether the fix works for you?

And thanks again for the patch...
                
> Camel-Quickfix dynamic SenderSubId/TargetSubId issue
> ----------------------------------------------------
>
>                 Key: CAMEL-5979
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5979
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-quickfix
>    Affects Versions: 2.10.3
>         Environment: QuickFix/J version 1.5 on JDK 1.6.x
>            Reporter: Yogesh Rao
>            Assignee: Christian Müller
>            Priority: Minor
>             Fix For: Future
>
>         Attachments: QuickfixjConsumer.java.patch
>
>
> I am facing an issue with camel-quickfix component for the following scenario.
> We have a FIX message coming in to the Quickfix/J engine i.e. logon request 
> with only the senderID and TargetID populated and the engine successfully 
> processes the logon request based on the configuration. The subsequent 
> requests for Single Order (Tag # 35 = D) the message received contains the 
> optional values SenderSubID and TargetSubID populated, the message is picked 
> up by the camel component without any issue but its only when a reply has to 
> sent to the sender the component ends up throwing a error i.e. 
> IllegalStateException : Unknown Session... I looked into the code 
> https://svn.apache.org/repos/asf/camel/trunk/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjConsumer.java
>  and found the issue. The session ID is being reconstructed from the in value 
> being set into the exchange object, which as per API used would construct the 
> session containing SenderID,SenderSubID,TargetID and TargetSubID which is 
> getting compared to the session set during the logon process which only 
> contains the SenderID and TargetID and hence doesn't matches and returns a 
> null. On receiving the null value the code ends up throwing the 
> IllegalStateException. Looking at the QuickFixJConsumer code i do understand 
> the importance of reconstructing the SessionID object from the Message set as 
> Out in Exchange but from what i read about various client implementations on 
> using FIX the above scenario mentioned also holds good. For now I have gone 
> ahead and patched the QuickFixJConsumer code for my project by picking up the 
> session id set in Exchange object rather than recreating it using the 
> MessageUtils. But i feel in a longer run a elegant solution has to be put in 
> place rather than user of camel patching the code up for their use:) 
> In case you need any further details do let me know.. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to