From 663a6d2e2ee1abe129fb84fd5c7c7e3e65484b60 Mon Sep 17 00:00:00 2001 From: Dan Downs Date: Mon, 26 Jan 2015 13:42:42 -0500 Subject: [PATCH 1/2] Make hasEntity() work with a closed stream. --- .../jersey/message/internal/InboundMessageContext.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/core-common/src/main/java/org/glassfish/jersey/message/internal/InboundMessageContext.java b/core-common/src/main/java/org/glassfish/jersey/message/internal/InboundMessageContext.java index 98674cbb15..b1f76fe338 100644 --- a/core-common/src/main/java/org/glassfish/jersey/message/internal/InboundMessageContext.java +++ b/core-common/src/main/java/org/glassfish/jersey/message/internal/InboundMessageContext.java @@ -741,8 +741,6 @@ public void setWorkers(MessageBodyWorkers workers) { * {@code false} otherwise. */ public boolean hasEntity() { - entityContent.ensureNotClosed(); - try { return !entityContent.isEmpty(); } catch (IllegalStateException ex) { From 0720b6d2474539c5c27cd6ae9f9bb7ef8be752ef Mon Sep 17 00:00:00 2001 From: Dan Downs Date: Wed, 28 Jan 2015 14:47:48 -0500 Subject: [PATCH 2/2] update unit test --- .../jersey/tests/e2e/client/ResponseCloseTest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/client/ResponseCloseTest.java b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/client/ResponseCloseTest.java index e38c0b41a3..2f374a551a 100644 --- a/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/client/ResponseCloseTest.java +++ b/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/client/ResponseCloseTest.java @@ -49,6 +49,8 @@ import org.glassfish.jersey.test.JerseyTest; import org.junit.Test; + +import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; /** @@ -160,10 +162,10 @@ public void testHasEntityAfterClose() { final Response response = target().path("simple").request().get(Response.class); response.close(); try { - response.hasEntity(); - fail("IllegalStateException expected when reading a buffered entity after response has been closed."); + boolean hasEntity = response.hasEntity(); + assertFalse("Should return false when the connection is already closed", hasEntity); } catch (IllegalStateException ex) { - // expected + fail("IllegalStateException should have been caught inside hasEntity."); } } }