Author: kwall
Date: Fri Jul 10 23:25:52 2015
New Revision: 1690320
URL: http://svn.apache.org/r1690320
Log:
QPID-6613: [Java Broker] Ensure the log event thread name are faithfully
retained for events originating from spawned brokers during tests
* Workaround for suspected logback defect LOGBACK-1088
* Avoid making assumptions about the mutability of the MDC context returned
from ILoggingEvent#getMDCPropertyMap
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java?rev=1690320&r1=1690319&r2=1690320&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java
Fri Jul 10 23:25:52 2015
@@ -21,14 +21,18 @@
package org.apache.qpid.server.logging;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.net.SocketAppender;
import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.classic.spi.LoggingEventVO;
import ch.qos.logback.core.Appender;
import ch.qos.logback.core.Context;
import ch.qos.logback.core.util.Duration;
+import org.slf4j.MDC;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ManagedAttributeField;
@@ -96,8 +100,26 @@ public class BrokerLogbackSocketLoggerIm
@Override
protected void append(final
ILoggingEvent event)
{
- augmentWithMDC(event);
- super.append(event);
+ Set<String> keys = new
HashSet<>();
+ try
+ {
+ for (Map.Entry<String,
String> entry : _mappedDiagnosticContext.entrySet())
+ {
+
MDC.put(entry.getKey(), entry.getValue());
+
keys.add(entry.getKey());
+ }
+
+ // Workaround for
suspected Logback defect LOGBACK-1088
+
event.prepareForDeferredProcessing();
+ super.append(event);
+ }
+ finally
+ {
+ for (String key : keys)
+ {
+ MDC.remove(key);
+ }
+ }
}
};
socketAppender.setPort(_port);
@@ -107,10 +129,4 @@ public class BrokerLogbackSocketLoggerIm
return socketAppender;
}
-
- private void augmentWithMDC(final ILoggingEvent event)
- {
- event.getMDCPropertyMap().putAll(_mappedDiagnosticContext);
- }
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]