diff --git a/vertx-core/src/main/java/io/vertx/core/impl/VertxImpl.java b/vertx-core/src/main/java/io/vertx/core/impl/VertxImpl.java index 9e3f1923424..5535cdaa67c 100644 --- a/vertx-core/src/main/java/io/vertx/core/impl/VertxImpl.java +++ b/vertx-core/src/main/java/io/vertx/core/impl/VertxImpl.java @@ -170,7 +170,6 @@ private static ThreadFactory virtualThreadFactory() { private final Throwable transportUnavailabilityCause; private final VertxTracer tracer; private final ThreadLocal> stickyEventLoop = new ThreadLocal<>(); - private final ThreadLocal> stickyContext = new ThreadLocal<>(); private final boolean disableTCCL; private final Boolean useDaemonThread; @@ -521,7 +520,6 @@ public void execute(Runnable command) { } else { ctx = createEventLoopContext(eventLoop, workerPool, Thread.currentThread().getContextClassLoader()); } - stickyContext.set(new WeakReference<>(ctx)); return ctx; } } @@ -706,10 +704,6 @@ private ContextInternal getContext(Thread thread) { return new ShadowContext(this, new EventLoopExecutor(eventLoop), context); } } else { - WeakReference ref = stickyContext.get(); - if (ref != null) { - return ref.get(); - } return null; } } diff --git a/vertx-core/src/test/java/io/vertx/tests/context/ContextTest.java b/vertx-core/src/test/java/io/vertx/tests/context/ContextTest.java index 3fdbd93edd0..63ee4551704 100644 --- a/vertx-core/src/test/java/io/vertx/tests/context/ContextTest.java +++ b/vertx-core/src/test/java/io/vertx/tests/context/ContextTest.java @@ -918,9 +918,8 @@ public void testFailedFutureContextPropagation2() { } @Test - public void testSticky() { + public void testStickiness() { Context ctx = vertx.getOrCreateContext(); - assertSame(ctx, vertx.getOrCreateContext()); assertSame(((ContextInternal)ctx).nettyEventLoop(), ((ContextInternal)vertx.getOrCreateContext()).nettyEventLoop()); } diff --git a/vertx-core/src/test/java/io/vertx/tests/context/EventExecutorProviderTest.java b/vertx-core/src/test/java/io/vertx/tests/context/EventExecutorProviderTest.java index b688afca59d..5f3096a233f 100644 --- a/vertx-core/src/test/java/io/vertx/tests/context/EventExecutorProviderTest.java +++ b/vertx-core/src/test/java/io/vertx/tests/context/EventExecutorProviderTest.java @@ -46,8 +46,6 @@ public void testExecuteTasks() { toRun.pop().run(); assertEquals(1, cnt[0]); assertNull(Vertx.currentContext()); - // Sticky context - assertSame(ctx, vertx.getOrCreateContext()); } @Test diff --git a/vertx-core/src/test/java/io/vertx/tests/worker/NamedWorkerPoolTest.java b/vertx-core/src/test/java/io/vertx/tests/worker/NamedWorkerPoolTest.java index b84049a887e..05b2716a70b 100644 --- a/vertx-core/src/test/java/io/vertx/tests/worker/NamedWorkerPoolTest.java +++ b/vertx-core/src/test/java/io/vertx/tests/worker/NamedWorkerPoolTest.java @@ -128,28 +128,28 @@ public void testUnordered() throws Exception { } @Test - public void testUseDifferentExecutorWithSameTaskQueue() throws Exception { + public void testUseDifferentExecutorWithSameTaskQueue() { int count = 10; waitFor(count); WorkerExecutor exec = vertx.createSharedWorkerExecutor("vert.x-the-executor"); - Thread startThread = Thread.currentThread(); - AtomicReference currentThread = new AtomicReference<>(); - CountDownLatch latch = new CountDownLatch(1); - for (int i = 0;i < count;i++) { - int val = i; - exec.executeBlocking(() -> { - Thread current = Thread.currentThread(); - assertNotSame(startThread, current); - if (val == 0) { - assertNull(currentThread.getAndSet(current)); - awaitLatch(latch); - } else { - assertSame(current, currentThread.get()); - } - return null; - }, true).onComplete(onSuccess(v -> complete())); - latch.countDown(); - } + vertx.runOnContext(v1 -> { + AtomicReference currentThread = new AtomicReference<>(); + CountDownLatch latch = new CountDownLatch(1); + for (int i = 0;i < count;i++) { + int val = i; + exec.executeBlocking(() -> { + Thread current = Thread.currentThread(); + if (val == 0) { + assertNull(currentThread.getAndSet(current)); + awaitLatch(latch); + } else { + assertSame(current, currentThread.get()); + } + return null; + }, true).onComplete(onSuccess(v2 -> complete())); + latch.countDown(); + } + }); await(); }