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