Hello,

       Exception doesn't occur but doesn't help. If i do

     client.sendSync(me);
     me.setStatus(ExchangeStatus.DONE);

then the call just exits from the processInOnly method of the actual
endpoint, the control doesn't come till where the sendsync is sent to the
other component.

Is there any problem if we use the same component context for the creation
of ME and do a sendsync more than once in a flow is there any problem. What
i feel is my first sendsync is still waiting, where in the same flow using
the same context iam creating another exchange and doing a sendsync again,
which is might be interrupting the waiting thread. 

Best Regards
Param


Gert Vanthienen wrote:
> 
> L.S.,
> 
> Could you try sending the DONE status for the original MessageExchange
> with a send() instead of a sendSync()?  Also, could you verify that
> all MEPs are finished correctly -- your code shows very few DONE
> messages being sent but perhaps you just omitted them for brevity?
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/3/23 smx_user <[email protected]>:
>>
>> Hello Gert,
>>
>>  Here is the main piece of code that i have.
>>
>> The test class code :
>>
>>  DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
>>        InOnly me = client.createInOnlyExchange();
>>
>>        me.getInMessage().setProperty("property1", list);//List is filled
>> with some data
>>
>>
>>        me.setService(new QName("urn:test", "service"));
>>
>>        client.sendSync(me);
>>
>> //This is the code of actual endpoint
>>    protected void processInOnly(MessageExchange exchange,
>>            NormalizedMessage in) throws Exception {
>>
>>        if (in.getProperty("property1") != null) {
>>
>>            List dataList = (List) in
>>                    .getProperty("property1");
>>
>>    }
>>
>>
>> //This is sendSync part to the other component
>>
>> //context here is the component context
>>        final InOut inOutexchange = context.getDeliveryChannel()
>> .createExchangeFactory().createInOutExchange();
>>
>>       inOutexchange.setService(targetService);//targetService is
>> constructed one
>>
>>        final NormalizedMessage inMessage = inOutexchange.createMessage();
>>        inMessage.setProperty("inProperty",/*Some Object*/);
>>        inOutexchange.setMessage(inMessage, "in");
>>
>>        context.getDeliveryChannel().sendSync(inOutexchange);
>>
>>        NormalizedMessage outResponse = inOutexchange.getOutMessage();
>>
>> and then work with out message to extract the required property.
>>
>> Exception happens when sendSync is called.
>>
>> //and this is the piece of code that i have in my testprovider end point
>>    protected void processInOut(MessageExchange exchange,
>>            NormalizedMessage in, NormalizedMessage out) throws Exception
>> {
>>        out.setProperty("property2",/* some constructed object*/);
>>        exchange.setMessage(out, "out");
>>
>>    }
>>
>> The spring.xml doesn't have any problem as it is able to recognise mocked
>> target service.
>>
>> Do see any problem here? Or if there any other way with which i can test
>> my
>> sendsync part plzz let me know.
>>
>> Best Regards
>> Param
>>
>>
>>
>>
>>
>>
>> Gert Vanthienen wrote:
>>>
>>> L.S.,
>>>
>>> The exception indicates that the thread that was waiting for the sync
>>> exchange to come back somehow got interrupted.  In ServiceMix itself,
>>> this will probably happen if you close the DeliveryChannel or the Flow
>>> that is carrying the exchange.  Do you do anything like this in your
>>> test code?  Or do you perhaps do any other thread manipulation in that
>>> code yourself?
>>>
>>> If this doesn't help you solve the problem, we might be able to help
>>> you better if you post the source code for the testing endpoint and/or
>>> the spring XML file that configures the endpoints.
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/3/23 smx_user <[email protected]>:
>>>>
>>>> Hello,
>>>>
>>>>         Iam facing the problem while doing a sendsync. A messaging
>>>> exception(InterruptedException) is thrown with the following stacktrace
>>>>
>>>> javax.jbi.messaging.MessagingException: java.lang.InterruptedException
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:508)
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>>>>        at
>>>> org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:95)
>>>>        at test.JbiMsgSender.dosendsync(JbiMsgSender.java:82)
>>>>        at
>>>> Caused by: java.lang.InterruptedException
>>>>        at java.lang.Object.wait(Native Method)
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.waitForExchange(DeliveryChannelImpl.java:709)
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:472)
>>>>        ... 10 more
>>>>
>>>> where JbiMsgSender is my test class.
>>>>
>>>> Just to give background, I have a component which contains 2 provider
>>>> endpoints. Lets Name it
>>>>
>>>> ActualProviderEndpoint
>>>> TestingProviderEndpoint
>>>>
>>>> Now Actualprovider endpoint is making sendsync call to the other
>>>> component
>>>> in the JBI environment for consuming some service. Now for the testing
>>>> purpose of ActualProviderEndpoint, i have created the
>>>> TestingProviderEndpoint in the same component . In the spring.xml i
>>>>  have
>>>> configured the targetservice to be TestingProviderEndpoint for
>>>> ActualProviderEndpoint. I have created inout exchange and doing a
>>>> sendSync.
>>>> Now the exception is thrown @ waitForExchange  method in
>>>> DeliveryChannelImpl.java:709.
>>>>
>>>> In actual JBI environment same code works, but only in the testing
>>>> environement this exception is thrown.
>>>>
>>>> Any clue to resolve this error? If there is better way to test the
>>>> provider
>>>> endpoint consuming a service via spring framework plzz let me know
>>>>
>>>> Thanks in advance
>>>> Param
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Problem-With-SendSync---InterruptedException%28Test-environment%29-tp22657797p22657797.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://gertvanthienen.blogspot.com
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Problem-With-SendSync---InterruptedException%28Test-environment%29-tp22657797p22663872.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: 
http://www.nabble.com/Problem-With-SendSync---InterruptedException%28Test-environment%29-tp22657797p22683346.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to