[
https://issues.apache.org/jira/browse/CAMEL-5880?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13646022#comment-13646022
]
Babak Vahdat commented on CAMEL-5880:
-------------------------------------
Regarding your question [@ user
forum|http://camel.465427.n5.nabble.com/camel-quickfix-RequestReplyExample-java-io-IOException-tp5723769p5728217.html]
the reason of the behavior you're observing is the following:
Removing {{MarketOrderStatusService}} from the route has the side effect of an
endless loop because each time the {{QuickfixjConsumer}} fires the out message
it triggers the {{QuickfixjEngine}} to dispatch this QuickFIX/J message (using
a new Camel Exchange object) down the hill to it's destination which is again
the *same* consumer. Then this consumers fires the same QuickFIX/J message out
again and so on and so on. One can also easily see this behaviour given the
stack trace when the whole loop ends up with a {{StackOverflowError}}:
{code}
java.lang.StackOverflowError
at java.lang.ThreadLocal$ThreadLocalMap.getEntry(ThreadLocal.java:357)
at java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java:242)
at java.lang.ThreadLocal.get(ThreadLocal.java:127)
at java.lang.StringCoding.deref(StringCoding.java:46)
at java.lang.StringCoding.encode(StringCoding.java:258)
at java.lang.String.getBytes(String.java:946)
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:228)
at java.io.File.exists(File.java:733)
at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:999)
at sun.misc.URLClassPath.getResource(URLClassPath.java:169)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at quickfix.Session.logApplicationException(Session.java:1267)
at quickfix.Session.sendRaw(Session.java:2422)
at quickfix.Session.send(Session.java:2473)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.sendOutMessage(QuickfixjConsumer.java:60)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.onExchange(QuickfixjConsumer.java:39)
at
org.apache.camel.component.quickfixj.QuickfixjEndpoint.onEvent(QuickfixjEndpoint.java:92)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.dispatch(QuickfixjEngine.java:481)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.toApp(QuickfixjEngine.java:465)
at quickfix.Session.sendRaw(Session.java:2418)
at quickfix.Session.send(Session.java:2473)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.sendOutMessage(QuickfixjConsumer.java:60)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.onExchange(QuickfixjConsumer.java:39)
at
org.apache.camel.component.quickfixj.QuickfixjEndpoint.onEvent(QuickfixjEndpoint.java:92)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.dispatch(QuickfixjEngine.java:481)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.toApp(QuickfixjEngine.java:465)
at quickfix.Session.sendRaw(Session.java:2418)
at quickfix.Session.send(Session.java:2473)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.sendOutMessage(QuickfixjConsumer.java:60)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.onExchange(QuickfixjConsumer.java:39)
at
org.apache.camel.component.quickfixj.QuickfixjEndpoint.onEvent(QuickfixjEndpoint.java:92)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.dispatch(QuickfixjEngine.java:481)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.toApp(QuickfixjEngine.java:465)
at quickfix.Session.sendRaw(Session.java:2418)
at quickfix.Session.send(Session.java:2473)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.sendOutMessage(QuickfixjConsumer.java:60)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.onExchange(QuickfixjConsumer.java:39)
at
org.apache.camel.component.quickfixj.QuickfixjEndpoint.onEvent(QuickfixjEndpoint.java:92)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.dispatch(QuickfixjEngine.java:481)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.toApp(QuickfixjEngine.java:465)
at quickfix.Session.sendRaw(Session.java:2418)
at quickfix.Session.send(Session.java:2473)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.sendOutMessage(QuickfixjConsumer.java:60)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.onExchange(QuickfixjConsumer.java:39)
at
org.apache.camel.component.quickfixj.QuickfixjEndpoint.onEvent(QuickfixjEndpoint.java:92)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.dispatch(QuickfixjEngine.java:481)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.toApp(QuickfixjEngine.java:465)
at quickfix.Session.sendRaw(Session.java:2418)
at quickfix.Session.send(Session.java:2473)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.sendOutMessage(QuickfixjConsumer.java:60)
at
org.apache.camel.component.quickfixj.QuickfixjConsumer.onExchange(QuickfixjConsumer.java:39)
at
org.apache.camel.component.quickfixj.QuickfixjEndpoint.onEvent(QuickfixjEndpoint.java:92)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.dispatch(QuickfixjEngine.java:481)
at
org.apache.camel.component.quickfixj.QuickfixjEngine$Dispatcher.toApp(QuickfixjEngine.java:465)
...
{code}
That's why I will not take over your changes by {{QuickfixjConsumer}} given
through the second patch of yours.
> camel-quickfix: QuickfixjEndpoint should adhere the InOut exchange pattern if
> you would ask for this MEP
> --------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-5880
> URL: https://issues.apache.org/jira/browse/CAMEL-5880
> Project: Camel
> Issue Type: Bug
> Components: camel-quickfix
> Affects Versions: 2.10.3
> Reporter: Babak Vahdat
> Priority: Minor
> Attachments: requestreply-2.patch, requestreply.patch
>
>
> See
> http://camel.465427.n5.nabble.com/camel-quickfix-RequestReplyExample-java-io-IOException-td5723769.html
--
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