You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by lk...@apache.org on 2020/10/17 14:58:12 UTC
[netbeans] branch delivery updated: Stack trace analyzer needs to
understand modular stack traces.
This is an automated email from the ASF dual-hosted git repository.
lkishalmi pushed a commit to branch delivery
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/delivery by this push:
new b2d19c8 Stack trace analyzer needs to understand modular stack traces.
b2d19c8 is described below
commit b2d19c822c0f7274976213a7e6aef8eb4ab72ab6
Author: Jan Lahoda <jl...@netbeans.org>
AuthorDate: Sat Oct 17 07:09:27 2020 +0200
Stack trace analyzer needs to understand modular stack traces.
---
.../java/stackanalyzer/StackLineAnalyser.java | 21 +++++++++++++--------
.../java/stackanalyzer/StackLineAnalyserTest.java | 8 ++++++++
2 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/java/java.navigation/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyser.java b/java/java.navigation/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyser.java
index e044461..0212c1d 100644
--- a/java/java.navigation/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyser.java
+++ b/java/java.navigation/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyser.java
@@ -58,6 +58,7 @@ class StackLineAnalyser {
"\\p{javaJavaIdentifierStart}\\p{javaJavaIdentifierPart}*"; // NOI18N
private static final Pattern LINE_PATTERN = Pattern.compile(
"at\\s" + // initial at // NOI18N
+ "("+IDENTIFIER+"(?:\\."+IDENTIFIER+")*/)?" + // optional module name // NOI18N
"(("+IDENTIFIER+"(\\."+IDENTIFIER+")*)\\.)?("+IDENTIFIER+")" + // class name // NOI18N
"\\.("+IDENTIFIER+"|\\<init\\>|\\<clinit\\>)\\((?:"+IDENTIFIER+"(?:\\."+IDENTIFIER+")*/)?" +IDENTIFIER+"\\.java" + // method and file name // NOI18N
"\\:([0-9]*)\\)"); // line number // NOI18N
@@ -72,22 +73,26 @@ class StackLineAnalyser {
if (matcher.find()) {
int lineNumber = -1;
try {
- lineNumber = Integer.parseInt(matcher.group(6));
+ lineNumber = Integer.parseInt(matcher.group(7));
} catch (NumberFormatException nfe) {
return null;
}
- if (matcher.group(1)==null ) {
- return new Link(matcher.group(4),
+ int moduleStart = -1;
+ if (matcher.group(1) != null) {
+ moduleStart = matcher.start(1);
+ }
+ if (matcher.group(2)==null ) {
+ return new Link(matcher.group(5),
lineNumber,
- matcher.start(4),
- matcher.end(6)+1
+ moduleStart != (-1) ? moduleStart : matcher.start(5),
+ matcher.end(7)+1
);
}
- return new Link(matcher.group(1) + matcher.group(4),
+ return new Link(matcher.group(2) + matcher.group(5),
lineNumber,
- matcher.start(1),
- matcher.end(6)+1
+ moduleStart != (-1) ? moduleStart : matcher.start(2),
+ matcher.end(7)+1
);
}
return null;
diff --git a/java/java.navigation/test/unit/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyserTest.java b/java/java.navigation/test/unit/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyserTest.java
index 59cf39e..d60581c 100644
--- a/java/java.navigation/test/unit/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyserTest.java
+++ b/java/java.navigation/test/unit/src/org/netbeans/modules/java/stackanalyzer/StackLineAnalyserTest.java
@@ -46,6 +46,8 @@ public class StackLineAnalyserTest extends NbTestCase {
assertTrue(StackLineAnalyser.matches("at javaapplication8.Main$1.run(Main.java:32)"));
assertTrue(StackLineAnalyser.matches("at javaapplication8.Main$Inner.go(Main.java:40)"));
assertTrue(StackLineAnalyser.matches(" [exec] at org.openide.filesystems.FileUtil.normalizeFileOnMac(FileUtil.java:1714)"));
+ assertTrue(StackLineAnalyser.matches("at java.base/java.lang.String.lastIndexOf(String.java:1627)"));
+ assertTrue(StackLineAnalyser.matches(" at java.base/java.lang.String.lastIndexOf(String.java:1627)"));
}
@Test
@@ -68,6 +70,12 @@ public class StackLineAnalyserTest extends NbTestCase {
l = StackLineAnalyser.analyse("at java.lang.String.lastIndexOf(String.java:1627) dfasdf");
assertEquals(3, l.getStartOffset());
assertEquals(49, l.getEndOffset());
+ l = StackLineAnalyser.analyse("at java.base/java.lang.String.lastIndexOf(String.java:1627)");
+ assertEquals(3, l.getStartOffset());
+ assertEquals(59, l.getEndOffset());
+ l = StackLineAnalyser.analyse(" at java.base/java.lang.String.lastIndexOf(String.java:1627)");
+ assertEquals(4, l.getStartOffset());
+ assertEquals(60, l.getEndOffset());
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists