Le 09/05/2012 16:49, Daniel Kulp a écrit :
> Right.  But lockObject is an instance variable.  However, there is likely 
> only a single instance of the interceptor.   So, let's say you have two 
> requests coming in:
>
> Request 1 calls  getLockObject() which returns a lock, it locks it (increase 
> to 1) and continues.....
>
> Request 2 comes in, calls getLockObject() which this time returns null.   
>
> Now, on Request1 thread, some exception occurs.   In handleFault, lockObject 
> is null, no unlock occurs.  That's really why any lock object that a request 
> uses should be stuck on the message/exchange.  Avoid instance variable if 
> possible.

Just to be clear: Do you mean that there is only 1 interceptor instance
for all the requests to a web service ? I was thinking that there was 1
new instance for each call ?

Best,
Jerome

>
> Dan
>
>
>
>> To be a bit more precise, the problem is that, at some point, I get log
>> messages that says that the lock value is 1, 2, 3 etc... even if there
>> is no more interaction with the web service. This means that "unlock()"
>> in one use case is not called... and I cannot identified this use case.
>>
>> What if the Web Service raise an error what is the Output Chain ?
>>
> Daniel Kulp
> [email protected] - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>

Attachment: smime.p7s
Description: Signature cryptographique S/MIME

Reply via email to