diff --git a/CHANGELOG.md b/CHANGELOG.md
index 370b3d8c56..5ae2f47ca2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
+### Fixed
+- [Core] Include stack traces in html report ([#2862](https://github.com/cucumber/cucumber-jvm/pull/2862) M.P. Korstanje)
## [7.16.0] - 2024-03-21
### Added
diff --git a/cucumber-bom/pom.xml b/cucumber-bom/pom.xml
index 23f3198587..fbbff8a191 100644
--- a/cucumber-bom/pom.xml
+++ b/cucumber-bom/pom.xml
@@ -16,8 +16,8 @@
17.1.0
28.0.0
21.3.0
- 0.2.1
- 24.0.1
+ 0.3.0
+ 24.1.0
6.1.0
diff --git a/cucumber-core/src/main/java/io/cucumber/core/runner/TestStep.java b/cucumber-core/src/main/java/io/cucumber/core/runner/TestStep.java
index 9c20db0c01..f0340778ef 100644
--- a/cucumber-core/src/main/java/io/cucumber/core/runner/TestStep.java
+++ b/cucumber-core/src/main/java/io/cucumber/core/runner/TestStep.java
@@ -10,9 +10,6 @@
import io.cucumber.plugin.event.TestStepFinished;
import io.cucumber.plugin.event.TestStepStarted;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.time.Instant;
import java.util.UUID;
@@ -117,7 +114,7 @@ private void emitTestStepFinished(
TestStepResult testStepResult = new TestStepResult(
toMessage(duration),
- result.getError() != null ? extractStackTrace(result.getError()) : null,
+ result.getError() != null ? result.getError().getMessage() : null,
from(result.getStatus()),
result.getError() != null ? toMessage(result.getError()) : null);
@@ -128,12 +125,4 @@ private void emitTestStepFinished(
toMessage(stopTime)));
bus.send(envelope);
}
-
- private String extractStackTrace(Throwable error) {
- ByteArrayOutputStream s = new ByteArrayOutputStream();
- PrintStream printStream = new PrintStream(s);
- error.printStackTrace(printStream);
- return new String(s.toByteArray(), StandardCharsets.UTF_8);
- }
-
}
diff --git a/cucumber-core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java b/cucumber-core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java
index 80c7c46962..5e4a252f29 100644
--- a/cucumber-core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java
+++ b/cucumber-core/src/main/java/io/cucumber/core/runtime/CucumberExecutionContext.java
@@ -24,7 +24,6 @@
import java.util.function.Consumer;
import static io.cucumber.cienvironment.DetectCiEnvironment.detectCiEnvironment;
-import static io.cucumber.core.exception.ExceptionUtils.printStackTrace;
import static io.cucumber.core.exception.ExceptionUtils.throwAsUncheckedException;
import static io.cucumber.core.exception.UnrecoverableExceptions.rethrowIfUnrecoverable;
import static io.cucumber.messages.Convertor.toMessage;
@@ -118,7 +117,7 @@ private void emitTestRunFinished(Throwable exception) {
bus.send(new TestRunFinished(instant, result));
io.cucumber.messages.types.TestRunFinished testRunFinished = new io.cucumber.messages.types.TestRunFinished(
- exception != null ? printStackTrace(exception) : null,
+ exception != null ? exception.getMessage() : null,
exception == null && exitStatus.isSuccess(),
toMessage(instant),
exception == null ? null : toMessage(exception));