Does the Jersey Client Close the Connection when there is an Exception

Refer: https://stackoverflow.com/questions/25674220/does-the-jersey-client-close-the-connection-on-exception

No. Neither does Jersey call client.close() in case of an exception nor does the JerseyClient implement AutoCloseable.

You can easily test this. A client throws a IllegalStateException if you invoke a method after closing:

Client client = ClientBuilder.newClient(); client.close(); client.target("http://stackoverflow.com").request().get(); // IllegalStateException

But you can invoke a method after catching an exception:

Client client = ClientBuilder.newClient();
try {
    client.target("http://foo.bar").request().get(); // java.net.ConnectException: Operation timed out
} catch (Exception ex) {
    client.target("http://stackoverflow.com").request().get(); // works
}

So closing is your job.

Update: JAX-RS 2.1 will use AutoClosables.

Leave a Reply