ceki        2002/12/03 09:41:05

  Modified:    src/java/org/apache/log4j MDC.java
               src/java/org/apache/log4j/helpers ThreadLocalMap.java
  Log:
  Clean up in the MDC code since log4j 1.3 requires JDK 1.2+.
  
  Revision  Changes    Path
  1.12      +36 -91    jakarta-log4j/src/java/org/apache/log4j/MDC.java
  
  Index: MDC.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/MDC.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- MDC.java  9 Oct 2002 22:50:02 -0000       1.11
  +++ MDC.java  3 Dec 2002 17:41:04 -0000       1.12
  @@ -33,114 +33,59 @@
      @author Ceki Gülcü */
   public class MDC {
     
  -  final static MDC mdc = new MDC();
  -  
     static final int HT_SIZE = 7;
  -
  -  boolean java1;
     
  -  Object tlm;
  +  static private final ThreadLocalMap tlm = new ThreadLocalMap();
     
  -  private
  -  MDC() {
  -    java1 = Loader.isJava1();
  -    if(!java1) {
  -      tlm = new ThreadLocalMap();
  -    }
  +  private MDC() {
     }
   
     /**
  -     Put a context value (the <code>o</code> parameter) as identified
  -     with the <code>key</code> parameter into the current thread's
  -     context map.
  -
  -     <p>If the current thread does not have a context map it is
  -     created as a side effect.
  -    
  -   */
  -  static
  -  public
  -  void put(String key, Object o) {
  -    mdc.put0(key, o);
  +   * Put a context value (the <code>o</code> parameter) as identified
  +   * with the <code>key</code> parameter into the current thread's
  +   * context map.
  +   *
  +   * <p>If the current thread does not have a context map it is
  +   * created as a side effect.
  +   * */
  +  public static void put(String key, Object o) {
  +    Hashtable ht = (Hashtable) tlm.get();
  +    if(ht == null) {
  +      ht = new Hashtable(HT_SIZE);
  +      tlm.set(ht);
  +    }    
  +    ht.put(key, o);
     }
  -  
  -  /**
  -     Get the context identified by the <code>key</code> parameter.
   
  -     <p>This method has no side effects.
  -   */
  -  static 
  -  public
  -  Object get(String key) {
  -    return mdc.get0(key);
  +  /**
  +   * Get the context identified by the <code>key</code> parameter.
  +   *
  +   *  <p>This method has no side effects.  
  +   * */  
  +  static public Object get(String key) {
  +    Hashtable ht = (Hashtable) tlm.get();
  +    if(ht != null && key != null) {
  +      return ht.get(key);
  +    } else {
  +      return null;
  +    }
     }
   
     /**
  -     Remove the the context identified by the <code>key</code>
  -     parameter.
  -
  -  */
  -  static 
  -  public
  -  void remove(String key) {
  -    mdc.remove0(key);
  +   * Remove the the context identified by the <code>key</code>
  +   * parameter. */
  +  public static void remove(String key) {
  +    Hashtable ht = (Hashtable) tlm.get();
  +    if(ht != null) {
  +      ht.remove(key);
  +    }
     }
   
  -
     /**
      * Get the current thread's MDC as a hashtable. This method is
      * intended to be used internally.  
      * */
     public static Hashtable getContext() {
  -    return mdc.getContext0();
  -  }
  -
  -
  -  private
  -  void put0(String key, Object o) {
  -    if(java1) {
  -      return;
  -    } else {
  -      Hashtable ht = (Hashtable) ((ThreadLocalMap)tlm).get();
  -      if(ht == null) {
  -        ht = new Hashtable(HT_SIZE);
  -        ((ThreadLocalMap)tlm).set(ht);
  -      }    
  -      ht.put(key, o);
  -    }
  -  }
  -  
  -  private
  -  Object get0(String key) {
  -    if(java1) {
  -      return null;
  -    } else {       
  -      Hashtable ht = (Hashtable) ((ThreadLocalMap)tlm).get();
  -      if(ht != null && key != null) {
  -        return ht.get(key);
  -      } else {
  -        return null;
  -      }
  -    }
  -  }
  -
  -  private
  -  void remove0(String key) {
  -    if(!java1) {
  -      Hashtable ht = (Hashtable) ((ThreadLocalMap)tlm).get();
  -      if(ht != null) {
  -        ht.remove(key);
  -      } 
  -    }
  -  }
  -
  -
  -  private
  -  Hashtable getContext0() {
  -     if(java1) {
  -      return null;
  -    } else {       
  -      return (Hashtable) ((ThreadLocalMap)tlm).get();
  -    }
  +    return (Hashtable) tlm.get();
     }
   }
  
  
  
  1.4       +1 -3      
jakarta-log4j/src/java/org/apache/log4j/helpers/ThreadLocalMap.java
  
  Index: ThreadLocalMap.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/helpers/ThreadLocalMap.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ThreadLocalMap.java       13 Aug 2001 10:22:10 -0000      1.3
  +++ ThreadLocalMap.java       3 Dec 2002 17:41:05 -0000       1.4
  @@ -20,9 +20,7 @@
   */
   final public class ThreadLocalMap extends InheritableThreadLocal {
   
  -  public
  -  final
  -  Object childValue(Object parentValue) {
  +  public final Object childValue(Object parentValue) {
       Hashtable ht = (Hashtable) parentValue;
       if(ht != null) {
         return ht.clone();
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to