From c7d35311b28af02a2583c8937ce43b8c8eb240bc Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 9 Jun 2017 17:15:45 +0200 Subject: [PATCH] don't match yourkit thread name twice (IDEA-CR-21711) --- .../intellij/unscramble/ThreadDumpParser.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/unscramble/ThreadDumpParser.java b/java/java-impl/src/com/intellij/unscramble/ThreadDumpParser.java index 30a818b5efbf..49fab01e7815 100644 --- a/java/java-impl/src/com/intellij/unscramble/ThreadDumpParser.java +++ b/java/java-impl/src/com/intellij/unscramble/ThreadDumpParser.java @@ -204,9 +204,8 @@ public class ThreadDumpParser { line = StringUtil.replace(line, " [DAEMON]", ""); } - m = ourYourkitThreadStartPattern.matcher(line); - if (!m.matches()) m = ourYourkitThreadStartPattern2.matcher(line); - if (m.matches()) { + m = matchYourKit(line); + if (m != null) { ThreadState state = new ThreadState(m.group(1), m.group(2)); state.setDaemon(daemon); return state; @@ -214,6 +213,17 @@ public class ThreadDumpParser { return null; } + @Nullable + private static Matcher matchYourKit(String line) { + Matcher m = ourYourkitThreadStartPattern.matcher(line); + if (m.matches()) return m; + + m = ourYourkitThreadStartPattern2.matcher(line); + if (m.matches()) return m; + + return null; + } + private static boolean tryParseThreadState(final String line, final ThreadState threadState) { Matcher m = ourThreadStatePattern.matcher(line); if (m.find()) {