Author: carnold
Date: Mon Oct 22 14:05:24 2007
New Revision: 587252
URL: http://svn.apache.org/viewvc?rev=587252&view=rev
Log:
Bug 43599: AsyncAppender fails on changing message objects
Modified:
logging/log4j/trunk/src/changes/changes.xml
logging/log4j/trunk/src/main/java/org/apache/log4j/AsyncAppender.java
logging/log4j/trunk/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java
Modified: logging/log4j/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=587252&r1=587251&r2=587252&view=diff
==============================================================================
--- logging/log4j/trunk/src/changes/changes.xml (original)
+++ logging/log4j/trunk/src/changes/changes.xml Mon Oct 22 14:05:24 2007
@@ -22,6 +22,7 @@
<body>
<release version="1.2.16" date="TBD" description="">
+ <action action="fix" issue="43599">AsyncAppender failing on changing
message objects.</action>
<action action="fix" issue="43325">Subst-mechanism in DOMConfigurator
broken.</action>
<action action="fix" issue="43374">DailyRollingFileAppender may lose
messages during failed rollover attempts.</action>
<action action="fix" issue="43312">Fix mangled
source-repository.html.</action>
Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/AsyncAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/AsyncAppender.java?rev=587252&r1=587251&r2=587252&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/AsyncAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/AsyncAppender.java Mon
Oct 22 14:05:24 2007
@@ -159,6 +159,7 @@
if (locationInfo) {
event.getLocationInformation();
}
+ event.getRenderedMessage();
synchronized (buffer) {
while (true) {
Modified:
logging/log4j/trunk/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java?rev=587252&r1=587251&r2=587252&view=diff
==============================================================================
---
logging/log4j/trunk/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java
(original)
+++
logging/log4j/trunk/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java
Mon Oct 22 14:05:24 2007
@@ -326,4 +326,35 @@
}
+ /**
+ * Test that a mutable message object is evaluated before
+ * being placed in the async queue.
+ * See bug 43559.
+ */
+ public void testMutableMessage() {
+ BlockableVectorAppender blockableAppender = new
BlockableVectorAppender();
+ AsyncAppender async = new AsyncAppender();
+ async.addAppender(blockableAppender);
+ async.setBufferSize(5);
+ async.setLocationInfo(false);
+ async.activateOptions();
+ Logger rootLogger = Logger.getRootLogger();
+ rootLogger.addAppender(async);
+ StringBuffer buf = new StringBuffer("Hello");
+ synchronized(blockableAppender.getMonitor()) {
+ rootLogger.info(buf);
+ buf.append(", World.");
+ }
+ async.close();
+ Vector events = blockableAppender.getVector();
+ LoggingEvent event = (LoggingEvent) events.get(0);
+ PatternLayout layout = new PatternLayout();
+ layout.setConversionPattern("%m");
+ layout.activateOptions();
+ String msg = layout.format(event);
+ assertEquals("Hello", msg);
+ }
+
+
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]