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