You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2006/07/01 05:48:10 UTC

svn commit: r418432 - in /logging/log4j/trunk/src/java/org/apache/log4j: HTMLLayout.java SimpleLayout.java config/PropertySetter.java pattern/DatePatternConverter.java

Author: carnold
Date: Fri Jun 30 20:48:09 2006
New Revision: 418432

URL: http://svn.apache.org/viewvc?rev=418432&view=rev
Log:
Bug 24159: Concurrency issues

Modified:
    logging/log4j/trunk/src/java/org/apache/log4j/HTMLLayout.java
    logging/log4j/trunk/src/java/org/apache/log4j/SimpleLayout.java
    logging/log4j/trunk/src/java/org/apache/log4j/config/PropertySetter.java
    logging/log4j/trunk/src/java/org/apache/log4j/pattern/DatePatternConverter.java

Modified: logging/log4j/trunk/src/java/org/apache/log4j/HTMLLayout.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/java/org/apache/log4j/HTMLLayout.java?rev=418432&r1=418431&r2=418432&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/HTMLLayout.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/HTMLLayout.java Fri Jun 30 20:48:09 2006
@@ -103,7 +103,7 @@
   
   
   // counter keeping track of the rows output
-  private long counter = 0;
+  private boolean odd = true;
   
   /**
    * Constructs a PatternLayout using the DEFAULT_LAYOUT_PATTERN.
@@ -367,11 +367,9 @@
   /**
    * {@inheritDoc}
    */
-  public String format(LoggingEvent event) {
-    
-    boolean odd = true;
-    if(((counter++) & 1) == 0) {
-      odd = false;
+  public String format(final LoggingEvent event) {
+    synchronized(this) {
+       odd = !odd;
     }
     
     String level = event.getLevel().toString().toLowerCase();

Modified: logging/log4j/trunk/src/java/org/apache/log4j/SimpleLayout.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/java/org/apache/log4j/SimpleLayout.java?rev=418432&r1=418431&r2=418432&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/SimpleLayout.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/SimpleLayout.java Fri Jun 30 20:48:09 2006
@@ -32,10 +32,16 @@
    <p>
    @author Ceki G&uuml;lc&uuml;
    @since version 0.7.0
+   @deprecated since 1.3
 
    <p>{@link PatternLayout} offers a much more powerful alternative.
 */
 public class SimpleLayout extends Layout {
+  /**
+   *   Result of previous format request.  Not reliable if not
+   *       layout is not externally synchronized.
+   *   @deprecated since 1.3
+   */
   StringBuffer sbuf = new StringBuffer(128);
 
   public SimpleLayout() {
@@ -55,10 +61,13 @@
 	 @param event The LoggingEvent to format and write
 	*/
   public String format(final LoggingEvent event) {
-    StringBuffer sbuf = new StringBuffer(event.getLevel().toString());
-    sbuf.append(" - ");
-    sbuf.append(event.getRenderedMessage());
-    sbuf.append(LINE_SEP);
-    return sbuf.toString();
+    StringBuffer sb = new StringBuffer(event.getLevel().toString());
+    sb.append(" - ");
+    sb.append(event.getRenderedMessage());
+    sb.append(LINE_SEP);
+    String s = sb.toString();
+    sbuf.setLength(0);
+    sbuf.append(s);
+    return s;
    }
 }

Modified: logging/log4j/trunk/src/java/org/apache/log4j/config/PropertySetter.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/java/org/apache/log4j/config/PropertySetter.java?rev=418432&r1=418431&r2=418432&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/config/PropertySetter.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/config/PropertySetter.java Fri Jun 30 20:48:09 2006
@@ -60,7 +60,6 @@
   public static final int NOT_FOUND = 0;
   public static final int AS_PROPERTY = 1;
   public static final int AS_COLLECTION = 2;
-  Logger logger;
   protected Object obj;
   protected Class objClass;
   protected PropertyDescriptor[] props;

Modified: logging/log4j/trunk/src/java/org/apache/log4j/pattern/DatePatternConverter.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/java/org/apache/log4j/pattern/DatePatternConverter.java?rev=418432&r1=418431&r2=418432&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/pattern/DatePatternConverter.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/pattern/DatePatternConverter.java Fri Jun 30 20:48:09 2006
@@ -111,7 +111,9 @@
    * {@inheritDoc}
    */
   public void format(final LoggingEvent event, final StringBuffer output) {
-    df.format(event.getTimeStamp(), output);
+    synchronized(this) {
+    	df.format(event.getTimeStamp(), output);
+    }
   }
 
   /**
@@ -131,6 +133,8 @@
    * @param toAppendTo buffer to which formatted date is appended.
    */
   public void format(final Date date, final StringBuffer toAppendTo) {
-    df.format(date.getTime(), toAppendTo);
+    synchronized(this) {
+    	df.format(date.getTime(), toAppendTo);
+    }
   }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org