This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch camel-3.0.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit dfef008777d5917d9dd98dc52cfe269e9eefa333 Author: James Netherton <[email protected]> AuthorDate: Mon Jan 13 09:09:58 2020 +0000 CAMEL-14390: Ensure websocket-jsr356 producer invokes AsyncCallback.done --- .../org/apache/camel/websocket/jsr356/JSR356Producer.java | 11 ++++++----- .../org/apache/camel/websocket/jsr356/JSR356ProducerTest.java | 2 -- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Producer.java b/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Producer.java index 566c3f3..1a8b1d0 100644 --- a/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Producer.java +++ b/components/camel-websocket-jsr356/src/main/java/org/apache/camel/websocket/jsr356/JSR356Producer.java @@ -49,7 +49,7 @@ public class JSR356Producer extends DefaultAsyncProducer { final Session session = exchange.getIn().getHeader(JSR356Constants.SESSION, Session.class); if (session != null && exchange.getIn().getHeader(JSR356Constants.USE_INCOMING_SESSION, false, Boolean.class)) { synchronized (session) { - doSend(exchange, session); + doSend(exchange, callback, session); } } else { onExchange.accept(exchange, callback); @@ -68,14 +68,15 @@ public class JSR356Producer extends DefaultAsyncProducer { final ClientEndpointConfig.Builder clientConfig = ClientEndpointConfig.Builder.create(); manager = new ClientSessions(sessionCount, URI.create(endpointKey), clientConfig.build(), null); manager.prepare(); - onExchange = (ex, cb) -> manager.execute(session -> doSend(ex, session)); + onExchange = (exchange, callback) -> manager.execute(session -> doSend(exchange, callback, session)); } - private void doSend(final Exchange ex, final Session session) { + private void doSend(final Exchange exchange, final AsyncCallback callback, final Session session) { try { - JSR356WebSocketComponent.sendMessage(session, ex.getIn().getBody()); + JSR356WebSocketComponent.sendMessage(session, exchange.getIn().getBody()); + callback.done(true); } catch (final IOException e) { - ex.setException(e); + exchange.setException(e); } } diff --git a/components/camel-websocket-jsr356/src/test/java/org/apache/camel/websocket/jsr356/JSR356ProducerTest.java b/components/camel-websocket-jsr356/src/test/java/org/apache/camel/websocket/jsr356/JSR356ProducerTest.java index 8c2769a..aebcbfd 100644 --- a/components/camel-websocket-jsr356/src/test/java/org/apache/camel/websocket/jsr356/JSR356ProducerTest.java +++ b/components/camel-websocket-jsr356/src/test/java/org/apache/camel/websocket/jsr356/JSR356ProducerTest.java @@ -32,7 +32,6 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.test.junit4.CamelTestSupport; import org.apache.meecrowave.Meecrowave; import org.apache.meecrowave.junit.MeecrowaveRule; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; @@ -54,7 +53,6 @@ public class JSR356ProducerTest extends CamelTestSupport { @Produce("direct:ensureServerModeSendsProperly") private ProducerTemplate serverProducer; - @Ignore @Test public void ensureServerModeSendsProperly() throws Exception { final String body = getClass().getName() + "#" + testName.getMethodName();
