Author: carnold
Date: Thu May 27 03:26:31 2010
New Revision: 948664

URL: http://svn.apache.org/viewvc?rev=948664&view=rev
Log:
Additional code review comments

Modified:
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/ErrorHandler.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Log4jLogEvent.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Logger.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggingException.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderBase.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderRuntimeException.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ListAppender.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java
    
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/FilterBase.java

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/ErrorHandler.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/ErrorHandler.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/ErrorHandler.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/ErrorHandler.java
 Thu May 27 03:26:31 2010
@@ -20,6 +20,8 @@ import org.apache.logging.log4j.core.Log
 
 /**
  * Appenders may delegate their error handling to <code>ErrorHandlers</code>.
+ * @doubt if the appender interface is simplified, then error handling could 
just be done by wrapping
+ *  a nested appender.
  */
 public interface ErrorHandler {
 

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Log4jLogEvent.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Log4jLogEvent.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Log4jLogEvent.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Log4jLogEvent.java
 Thu May 27 03:26:31 2010
@@ -101,14 +101,26 @@ public class Log4jLogEvent implements Lo
         return throwable;
     }
 
+    /**
+     * @doubt Allows direct access to the map passed into the constructor, 
would allow appender
+     * or layout to manipulate event as seen by other appenders.
+     */
     public Map<String, Object> getContextMap() {
         return mdc;
     }
 
+    /**
+     * @doubt Allows direct access to the map passed into the constructor, 
would allow appender
+     * or layout to manipulate event as seen by other appenders.
+     */
     public Stack<Object> getContextStack() {
         return ndc;
     }
 
