[ 
https://issues.apache.org/activemq/browse/SM-1110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40436
 ] 

Guillaume Nodet commented on SM-1110:
-------------------------------------

Sending        
servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
Adding         
servicemix-bean/src/test/java/org/apache/servicemix/bean/ConsumerListenerTest.java
Sending        
servicemix-bean/src/test/java/org/apache/servicemix/bean/beans/ConsumerListener.java
Transmitting file data ...
Committed revision 586570.


I will that in trunk asap.

> ServiceMix is not sending a response back to the calling Service in an In-Out 
> Message Exchange
> ----------------------------------------------------------------------------------------------
>
>                 Key: SM-1110
>                 URL: https://issues.apache.org/activemq/browse/SM-1110
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-bean, servicemix-core
>    Affects Versions: 3.1.2
>         Environment: MacBook Pro
> Mac OS X 10.4
> Java JDK 1.5.0.7
> Maven 2.0.7
>            Reporter: Andreas Schaefer
>         Attachments: smx.send.problem.test.zip
>
>
> When sending an In-Out message from a Bean SU to another component (here a 
> Script SU) asynchronously then the response is not routed back to the calling 
> SU even though it returns back to the correct BC. What is happening is that 
> the Consumer Endpoint of the called SU is used. In the attached test the 
> called SU is based on a Script BC and so it cannot even find a service.
> Note: the problem is not somewhat shortcut by the issues SM-994 
> (https://issues.apache.org/activemq/browse/SM-944). I hacked the issue and I 
> see that the called SU is called.
> The attached file is a ZIP file of a complete project. To run the test build 
> the project with "mvn install".
> The important lines are:
> 2007-10-18 10:32:07,851 [ed-0:1-thread-1] INFO  InOutReceiver                 
>  - process(), send back response, ME: InOut[
>   id: ID:10.250.1.197-115b42ceaed-2:0
>   status: Active
>   role: provider
>   service: {urn:xTest}script-receiver-service
>   endpoint: in-out-receiver
>   operation: IdontCare: 0
>   in: <?xml version="1.0" 
> encoding="UTF-8"?><receiver><title>DontCareEvenMore</title><index>0</index></receiver>
>   out: <?xml version="1.0" encoding="UTF-8"?><world>hello</world>
> ]
> 2007-10-18 10:32:07,857 [ed-0:1-thread-1] DEBUG DeliveryChannelImpl           
>  - Send ID:10.250.1.197-115b42ceaed-2:0 in 
> DeliveryChannel{ID:10.250.1.197-115b42ceaed-0:1}
> 2007-10-18 10:32:07,858 [ed-0:1-thread-1] DEBUG SedaFlow                      
>  - Called Flow send
> 2007-10-18 10:32:07,859 [ed-0:1-thread-2] DEBUG SedaQueue                     
>  - [EMAIL PROTECTED] dequeued exchange: InOut[
>   id: ID:10.250.1.197-115b42ceaed-2:0
>   status: Active
>   role: consumer
>   service: {urn:xTest}script-receiver-service
>   endpoint: in-out-receiver
>   operation: IdontCare: 0
>   in: <?xml version="1.0" 
> encoding="UTF-8"?><receiver><title>DontCareEvenMore</title><index>0</index></receiver>
>   out: <?xml version="1.0" encoding="UTF-8"?><world>hello</world>
> ]
> 2007-10-18 10:32:07,859 [ed-0:1-thread-2] DEBUG BeanComponent                 
>  - Received exchange: status: Active, role: consumer
> 2007-10-18 10:32:07,859 [ed-0:1-thread-2] DEBUG BeanComponent                 
>  - Retrieved correlation id: ID:10.250.1.197-115b42ceaed-2:0
> 2007-10-18 10:32:07,862 [ed-0:1-thread-2] ERROR BeanComponent                 
>  - Error processing exchange InOut[
>   id: ID:10.250.1.197-115b42ceaed-2:0
>   status: Active
>   role: consumer
>   service: {urn:xTest}script-receiver-service
>   endpoint: in-out-receiver
>   operation: IdontCare: 0
>   in: <?xml version="1.0" 
> encoding="UTF-8"?><receiver><title>DontCareEvenMore</title><index>0</index></receiver>
>   out: <?xml version="1.0" encoding="UTF-8"?><world>hello</world>
> ]
> java.lang.IllegalStateException: Receiving unknown consumer exchange: InOut[
>   id: ID:10.250.1.197-115b42ceaed-2:0
>   status: Active
>   role: consumer
>   service: {urn:xTest}script-receiver-service
>   endpoint: in-out-receiver
>   operation: IdontCare: 0
>   in: <?xml version="1.0" 
> encoding="UTF-8"?><receiver><title>DontCareEvenMore</title><index>0</index></receiver>
>   out: <?xml version="1.0" encoding="UTF-8"?><world>hello</world>
> ]
>         at 
> org.apache.servicemix.bean.BeanEndpoint.onConsumerExchange(BeanEndpoint.java:266)
>         at 
> org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:196)
>         at 
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>         at 
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
>         at 
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at 
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:595)
>         at 
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>         at 
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
>         at 
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>         at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>         at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:613)
> The InOutReceiver Script component is setting a response (Out Message) and 
> sending the message back through the delivery channel. The message is then 
> picked up correctly by a BeanEndpoint but because of the wrong address 
> (service) it ends up in the Consumer Endpoint of the wrong Bean. The 
> exception (Unkown consumer exchange) is another problem that comes from the 
> fact that the list of requests are a private member of an Endpoint and the 
> Consumer and the Provider are two different Endpoint instances. I fixed that 
> issue but it does not make any difference.
> -Andy

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to