From 0e82e940f37521d5b0f3061c67fe34efd12a8c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20D=C3=B6rscheln?= Date: Wed, 22 Oct 2025 16:22:55 +0200 Subject: [PATCH] feat: Improved logging performance by replacing regular expression with indexOf and substring --- .../java/reactor/core/publisher/SignalLogger.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/reactor-core/src/main/java/reactor/core/publisher/SignalLogger.java b/reactor-core/src/main/java/reactor/core/publisher/SignalLogger.java index 739b0a59c6..2bb083476e 100644 --- a/reactor-core/src/main/java/reactor/core/publisher/SignalLogger.java +++ b/reactor-core/src/main/java/reactor/core/publisher/SignalLogger.java @@ -238,11 +238,17 @@ else if (s instanceof Fuseable.QueueSubscription) { if (name == null) { name = clazz.getName(); } - name = name.replaceFirst(clazz.getPackage() - .getName() + ".", ""); - asString.append(name); - return asString.toString(); + String packageNameWithDot = clazz.getPackage().getName() + '.'; + int indexOfPackageName = name.indexOf(packageNameWithDot); + int indexAfterPackage = indexOfPackageName + packageNameWithDot.length(); + if (indexOfPackageName != -1 && name.length() > indexAfterPackage) { + asString.append(name, indexAfterPackage, name.length()); + } else { + asString.append(name); + } + + return asString.toString(); } @Override