|
From: Anthony W. <an...@wh...> - 2013-10-17 14:01:19
|
I discovered a particularly nasty problem using the Resteasy Client Framework and have documented it in the issue tracker: https://issues.jboss.org/browse/RESTEASY-963 In a nutshell, if a Client Proxy instance makes a call to the service and the service throws an exception, the Client is now rendered inoperable because the underlying connection is not adequately reset. A sample project is included with the issue that demonstrates the problem. Note that there is a scenario (when a connection pool no longer has a valid connection available) where the call becomes FROZEN! If I had to guess on the solution, I would say that the invoke method of ClientInvoker needs to catch the exception and release the underlying connection in the event of an exception. https://github.com/resteasy/Resteasy/blob/master/jaxrs/resteasy-client/src/main/java/org/jboss/resteasy/client/jaxrs/internal/proxy/ClientInvoker.java#L104 I think this is similar to the issue raised by John D. Ament on the 15th. (Resteasy should automatically clean up the connection, but this can not be limited to a GC event because we have no control over GC events.) I look forward to seeing this fixed as this is a serious stability risk. Thank you, Anthony |