diff --git a/vertx-web/src/main/java/io/vertx/ext/web/handler/sockjs/impl/SockJSSession.java b/vertx-web/src/main/java/io/vertx/ext/web/handler/sockjs/impl/SockJSSession.java index 2f01fa5cad..5a5e67db65 100644 --- a/vertx-web/src/main/java/io/vertx/ext/web/handler/sockjs/impl/SockJSSession.java +++ b/vertx-web/src/main/java/io/vertx/ext/web/handler/sockjs/impl/SockJSSession.java @@ -35,6 +35,7 @@ import io.vertx.core.*; import io.vertx.core.buffer.Buffer; import io.vertx.core.http.HttpServerRequest; +import io.vertx.core.impl.ContextInternal; import io.vertx.core.impl.VertxInternal; import io.vertx.core.impl.logging.Logger; import io.vertx.core.impl.logging.LoggerFactory; @@ -132,7 +133,8 @@ private void writeInternal(String msg, Promise promise) { @Override public Future write(Buffer buffer) { - final Promise promise = ((VertxInternal) vertx).promise(); + final ContextInternal callerCtx = (ContextInternal) vertx.getOrCreateContext(); + final Promise promise = callerCtx.promise(); if (isClosed()) { final Context ctx = transportCtx; if (Vertx.currentContext() != ctx) { @@ -149,7 +151,8 @@ public Future write(Buffer buffer) { @Override public Future write(String text) { - final Promise promise = ((VertxInternal) vertx).promise(); + final ContextInternal callerCtx = (ContextInternal) vertx.getOrCreateContext(); + final Promise promise = callerCtx.promise(); if (isClosed()) { final Context ctx = transportCtx; if (Vertx.currentContext() != ctx) {