Author: mcucchiara
Date: Sun Oct 16 21:39:51 2011
New Revision: 1184940

URL: http://svn.apache.org/viewvc?rev=1184940&view=rev
Log:
_ctorParameterTypesCache now use the new cache implementation

Modified:
    
commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java

Modified: 
commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java
URL: 
http://svn.apache.org/viewvc/commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java?rev=1184940&r1=1184939&r2=1184940&view=diff
==============================================================================
--- 
commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java
 (original)
+++ 
commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/OgnlRuntime.java
 Sun Oct 16 21:39:51 2011
@@ -198,8 +198,15 @@ public class OgnlRuntime
 
     static final Cache<GenericMethodParameterTypeCacheEntry, Class<?>[]> 
_genericMethodParameterTypesCache = new 
ConcurrentHashMapCache<GenericMethodParameterTypeCacheEntry, Class<?>[]>( new 
GenericMethodParameterTypeFactory( ) );;
 
-    static final Map<Constructor<?>, Class<?>[]> _ctorParameterTypesCache =
-        new HashMap<Constructor<?>, Class<?>[]>( 101 );
+    static final Cache<Constructor<?>, Class<?>[]> _ctorParameterTypesCache =
+        new ConcurrentHashMapCache<Constructor<?>, Class<?>[]>( new 
CacheEntryFactory<Constructor<?>, Class<?>[]>( )
+        {
+            public Class<?>[] create( Constructor<?> key )
+                throws CacheException
+            {
+                return key.getParameterTypes( );
+            }
+        });
 
     static SecurityManager _securityManager = System.getSecurityManager( );
 
@@ -723,17 +730,9 @@ public class OgnlRuntime
      * Returns the parameter types of the given method.
      */
     public static Class<?>[] getParameterTypes( Constructor<?> c )
+        throws CacheException
     {
-        synchronized ( _ctorParameterTypesCache )
-        {
-            Class<?>[] result;
-
-            if ( ( result = _ctorParameterTypesCache.get( c ) ) == null )
-            {
-                _ctorParameterTypesCache.put( c, result = c.getParameterTypes( 
) );
-            }
-            return result;
-        }
+        return _ctorParameterTypesCache.get( c );
     }
 
     /**


Reply via email to