Description copied from email:
I've read over this more and now see that the partial response stuff is definitely for asynchronous processing, so the check with the WS-Addressing relatesTo header makes sense. The problem (I think) appears in your checkin revision 705446 for ClientImpl.java in this section:
You added the "&& callback == null" test, but I think what is needed is "|| callback == null". The idea here (again, as I'm reading it) is regarding these two cases:
- it's an asynchronous response which is not a partial response
- there is no callback, meaning it's a synchronous response
In either of these cases you want to tell the exchange that it's finished and the message you just got is the inbound message. I think this worked for a long time without anyone running into this because in the synchronous case (callback == null), the only way you get a partialResponse==true is when WS-Addressing is engaged AND the server that you're connecting to doesn't return the optional (but almost always used) relatesTo header. Probably in the vast majority of cases either WS-Addressing isn't used or the relatesTo header is present in a response.
If you agree, I can create a defect and describe this. Since the change is just && to ||, obviously it won't help to send you a patch file