Hi, We had the same issue when upgrading to restlet 2.0.0. Some links about the (I think) same issue:
http://restlet.tigris.org/issues/show_bug.cgi?id=1053 andhttp://comments.gmane.org/gmane.comp.java.restlet/12273 It all boils down to calling the exhaust() method on the response representation (in a finally-block), which solves the problem. For some reason calling the release() method is not enough, and this 'exhaust' solves the problem. We asked a similar question on the list some days ago. We still have other issues (closed streams in a StreamRepresentation), which did not happen in restlet version r6565 but do happen in 2.0.0. Maybe an overview of what has changed and what to be carefull about would be a good idea? Freya > Hi, > > We are using ClientResource in a Restlet to make calls to another > server-side Restlet (we're implementing proxy-functionality), and we are > having lots of issues with hanging calls. We have traced it down to the > "latch/unblock" code in BaseClientHelper, which is not 100% working. > Sometimes it just doesn't work, and we see the client code hanging on > BaseClientHelper.handle(Request,Response) "latch.await()". > > If the Restlet we are calling results in a "Socket error"/"Broken pipe" > call, then we can easily see that there simply is no unblock happening > in the BaseClientHelper code (because the catch code doesn't do > unblock), and so the request hangs. The only way to unhang is to restart > the server. > > It's really hard to try to follow what is going on and understand what > is missing with the latch/unblock, so if anyone has pointers, or have > had this issue, please let us know. It's keeping us from going into > production right now :-( > > thanks, Rickard > > ------------------------------------------------------ > http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2649186 > > ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2649207