craigmcc    01/05/06 15:52:12

  Modified:    beanutils/src/java/org/apache/commons/beanutils
                        PropertyUtils.java
  Log:
  Use FastHashMap instead of HashMap to implement the cache of
  PropertyDescriptor objects.  Declare a dependency on the collections
  classes package from Commons.
  
  Revision  Changes    Path
  1.3       +13 -12    
jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/PropertyUtils.java
  
  Index: PropertyUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/PropertyUtils.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PropertyUtils.java        2001/04/16 16:30:13     1.2
  +++ PropertyUtils.java        2001/05/06 22:52:11     1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/PropertyUtils.java,v
 1.2 2001/04/16 16:30:13 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/04/16 16:30:13 $
  + * $Header: 
/home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/PropertyUtils.java,v
 1.3 2001/05/06 22:52:11 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/05/06 22:52:11 $
    *
    * ====================================================================
    *
  @@ -75,6 +75,7 @@
   import java.util.Collections;
   import java.util.HashMap;
   import java.util.Map;
  +import org.apache.commons.collections.FastHashMap;
   
   
   /**
  @@ -120,7 +121,7 @@
    * @author Craig R. McClanahan
    * @author Ralph Schaer
    * @author Chris Audley
  - * @version $Revision: 1.2 $ $Date: 2001/04/16 16:30:13 $
  + * @version $Revision: 1.3 $ $Date: 2001/05/06 22:52:11 $
    */
   
   public class PropertyUtils {
  @@ -170,7 +171,11 @@
        * The cache of PropertyDescriptor arrays for beans we have already
        * introspected, keyed by the fully qualified class name of this object.
        */
  -    private static HashMap descriptorsCache = new HashMap();
  +    private static FastHashMap descriptorsCache = null;
  +    static {
  +        descriptorsCache = new FastHashMap();
  +        descriptorsCache.setFast(true);
  +    }
   
   
       // --------------------------------------------------------- Public Methods
  @@ -493,10 +498,8 @@
        // Look up any cached descriptors for this bean class
        String beanClassName = bean.getClass().getName();
        PropertyDescriptor descriptors[] = null;
  -        synchronized (descriptorsCache) {
  -            descriptors =
  -                (PropertyDescriptor[]) descriptorsCache.get(beanClassName);
  -        }
  +        descriptors =
  +            (PropertyDescriptor[]) descriptorsCache.get(beanClassName);
        if (descriptors != null)
            return (descriptors);
   
  @@ -510,9 +513,7 @@
        descriptors = beanInfo.getPropertyDescriptors();
        if (descriptors == null)
            descriptors = new PropertyDescriptor[0];
  -        synchronized (descriptorsCache) {
  -            descriptorsCache.put(beanClassName, descriptors);
  -        }
  +        descriptorsCache.put(beanClassName, descriptors);
        return (descriptors);
   
       }
  
  
  

Reply via email to