homberghp commented on code in PR #8568:
URL: https://github.com/apache/netbeans/pull/8568#discussion_r3008630794
##########
java/maven.junit.ui/src/org/netbeans/modules/maven/junit/ui/MavenJUnitNodeOpener.java:
##########
@@ -186,18 +188,18 @@ public void openCallstackFrame(Node node, @NonNull String
frameInfo) {
FileObject file = UIJavaUtils.getFile(frameInfo, lineNumStorage,
locator);
//lineNumStorage -1 means no regexp for stacktrace was matched.
if (testfo != null && file == null &&
methodNode.getTestcase().getTrouble() != null && lineNumStorage[0] == -1) {
- //213935 we could not recognize the stack trace line and map
it to known file
+ //213935 we could not recognize the stack trace line and map it to
known file
//if it's a failure text, grab the testcase's own line from the
stack.
String[] st =
methodNode.getTestcase().getTrouble().getStackTrace();
- if ((st != null) && (st.length > 0)) {
- int index = st.length - 1;
- //213935 we need to find the testcase linenumber to jump
to.
- // and ignore the infrastructure stack lines in the process
- while (!testfo.equals(file) && index != -1) {
+ for (int index = 0; !testfo.equals(file) && index < st.length;
index++) {
+ String trimmed = JavaRegexpUtils.specialTrim(st[index]);
+ if
(trimmed.startsWith(JavaRegexpUtils.CALLSTACK_LINE_PREFIX_CATCH)
+ ||
trimmed.startsWith(JavaRegexpUtils.CALLSTACK_LINE_PREFIX)) {
file = UIJavaUtils.getFile(st[index], lineNumStorage,
locator);
- index -= 1;
+ break;
}
}
+
}
Review Comment:
I have been trying to reproduce that with a simple test project, but I
failed to do so. Both approaches appear to behave similarly.
That may be because the tests in NetBeans refactoring defer the test run,
which could cause the effect.
However, when I compare the two approaches, I find that the current NetBeans
approach lands me on the method on line 489.
<img width="815" height="262" alt="image"
src="https://github.com/user-attachments/assets/a2d01ea2-04c9-4110-9c35-72ee4d144ebc"
/>
which is the first non-infra stack trace line and is in a sibling of the
test class,
whereas the approach I propose lands me inside the test method, at the
precise invocation of the verification method on line 64, as it should be IMHO.
<img width="730" height="605" alt="image"
src="https://github.com/user-attachments/assets/a33a8be9-2ce7-433e-ac79-c41196d5a1b4"
/>
The dark theme is the NB 29 installed as binary from netbeans.org; the light
theme is my local build on my branch issue8567.
Note: I do not recall noticing that what #8567 describes occurs with
anything other than NetBeans internal tests.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists