You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2016/09/21 00:27:22 UTC
cxf git commit: CXF-5855: Minor fixes in closing the SSE output
Repository: cxf
Updated Branches:
refs/heads/master 122d1f64f -> 584df3ae1
CXF-5855: Minor fixes in closing the SSE output
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/584df3ae
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/584df3ae
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/584df3ae
Branch: refs/heads/master
Commit: 584df3ae111595da1b44ccd9db9567c2172bbb2e
Parents: 122d1f6
Author: reta <dr...@gmail.com>
Authored: Tue Sep 20 20:26:57 2016 -0400
Committer: reta <dr...@gmail.com>
Committed: Tue Sep 20 20:26:57 2016 -0400
----------------------------------------------------------------------
.../jaxrs/sse/atmosphere/SseAtmosphereEventOutputImpl.java | 8 ++++++--
.../sse/atmosphere/AtmosphereSseServletDestination.java | 2 ++
.../org/apache/cxf/systest/jaxrs/sse/AbstractSseTest.java | 6 ++++++
3 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/584df3ae/rt/rs/sse/src/main/java/org/apache/cxf/jaxrs/sse/atmosphere/SseAtmosphereEventOutputImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/sse/src/main/java/org/apache/cxf/jaxrs/sse/atmosphere/SseAtmosphereEventOutputImpl.java b/rt/rs/sse/src/main/java/org/apache/cxf/jaxrs/sse/atmosphere/SseAtmosphereEventOutputImpl.java
index 3896ec6..0a85d3f 100644
--- a/rt/rs/sse/src/main/java/org/apache/cxf/jaxrs/sse/atmosphere/SseAtmosphereEventOutputImpl.java
+++ b/rt/rs/sse/src/main/java/org/apache/cxf/jaxrs/sse/atmosphere/SseAtmosphereEventOutputImpl.java
@@ -34,6 +34,7 @@ import javax.ws.rs.sse.SseEventOutput;
import org.apache.cxf.common.logging.LogUtils;
import org.atmosphere.cpr.AtmosphereResource;
+import org.atmosphere.cpr.AtmosphereResponse;
import org.atmosphere.cpr.Broadcaster;
public class SseAtmosphereEventOutputImpl implements SseEventOutput {
@@ -69,10 +70,13 @@ public class SseAtmosphereEventOutputImpl implements SseEventOutput {
resource.removeFromAllBroadcasters();
try {
- if (!resource.getResponse().isCommitted()) {
+ final AtmosphereResponse response = resource.getResponse();
+ if (!response.isCommitted()) {
LOG.fine("Response is not committed, flushing buffer");
- resource.getResponse().flushBuffer();
+ response.flushBuffer();
}
+
+ response.closeStreamOrWriter();
} finally {
resource.close();
broadcaster.destroy();
http://git-wip-us.apache.org/repos/asf/cxf/blob/584df3ae/rt/rs/sse/src/main/java/org/apache/cxf/transport/sse/atmosphere/AtmosphereSseServletDestination.java
----------------------------------------------------------------------
diff --git a/rt/rs/sse/src/main/java/org/apache/cxf/transport/sse/atmosphere/AtmosphereSseServletDestination.java b/rt/rs/sse/src/main/java/org/apache/cxf/transport/sse/atmosphere/AtmosphereSseServletDestination.java
index 15e5c9f..37cfc5e 100644
--- a/rt/rs/sse/src/main/java/org/apache/cxf/transport/sse/atmosphere/AtmosphereSseServletDestination.java
+++ b/rt/rs/sse/src/main/java/org/apache/cxf/transport/sse/atmosphere/AtmosphereSseServletDestination.java
@@ -36,6 +36,7 @@ import org.apache.cxf.jaxrs.sse.atmosphere.SseAtmosphereInterceptor;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.transport.http.DestinationRegistry;
import org.apache.cxf.transport.servlet.ServletDestination;
+import org.atmosphere.cache.UUIDBroadcasterCache;
import org.atmosphere.cpr.ApplicationConfig;
import org.atmosphere.cpr.AtmosphereFramework;
import org.atmosphere.cpr.AtmosphereRequestImpl;
@@ -58,6 +59,7 @@ public class AtmosphereSseServletDestination extends ServletDestination {
framework.addInitParameter(ApplicationConfig.WEBSOCKET_SUPPORT, "true");
framework.addInitParameter(ApplicationConfig.DISABLE_ATMOSPHEREINTERCEPTOR, "true");
framework.addInitParameter(ApplicationConfig.CLOSE_STREAM_ON_CANCEL, "true");
+ framework.setBroadcasterCacheClassName(UUIDBroadcasterCache.class.getName());
framework.addAtmosphereHandler("/", new DestinationHandler());
framework.init();
http://git-wip-us.apache.org/repos/asf/cxf/blob/584df3ae/systests/rs-sse/src/test/java/org/apache/cxf/systest/jaxrs/sse/AbstractSseTest.java
----------------------------------------------------------------------
diff --git a/systests/rs-sse/src/test/java/org/apache/cxf/systest/jaxrs/sse/AbstractSseTest.java b/systests/rs-sse/src/test/java/org/apache/cxf/systest/jaxrs/sse/AbstractSseTest.java
index 0cf3087..bf93da6 100644
--- a/systests/rs-sse/src/test/java/org/apache/cxf/systest/jaxrs/sse/AbstractSseTest.java
+++ b/systests/rs-sse/src/test/java/org/apache/cxf/systest/jaxrs/sse/AbstractSseTest.java
@@ -61,6 +61,8 @@ public abstract class AbstractSseTest extends AbstractBusClientServerTestBase {
assertThat(response, containsString("id: 4"));
assertThat(response, containsString("data: " + toJson("New Book #4", 4)));
+
+ r.close();
}
@Test
@@ -82,6 +84,8 @@ public abstract class AbstractSseTest extends AbstractBusClientServerTestBase {
assertThat(response, containsString("id: 152"));
assertThat(response, containsString("data: " + toJson("New Book #154", 154)));
+
+ r.close();
}
@Test
@@ -91,6 +95,8 @@ public abstract class AbstractSseTest extends AbstractBusClientServerTestBase {
final Book[] books = r.readEntity(Book[].class);
assertThat(Arrays.asList(books), hasItems(new Book("New Book #1", 1), new Book("New Book #2", 2)));
+
+ r.close();
}
@Test