QPID-8243: Optimize Logback1027 turbo filter
diff --git a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/Logback1027WorkaroundTurboFilter.java b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/Logback1027WorkaroundTurboFilter.java
index 9787fbb..105b2e3 100644
--- a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/Logback1027WorkaroundTurboFilter.java
+++ b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/Logback1027WorkaroundTurboFilter.java
@@ -43,11 +43,7 @@
final Object[] params,
final Throwable t)
{
-
- Set<Throwable> seen = Collections.newSetFromMap(new IdentityHashMap<Throwable, Boolean>());
-
-
- if (t != null && hasRecursiveThrowableReference(t, seen))
+ if (t != null && hasRecursiveThrowableReference(t, null))
{
final int locationAwareLoggerInteger = Level.toLocationAwareLoggerInteger(level);
logger.log(marker, logger.getName(), locationAwareLoggerInteger, format, params, new StringifiedException(t));
@@ -63,6 +59,12 @@
{
return false;
}
+
+ if (seen == null)
+ {
+ seen = Collections.newSetFromMap(new IdentityHashMap<Throwable, Boolean>());
+ }
+
if (!seen.add(t))
{
return true;