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); }