From dd10ba69d665bcb99ba5f9844abf43de090babe0 Mon Sep 17 00:00:00 2001 From: yanyir Date: Tue, 26 Sep 2023 15:05:35 +0800 Subject: [PATCH] Revert changes in Decompiler and StringUtils related to "\\R" handling --- .../taobao/arthas/core/util/Decompiler.java | 19 +++++++---------- .../taobao/arthas/core/util/StringUtils.java | 21 ------------------- 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/core/src/main/java/com/taobao/arthas/core/util/Decompiler.java b/core/src/main/java/com/taobao/arthas/core/util/Decompiler.java index b6617bff0b..44baf75ea0 100644 --- a/core/src/main/java/com/taobao/arthas/core/util/Decompiler.java +++ b/core/src/main/java/com/taobao/arthas/core/util/Decompiler.java @@ -114,26 +114,23 @@ private static String addLineNumber(String src, Map lineMappin StringBuilder sb = new StringBuilder(); - List lines = StringUtils.toLines(src); + String[] lines = src.split("\\R"); - if (maxLineNumber >= 1000) { - formatStr = "/*%4d*/ "; - emptyStr = " "; - } else if (maxLineNumber >= 100) { + if (maxLineNumber >= 100) { formatStr = "/*%3d*/ "; emptyStr = " "; + } else if (maxLineNumber >= 1000) { + formatStr = "/*%4d*/ "; + emptyStr = " "; } - - int index = 0; - for (String line : lines) { - Integer srcLineNumber = lineMapping.get(index + 1); + for (int i = 0; i < lines.length; ++i) { + Integer srcLineNumber = lineMapping.get(i + 1); if (srcLineNumber != null) { sb.append(String.format(formatStr, srcLineNumber)); } else { sb.append(emptyStr); } - sb.append(line).append("\n"); - index++; + sb.append(lines[i]).append("\n"); } return sb.toString(); diff --git a/core/src/main/java/com/taobao/arthas/core/util/StringUtils.java b/core/src/main/java/com/taobao/arthas/core/util/StringUtils.java index 58993479b5..dc7d663a60 100644 --- a/core/src/main/java/com/taobao/arthas/core/util/StringUtils.java +++ b/core/src/main/java/com/taobao/arthas/core/util/StringUtils.java @@ -909,27 +909,6 @@ public static String humanReadableByteCount(long bytes) { : String.format("%.1f EiB", (bytes >> 20) / 0x1p40); } - public static List toLines(String text) { - List result = new ArrayList(); - BufferedReader reader = new BufferedReader(new StringReader(text)); - try { - String line = reader.readLine(); - while (line != null) { - result.add(line); - line = reader.readLine(); - } - } catch (IOException exc) { - // quit - } finally { - try { - reader.close(); - } catch (IOException e) { - // ignore - } - } - return result; - } - public static String randomString(int length) { StringBuilder sb = new StringBuilder(length); for (int i = 0; i < length; i++)