diff --git a/vertx-core/src/main/java/io/vertx/core/Completable.java b/vertx-core/src/main/java/io/vertx/core/Completable.java index a73c5a4b304..f2a507742a6 100644 --- a/vertx-core/src/main/java/io/vertx/core/Completable.java +++ b/vertx-core/src/main/java/io/vertx/core/Completable.java @@ -10,8 +10,6 @@ */ package io.vertx.core; -import io.vertx.core.impl.NoStackTraceThrowable; - /** * A view of something that can be completed with a success or failure. * @@ -57,7 +55,7 @@ default void fail(Throwable failure) { * @throws IllegalStateException when this instance is already completed or failed */ default void fail(String message) { - complete(null, new NoStackTraceThrowable(message)); + complete(null, VertxException.noStackTrace(message)); } /** diff --git a/vertx-core/src/main/java/io/vertx/core/Promise.java b/vertx-core/src/main/java/io/vertx/core/Promise.java index a7e60f22bda..add1341e8ce 100644 --- a/vertx-core/src/main/java/io/vertx/core/Promise.java +++ b/vertx-core/src/main/java/io/vertx/core/Promise.java @@ -13,7 +13,6 @@ import io.vertx.codegen.annotations.CacheReturn; import io.vertx.codegen.annotations.GenIgnore; import io.vertx.codegen.annotations.VertxGen; -import io.vertx.core.impl.NoStackTraceThrowable; import io.vertx.core.impl.future.PromiseImpl; @@ -144,7 +143,7 @@ default boolean tryComplete() { * @return false when the future is already completed */ default boolean tryFail(String message) { - return tryFail(new NoStackTraceThrowable(message)); + return tryFail(VertxException.noStackTrace(message)); } /** diff --git a/vertx-core/src/main/java/io/vertx/core/impl/future/FailedFuture.java b/vertx-core/src/main/java/io/vertx/core/impl/future/FailedFuture.java index 7e90303f819..b8f464eef2f 100644 --- a/vertx-core/src/main/java/io/vertx/core/impl/future/FailedFuture.java +++ b/vertx-core/src/main/java/io/vertx/core/impl/future/FailedFuture.java @@ -14,7 +14,7 @@ import io.vertx.core.Completable; import io.vertx.core.Future; import io.vertx.core.Handler; -import io.vertx.core.impl.NoStackTraceThrowable; +import io.vertx.core.VertxException; import io.vertx.core.impl.Utils; import io.vertx.core.internal.ContextInternal; @@ -46,7 +46,7 @@ public FailedFuture(Throwable t) { */ public FailedFuture(ContextInternal context, Throwable t) { super(context); - this.cause = t != null ? t : new NoStackTraceThrowable(null); + this.cause = t != null ? t : VertxException.noStackTrace((String) null); } /** @@ -62,7 +62,7 @@ public FailedFuture(String failureMessage) { * @param failureMessage the failure message */ public FailedFuture(ContextInternal context, String failureMessage) { - this(context, new NoStackTraceThrowable(failureMessage)); + this(context, VertxException.noStackTrace(failureMessage)); } @Override diff --git a/vertx-core/src/main/java/io/vertx/core/impl/future/FutureImpl.java b/vertx-core/src/main/java/io/vertx/core/impl/future/FutureImpl.java index ca6b47c3dae..7fd241e6497 100644 --- a/vertx-core/src/main/java/io/vertx/core/impl/future/FutureImpl.java +++ b/vertx-core/src/main/java/io/vertx/core/impl/future/FutureImpl.java @@ -12,7 +12,6 @@ package io.vertx.core.impl.future; import io.vertx.core.*; -import io.vertx.core.impl.NoStackTraceThrowable; import io.vertx.core.internal.ContextInternal; import java.util.ArrayList; @@ -145,7 +144,7 @@ public final boolean tryComplete(T result) { public final boolean tryFail(Throwable cause) { if (cause == null) { - cause = new NoStackTraceThrowable(null); + cause = VertxException.noStackTrace((String) null); } return completeInternal(null, cause); } diff --git a/vertx-core/src/test/java/io/vertx/tests/future/FutureTest.java b/vertx-core/src/test/java/io/vertx/tests/future/FutureTest.java index 0255b9cd90a..e1aedf13057 100644 --- a/vertx-core/src/test/java/io/vertx/tests/future/FutureTest.java +++ b/vertx-core/src/test/java/io/vertx/tests/future/FutureTest.java @@ -14,7 +14,6 @@ import io.vertx.core.*; import io.vertx.core.Future; import io.vertx.core.internal.ContextInternal; -import io.vertx.core.impl.NoStackTraceThrowable; import io.vertx.core.internal.FutureInternal; import io.vertx.core.internal.PromiseInternal; import io.vertx.test.core.Repeat; @@ -330,8 +329,10 @@ public void testFailFutureToHandler() { public void testCreateFailedWithNullFailure() { io.vertx.core.Future future = io.vertx.core.Future.failedFuture((Throwable)null); Checker checker = new Checker<>(future); - NoStackTraceThrowable failure = (NoStackTraceThrowable) checker.assertFailed(); + Throwable failure = checker.assertFailed(); + assertEquals(VertxException.class, failure.getClass()); assertNull(failure.getMessage()); + assertEquals(0, failure.getStackTrace().length); } @Test @@ -339,8 +340,42 @@ public void testFailureFutureWithNullFailure() { Promise promise = Promise.promise(); promise.fail((Throwable)null); Checker checker = new Checker<>(promise.future()); - NoStackTraceThrowable failure = (NoStackTraceThrowable) checker.assertFailed(); + Throwable failure = checker.assertFailed(); + assertEquals(VertxException.class, failure.getClass()); assertNull(failure.getMessage()); + assertEquals(0, failure.getStackTrace().length); + } + + @Test + public void testFailWithMessage() { + Promise promise = Promise.promise(); + promise.fail("the-message"); + Checker checker = new Checker<>(promise.future()); + Throwable failure = checker.assertFailed(); + assertEquals(VertxException.class, failure.getClass()); + assertEquals("the-message", failure.getMessage()); + assertEquals(0, failure.getStackTrace().length); + } + + @Test + public void testTryFailWithMessage() { + Promise promise = Promise.promise(); + assertTrue(promise.tryFail("the-message")); + Checker checker = new Checker<>(promise.future()); + Throwable failure = checker.assertFailed(); + assertEquals(VertxException.class, failure.getClass()); + assertEquals("the-message", failure.getMessage()); + assertEquals(0, failure.getStackTrace().length); + } + + @Test + public void testFailedFutureWithMessage() { + io.vertx.core.Future future = io.vertx.core.Future.failedFuture("the-message"); + Checker checker = new Checker<>(future); + Throwable failure = checker.assertFailed(); + assertEquals(VertxException.class, failure.getClass()); + assertEquals("the-message", failure.getMessage()); + assertEquals(0, failure.getStackTrace().length); } @Test @@ -1913,7 +1948,7 @@ private void testListenersReportFailureOnContextAfterCompletion(Function