+    /**
+     * @doubt Not quite sure what is going on with the loop, but looks like it 
might
+     *     drop only the deepest call from the fully qualified class, not all 
of them.
+     */
     public StackTraceElement getSource() {
         if (fqcnOfLogger == null) {
             return null;

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
 Thu May 27 03:26:31 2010
@@ -39,6 +39,7 @@ public interface LogEvent {
     /**
      * Get thread name.
      * @return thread name, may be null.
+     * @doubt guess this could go into a thread context object too.
      */
     String getThreadName();
 
@@ -61,6 +62,7 @@ public interface LogEvent {
      * Get the MDC data;
      *
      * @return A copy of the Mapped Diagnostic Context or null.
+     * @doubt as mentioned elsewhere, think MDC and NDC should be combined 
into a thread context object.
      */
     Map<String, Object> getContextMap();
 
@@ -68,6 +70,7 @@ public interface LogEvent {
      * Get the NDC data;
      *
      * @return A copy of the Nested Diagnostic Context of null;
+     * @doubt as mentioned elsewhere, think MDC and NDC should be combined 
into a thread context object.
      */
     Stack<Object> getContextStack();
 

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Logger.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Logger.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Logger.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/Logger.java
 Thu May 27 03:26:31 2010
@@ -28,7 +28,8 @@ import java.util.List;
 import java.util.Map;
 
 /**
- *
+ * @doubt All the isEnabled methods could be pushed into a filter interface.  
Not sure of the utility of having isEnabled 
+ *  be able to examine the message pattern and parameters.
  */
 public class Logger extends AbstractLogger {
     //private static String FQCN = Logger.class.getName();
@@ -164,12 +165,17 @@ public class Logger extends AbstractLogg
      * volatile.
      *
      * @param config The new Configuration.
+     * @doubt lost me on the comment, this.config is declared volatile.
      */
     void updateConfiguration(Configuration config) {
         this.config = new PrivateConfig(config, this);
     }
 
+    /**
+      * @doubt class is not immutable, so it should not be shared between 
threads.
+      */
     protected class PrivateConfig {
+       /** @doubt public member variables?  **/
         public final LoggerConfig loggerConfig;
         public final Configuration config;
         public Level level;

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
 Thu May 27 03:26:31 2010
@@ -30,7 +30,7 @@ import java.util.concurrent.ConcurrentMa
  */
 public class LoggerContext implements 
org.apache.logging.log4j.spi.LoggerContext {
 
-    private ConcurrentMap<String, Logger> loggers = new 
ConcurrentHashMap<String, Logger>();
+    private final ConcurrentMap<String, Logger> loggers = new 
ConcurrentHashMap<String, Logger>();
 
     private volatile Configuration config;
 
@@ -73,6 +73,9 @@ public class LoggerContext implements or
         config.removeFilter(filter);
     }
 
+    /**
+      * @doubt no check for null, could cause NPE if reconfigure is called.
+      */
     public synchronized Configuration setConfiguration(Configuration config) {
         Configuration prev = this.config;
         this.config = config;

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggingException.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggingException.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggingException.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/LoggingException.java
 Thu May 27 03:26:31 2010
@@ -19,7 +19,7 @@ package org.apache.logging.log4j.core;
 /**
  *
  *
- *
+ * @doubt Unchecked?
  *
  */
 public class LoggingException extends RuntimeException {

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderBase.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderBase.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderBase.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderBase.java
 Thu May 27 03:26:31 2010
@@ -29,10 +29,13 @@ import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
- *
+ * @doubt Appender should be refactored as mentioned elsewhere
  */
 public abstract class AppenderBase implements Appender {
 
+    /**
+     * @doubt protected members?
+     */
     protected boolean started = false;
 
     protected Layout layout = null;
@@ -56,10 +59,17 @@ public abstract class AppenderBase imple
         return handler;
     }
 
+    /**
+     * @doubt no synchronization
+     */
     public void setHandler(ErrorHandler handler) {
         this.handler = handler;
     }
 
+
+    /**
+     * @doubt would be better to atomically replace a single Filter (which 
could be composite)
+     */
     public void addFilter(Filter filter) {
         filters.add(filter);
     }
@@ -84,6 +94,9 @@ public abstract class AppenderBase imple
         return name;
     }
 
+    /**
+     * @doubt not synchronized.
+     */
     public void setLayout(Layout layout) {
         if (layout == null) {
             handler.error("The layout for appender " + getName() + " cannot be 
set to null");
@@ -99,6 +112,10 @@ public abstract class AppenderBase imple
         return false;
     }
 
+    /**
+     * @doubt I think it might be clearer just wrap an appender when you want 
to swallow
+     *   exceptions, however you'd want the appender interface to be much 
smaller to do that.
+     */ 
     public boolean suppressException() {
         return true;
     }
@@ -121,6 +138,9 @@ public abstract class AppenderBase imple
         return started;
     }
 
+    /**
+     * @doubt looks like some config code slipping into the core
+     */
     public static Layout createLayout(Node node) {
         Layout layout = null;
         for (Node child : node.getChildren()) {

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderRuntimeException.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderRuntimeException.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderRuntimeException.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderRuntimeException.java
 Thu May 27 03:26:31 2010
@@ -17,7 +17,7 @@
 package org.apache.logging.log4j.core.appender;
 
 /**
- *
+ * @doubt unchecked exception again
  */
 public class AppenderRuntimeException extends RuntimeException {
 

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
 Thu May 27 03:26:31 2010
@@ -27,6 +27,8 @@ import java.util.Map;
  * ConsoleAppender appends log events to <code>System.out</code> or
  * <code>System.err</code> using a layout specified by the user. The
  * default target is <code>System.out</code>.
+ * @doubt accessing System.out or .err as a byte stream instead of a writer
+ *    bypasses the JVM's knowledge of the proper encoding.
  */
 @Plugin(name="Console",type="Core")
 public class ConsoleAppender extends OutputStreamAppender {

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ListAppender.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ListAppender.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ListAppender.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/ListAppender.java
 Thu May 27 03:26:31 2010
@@ -46,6 +46,8 @@ public class ListAppender extends Append
         events.clear();
     }
 
+    /** @doubt think this caller would still see changes with no way 
+          to synchronize so they could get an consistent snapshot.   */        
    
     public synchronized List<LogEvent> getEvents() {
         return Collections.unmodifiableList(events);
     }

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java
 Thu May 27 03:26:31 2010
@@ -24,6 +24,12 @@ import java.io.OutputStream;
 
 /**
  *
+ * 
+ * @doubt This seems to be a cross between a character and byte-oriented 
appender.
+ *    appenders would likely be either one or the other.
+ *    Would prefer to base on java.nio.  Using an explicit
+ *    encoding might be expensive since it has to make an encoding
+ *    name to an encoder on every call. 
  */
 public abstract class OutputStreamAppender extends AppenderBase {
 
@@ -306,4 +312,4 @@ public abstract class OutputStreamAppend
             }
         }
     }
-}
\ No newline at end of file
+}

Modified: 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/FilterBase.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/FilterBase.java?rev=948664&r1=948663&r2=948664&view=diff
==============================================================================
--- 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/FilterBase.java
 (original)
+++ 
logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL/rgoers/log4j2-core/src/main/java/org/apache/logging/log4j/core/filter/FilterBase.java
 Thu May 27 03:26:31 2010
@@ -29,6 +29,8 @@ import org.apache.logging.log4j.message.
  * Users should extend this class to implement filters. Filters can be either 
context wide or attached to
  * an appender. A filter may choose to support being called only from the 
context or only from an appender in
  * which case it will only implement the required method(s). The rest will 
default to return NEUTRAL.
+ *
+ * @doubt why extend FilterBase instead of implementing Filter.
  */
 public abstract class FilterBase implements Filter {
 



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

Reply via email to