I cannot accept this pull request as it will break JAX-RS TCK tests. If
you want to add a configuration switch to automatically close the
connection, thats fine, but the default needs to keep it open as this is
required by the specification.
On 10/21/2013 4:52 PM, Anthony Whitford wrote:
I created a fix for this issue by modifying the error handling of the
ClientInvocation.extractResult method.
See Pull Request: https://github.com/resteasy/Resteasy/pull/397
My primary concern about catching WebApplicationException all over the
place is that it seems to violate Separation of Concerns. A user of the
interface is not responsible for allocating or managing the connection,
so why should it be responsible for closing it? As a user of the
interface, it may not even be clear that it is an RPC call -- that is
some of the beauty of the abstraction.
Note that in my example, the error message still comes through as
text/html... But the status code is 500. I am merely focused on not
violating the underlying Apache Client state.
Please review. Thank you,
Anthony
On Oct 17, 2013, at 2:10 PM, Bill Burke bbu...@redhat.com
mailto:bbu...@redhat.com wrote:
Unfortunately, you are responsible for cleaning up the connection
yourself. You must do:
try {
... do something with client ...
} catch (WebApplicationException ex) {
ex.getResponse().close();
}
This is because the response may contain an entity that the user wants
to access. I'm pretty sure we're not allowed to automatically close the
underlying Response object.
On 10/17/2013 10:01 AM, Anthony Whitford wrote:
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
--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the
most from
the latest Intel processors and coprocessors. See abstracts and
register
http://pubads.g.doubleclick.net/gampad/clk?id=60135031iu=/4140/ostg.clktrk
___
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users
--
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com
--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the
most from
the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60135031iu=/4140/ostg.clktrk
___
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users
--
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com
--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users