diff --git a/rewrite-core/src/main/java/org/openrewrite/internal/StringUtils.java b/rewrite-core/src/main/java/org/openrewrite/internal/StringUtils.java index b780d55b9e5..340a381be64 100644 --- a/rewrite-core/src/main/java/org/openrewrite/internal/StringUtils.java +++ b/rewrite-core/src/main/java/org/openrewrite/internal/StringUtils.java @@ -618,14 +618,16 @@ public static String aspectjNameToPattern(String name) { } int length = name.length(); - StringBuilder sb = new StringBuilder(length); + // Pre-size to reduce resizing for common expansions (e.g. '*' -> "[^.]*") + StringBuilder sb = new StringBuilder(Math.max(16, length * 2)); char prev = 0; for (int i = 0; i < length; i++) { boolean isLast = i == length - 1; char c = name.charAt(i); + char next = isLast ? 0 : name.charAt(i + 1); switch (c) { case '.': - if (prev != '.' && (isLast || name.charAt(i + 1) != '.')) { + if (prev != '.' && (isLast || next != '.')) { sb.append("[.$]"); } else if (prev == '.') { sb.append("\\.(.+\\.)?");