summaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner
diff options
context:
space:
mode:
authorgjoranv <gv@yahooinc.com>2023-07-13 15:30:35 +0200
committergjoranv <gv@yahooinc.com>2023-07-13 15:31:02 +0200
commit549b0b35a761cdafaa869ee802f63857543f39ac (patch)
tree94e8de04fded191948a0fefdd32c8d73be318348 /vespa-osgi-testrunner
parentbea252d02f73f1bd0546094313e34bf3adf1d6c0 (diff)
Trim stack traces correctly on both jdk 17 and jdk 21
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r--vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestReport.java10
1 files changed, 5 insertions, 5 deletions
diff --git a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestReport.java b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestReport.java
index 1641bd7802f..a2ac86309d9 100644
--- a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestReport.java
+++ b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestReport.java
@@ -336,15 +336,15 @@ public class TestReport {
StackTraceElement[] stack = thrown.getStackTrace();
int i = 0;
- int previousNativeFrame = -1;
+ int firstReflectFrame = -1;
int cutoff = 0;
boolean rootedInTestFramework = false;
while (++i < stack.length) {
rootedInTestFramework |= testFrameworkRootClass.equals(stack[i].getClassName());
- if (stack[i].isNativeMethod())
- previousNativeFrame = i; // Native method invokes the first user test frame.
- if (rootedInTestFramework && previousNativeFrame > 0) {
- cutoff = previousNativeFrame;
+ if (firstReflectFrame == -1 && stack[i].getClassName().startsWith("jdk.internal.reflect."))
+ firstReflectFrame = i; // jdk.internal.reflect class invokes the first user test frame, on both jdk 17 and 21.
+ if (rootedInTestFramework && firstReflectFrame > 0) {
+ cutoff = firstReflectFrame;
break;
}
boolean isDynamicTestInvocation = "org.junit.jupiter.engine.descriptor.DynamicTestTestDescriptor".equals(stack[i].getClassName());