You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Maurizio Cucchiara <mc...@apache.org> on 2011/10/24 01:53:00 UTC
Re: svn commit: r1188000 [1/3] - in /commons/proper/ognl/trunk: ./
src/main/java/org/apache/commons/ognl/ src/main/java/org/apache/commons/ognl/enhance/
src/main/java/org/apache/commons/ognl/internal/ src/main/java/org/apache/commons/ognl/internal/en
This is the outcome of a merge from a one month branch. During the
last month the branch has become "misaligned" compared to the trunk.
Sorry for the noise, but I didn't know how to avoid it.
Twitter :http://www.twitter.com/m_cucchiara
G+ :https://plus.google.com/107903711540963855921
Linkedin :http://www.linkedin.com/in/mauriziocucchiara
Maurizio Cucchiara
On 24 October 2011 01:29, Adrian Crum
<ad...@sandglass-software.com> wrote:
> This commit appears to contain a lot of formatting changes that have nothing
> to do with synchronization. Also, interface method declarations do not
> require the public keyword.
>
> -Adrian
>
> On 10/24/2011 12:10 AM, mcucchiara@apache.org wrote:
>>
>> Author: mcucchiara
>> Date: Sun Oct 23 23:10:24 2011
>> New Revision: 1188000
>>
>> URL: http://svn.apache.org/viewvc?rev=1188000&view=rev
>> Log:
>> OGNL-20 - Performance - Replace synchronized blocks with
>> ReentrantReadWriteLock
>>
>> Added:
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/Cache.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/Cache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/CacheException.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/CacheException.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/CacheFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/CacheFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ClassCacheHandler.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ClassCacheHandler.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCache.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapClassCache.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapClassCache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/HashMapCache.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/HashMapCache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/HashMapCacheFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/HashMapCacheFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/HashMapClassCache.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/HashMapClassCache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCache.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCacheFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCacheFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockClassCache.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockClassCache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/
>> - copied from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntry.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntry.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/ClassCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/ClassCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntry.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntry.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/FiedlCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/FiedlCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeCacheEntry.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeCacheEntry.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessEntryValue.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessEntryValue.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntry.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntry.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodPermCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodPermCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntry.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntry.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/
>> - copied from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/ConstructorCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/ConstructorCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/DeclaredMethodCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/DeclaredMethodCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/FieldCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/FieldCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/GenericMethodParameterTypeCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/GenericMethodParameterTypeCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/MethodAccessCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/MethodAccessCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/MethodPermCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/MethodPermCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/PermissionCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/PermissionCacheTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/PropertyDescriptorCacheTest.java
>> - copied unchanged from r1187982,
>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/PropertyDescriptorCacheTest.java
>> Modified:
>> commons/proper/ognl/trunk/ (props changed)
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlRuntime.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/TypeConverter.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/enhance/ExpressionCompiler.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ClassCache.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ClassCacheImpl.java
>>
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/Entry.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/TestOgnlRuntime.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/ArrayElementsTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/ContextVariableTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/IndexAccessTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/InterfaceInheritanceTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/LambdaExpressionTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/MethodWithConversionTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/NestedMethodTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/NullHandlerTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/OgnlTestCase.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/OperatorTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/Performance.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/PrivateAccessorTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/PropertyTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/QuotingTest.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/enhance/TestExpressionCompiler.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Bean1.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Bean2.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Bean3.java
>>
>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Root.java
>>
>> Propchange: commons/proper/ognl/trunk/
>>
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (added)
>> +++ svn:mergeinfo Sun Oct 23 23:10:24 2011
>> @@ -0,0 +1 @@
>> +/commons/proper/ognl/branches/new-cache-approach:1181007-1187982
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>> Sun Oct 23 23:10:24 2011
>> @@ -52,7 +52,7 @@ class ASTAdd
>> {
>> Object result = _children[0].getValue( context, source );
>>
>> - for ( int i = 1; i< _children.length; ++i )
>> + for ( int i = 1; i< _children.length; ++i )
>> {
>> result = OgnlOps.add( result, _children[i].getValue( context,
>> source ) );
>> }
>> @@ -67,34 +67,34 @@ class ASTAdd
>>
>> boolean isWider( NodeType type, NodeType lastType )
>> {
>> - if ( lastType == null )
>> + if ( lastType == null )
>> {
>> return true;
>> }
>>
>> // System.out.println("checking isWider(" + type.getGetterClass()
>> + " , " + lastType.getGetterClass() + ")");
>>
>> - if ( String.class.isAssignableFrom( lastType.getGetterClass() ) )
>> + if ( String.class.isAssignableFrom( lastType.getGetterClass() ) )
>> {
>> return false;
>> }
>>
>> - if ( String.class.isAssignableFrom( type.getGetterClass() ) )
>> + if ( String.class.isAssignableFrom( type.getGetterClass() ) )
>> {
>> return true;
>> }
>>
>> - if ( _parent != null&& String.class.isAssignableFrom(
>> type.getGetterClass() ) )
>> + if ( _parent != null&& String.class.isAssignableFrom(
>> type.getGetterClass() ) )
>> {
>> return true;
>> }
>>
>> - if ( String.class.isAssignableFrom( lastType.getGetterClass() )&&
>> Object.class == type.getGetterClass() )
>> + if ( String.class.isAssignableFrom( lastType.getGetterClass() )&&
>> Object.class == type.getGetterClass() )
>> {
>> return false;
>> }
>>
>> - if ( _parent != null&& String.class.isAssignableFrom(
>> lastType.getGetterClass() ) )
>> + if ( _parent != null&& String.class.isAssignableFrom(
>> lastType.getGetterClass() ) )
>> {
>> return false;
>> }
>> @@ -182,15 +182,15 @@ class ASTAdd
>>
>> for ( int i = 0; i< _children.length; ++i )
>> {
>> - if ( i> 0 )
>> + if ( i> 0 )
>> {
>> result += " " + getExpressionOperator( i ) + " ";
>> }
>> -
>> +
>> String expr = _children[i].toGetSourceString(
>> context, target );
>>
>> if ( ( expr != null&& "null".equals( expr ) )
>> - || ( !ASTConst.class.isInstance( _children[i] )
>> + || ( !ASTConst.class.isInstance( _children[i] )
>> && ( expr == null || expr.trim().length()<= 0 )
>> ) )
>> {
>> expr = "null";
>> @@ -234,7 +234,7 @@ class ASTAdd
>> ExpressionCompiler.getRootExpression(
>> _children[i], context.getRoot(), context );
>>
>> if ( !ASTProperty.class.isInstance(
>> _children[i].jjtGetChild( 0 ) )&& rootExpr.endsWith( ")" )
>> -&& expr.startsWith( ")" ) )
>> +&& expr.startsWith( ")" ) )
>> {
>> expr = expr.substring( 1, expr.length() );
>> }
>> @@ -243,7 +243,7 @@ class ASTAdd
>> context.setCurrentAccessor(
>> context.getRoot().getClass() );
>>
>> String cast = (String) context.remove(
>> ExpressionCompiler.PRE_CAST );
>> - if ( cast == null )
>> + if ( cast == null )
>> {
>> cast = "";
>> }
>> @@ -297,7 +297,7 @@ class ASTAdd
>> {
>> if ( ASTVarRef.class.isInstance( _children[i]
>> )
>> || ASTProperty.class.isInstance(
>> _children[i] )
>> - || ASTChain.class.isInstance(
>> _children[i] ) )
>> + || ASTChain.class.isInstance(
>> _children[i] ) )
>> {
>> result += ".";
>> }
>> @@ -307,7 +307,7 @@ class ASTAdd
>> }
>> }
>>
>> - if ( lastType != null )
>> + if ( lastType != null )
>> {
>> context.setCurrentAccessor(
>> lastType.getGetterClass() );
>> }
>> @@ -316,7 +316,7 @@ class ASTAdd
>>
>> if ( _parent == null || ASTSequence.class.isAssignableFrom(
>> _parent.getClass() ) )
>> {
>> - if ( _getterClass != null&&
>> String.class.isAssignableFrom( _getterClass ) )
>> + if ( _getterClass != null&&
>> String.class.isAssignableFrom( _getterClass ) )
>> {
>> _getterClass = Object.class;
>> }
>> @@ -346,7 +346,6 @@ class ASTAdd
>> }
>>
>> public<R, P> R accept( NodeVisitor<? extends R, ? super P> visitor,
>> P data )
>> - throws OgnlException
>> {
>> return visitor.visit( this, data );
>> }
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>> Sun Oct 23 23:10:24 2011
>> @@ -72,7 +72,7 @@ public class ASTAnd
>> {
>> result = _children[i].getValue( context, source );
>>
>> - if ( i != last&& !OgnlOps.booleanValue( result ) )
>> + if ( i != last&& !OgnlOps.booleanValue( result ) )
>> {
>> break;
>> }
>> @@ -93,7 +93,7 @@ public class ASTAnd
>> {
>> Object v = _children[i].getValue( context, target );
>>
>> - if ( !OgnlOps.booleanValue( v ) )
>> + if ( !OgnlOps.booleanValue( v ) )
>> {
>> return;
>> }
>> @@ -123,12 +123,12 @@ public class ASTAnd
>> */
>> public String toGetSourceString( OgnlContext context, Object target )
>> {
>> - if ( _children.length != 2 )
>> + if ( _children.length != 2 )
>> {
>> throw new UnsupportedCompilationException(
>> "Can only compile boolean expressions with two children."
>> );
>> }
>> -
>> +
>> String result = "";
>>
>> try
>> @@ -141,17 +141,17 @@ public class ASTAnd
>> "And expression can't be compiled until all
>> conditions are true." );
>> }
>>
>> - if ( !OgnlRuntime.isBoolean( first )&&
>> !context.getCurrentType().isPrimitive() )
>> + if ( !OgnlRuntime.isBoolean( first )&&
>> !context.getCurrentType().isPrimitive() )
>> {
>> first = OgnlRuntime.getCompiler( context
>> ).createLocalReference( context, first, context.getCurrentType() );
>> }
>> -
>> +
>> String second = OgnlRuntime.getChildSource( context, target,
>> _children[1] );
>> - if ( !OgnlRuntime.isBoolean( second )&&
>> !context.getCurrentType().isPrimitive() )
>> + if ( !OgnlRuntime.isBoolean( second )&&
>> !context.getCurrentType().isPrimitive() )
>> {
>> second = OgnlRuntime.getCompiler( context
>> ).createLocalReference( context, second, context.getCurrentType() );
>> }
>> -
>> +
>> result += "(org.apache.commons.ognl.OgnlOps.booleanValue(" +
>> first + ")";
>>
>> result += " ? ";
>> @@ -184,13 +184,13 @@ public class ASTAnd
>> */
>> public String toSetSourceString( OgnlContext context, Object target )
>> {
>> - if ( _children.length != 2 )
>> + if ( _children.length != 2 )
>> {
>> throw new UnsupportedCompilationException( "Can only compile
>> boolean expressions with two children." );
>> }
>> -
>> +
>> String pre = (String) context.get( "_currentChain" );
>> - if ( pre == null )
>> + if ( pre == null )
>> {
>> pre = "";
>> }
>> @@ -216,15 +216,15 @@ public class ASTAnd
>> ExpressionCompiler.getRootExpression( _children[1],
>> context.getRoot(), context ) + pre
>> + _children[1].toSetSourceString( context, target );
>>
>> - if ( !OgnlRuntime.isBoolean( first ) )
>> + if ( !OgnlRuntime.isBoolean( first ) )
>> {
>> result +=
>> "if(org.apache.commons.ognl.OgnlOps.booleanValue(" + first + ")){";
>> - }
>> - else
>> + }
>> + else
>> {
>> result += "if(" + first + "){";
>> }
>> -
>> +
>> result += second;
>> result += "; } ";
>>
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>> Sun Oct 23 23:10:24 2011
>> @@ -69,11 +69,11 @@ class ASTAssign
>> context.setCurrentType( Object.class );
>>
>> String core = seq.getCoreExpression();
>> - if ( core.endsWith( ";" ) )
>> + if ( core.endsWith( ";" ) )
>> {
>> core = core.substring( 0, core.lastIndexOf( ";" ) );
>> }
>> -
>> +
>> second =
>> OgnlRuntime.getCompiler( context ).createLocalReference(
>> context,
>>
>> "org.apache.commons.ognl.OgnlOps.returnValue(($w)"
>> @@ -122,12 +122,12 @@ class ASTAssign
>>
>> String value = _children[1].toSetSourceString( context, target );
>>
>> - if ( value == null )
>> + if ( value == null )
>> {
>> throw new UnsupportedCompilationException(
>> "Value for assignment is null, can't enhance statement to
>> bytecode." );
>> }
>> -
>> +
>> if ( ASTSequence.class.isAssignableFrom( _children[1].getClass()
>> ) )
>> {
>> ASTSequence seq = (ASTSequence) _children[1];
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>> Sun Oct 23 23:10:24 2011
>> @@ -46,7 +46,7 @@ class ASTBitAnd
>> throws OgnlException
>> {
>> Object result = _children[0].getValue( context, source );
>> - for ( int i = 1; i< _children.length; ++i )
>> + for ( int i = 1; i< _children.length; ++i )
>> {
>> result = OgnlOps.binaryAnd( result, _children[i].getValue(
>> context, source ) );
>> }
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>> Sun Oct 23 23:10:24 2011
>> @@ -20,7 +20,7 @@ package org.apache.commons.ognl;
>> */
>>
>> /**
>> - * $Id$
>> + * $Id$
>> * @author Luke Blanshard (blanshlu@netscape.net)
>> * @author Drew Davidson (drew@ognl.org)
>> */
>> @@ -46,7 +46,7 @@ class ASTBitOr
>> throws OgnlException
>> {
>> Object result = _children[0].getValue( context, source );
>> - for ( int i = 1; i< _children.length; ++i )
>> + for ( int i = 1; i< _children.length; ++i )
>> {
>> result = OgnlOps.binaryOr( result, _children[i].getValue(
>> context, source ) );
>> }
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>> Sun Oct 23 23:10:24 2011
>> @@ -209,8 +209,7 @@ public class ArrayPropertyAccessor
>> indexStr = "org.apache.commons.ognl.OgnlOps#getIntValue(" +
>> indexStr + toString + ")";
>> }
>>
>> - Class<? extends Object> type =
>> - target.getClass().isArray() ?
>> target.getClass().getComponentType() : target.getClass();
>> + Class<? extends Object> type = target.getClass().isArray() ?
>> target.getClass().getComponentType() : target.getClass();
>>
>> context.setCurrentAccessor( target.getClass() );
>> context.setCurrentType( target.getClass().getComponentType() );
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>> Sun Oct 23 23:10:24 2011
>> @@ -33,6 +33,7 @@ public class DefaultTypeConverter
>> {
>>
>> public<T> T convertValue( Map<String, Object> context, Object
>> value, Class<T> toType )
>> + throws OgnlException
>> {
>> @SuppressWarnings( "unchecked" ) // type checking performed in
>> OgnlOps.convertValue( value, toType )
>> T ret = (T) OgnlOps.convertValue( value, toType );
>> @@ -44,6 +45,7 @@ public class DefaultTypeConverter
>> */
>> public<T> T convertValue( Map<String, Object> context, Object
>> target, Member member, String propertyName, Object value,
>> Class<T> toType )
>> + throws OgnlException
>> {
>> return convertValue( context, value, toType );
>> }
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>> Sun Oct 23 23:10:24 2011
>> @@ -19,35 +19,22 @@ package org.apache.commons.ognl;
>> * under the License.
>> */
>>
>> -import java.util.ArrayList;
>> import java.util.List;
>>
>> +/**
>> + * @deprecated evaluation-pooling now relies on the jvm garbage
>> collection
>> + */
>> public final class EvaluationPool
>> {
>> - private final List<Evaluation> evaluations = new
>> ArrayList<Evaluation>();
>> -
>> - private int size = 0;
>> -
>> - private int created = 0;
>> -
>> - private int recovered = 0;
>> -
>> - private int recycled = 0;
>> -
>> - public EvaluationPool()
>> + public EvaluationPool( )
>> {
>> this( 0 );
>> }
>>
>> public EvaluationPool( int initialSize )
>> {
>> - super();
>> - for ( int i = 0; i< initialSize; i++ )
>> - {
>> - evaluations.add( new Evaluation( null, null ) );
>> - }
>> - created = initialSize;
>> - size = initialSize;
>> + super( );
>> + // do not init object pooling
>> }
>>
>> /**
>> @@ -60,98 +47,87 @@ public final class EvaluationPool
>> }
>>
>> /**
>> - * Returns an Evaluation that contains the node, source and whether
>> it is a set operation. If there are no
>> - * Evaluation objects in the pool one is created and returned.
>> + * Returns an Evaluation that contains the node, source and whether
>> it
>> + * is a set operation.
>> */
>> - public synchronized Evaluation create( SimpleNode node, Object
>> source, boolean setOperation )
>> + public Evaluation create( SimpleNode node, Object source, boolean
>> setOperation )
>> {
>> - Evaluation result;
>> -
>> - if ( size> 0 )
>> - {
>> - result = evaluations.remove( size - 1 );
>> - result.init( node, source, setOperation );
>> - size--;
>> - recovered++;
>> - }
>> - else
>> - {
>> - result = new Evaluation( node, source, setOperation );
>> - created++;
>> - }
>> - return result;
>> + // synchronization is removed as we do not rely anymore on the
>> in-house object pooling
>> + return new Evaluation( node, source, setOperation );
>> }
>>
>> /**
>> * Recycles an Evaluation
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> */
>> - public synchronized void recycle( Evaluation value )
>> + public void recycle( Evaluation value )
>> {
>> - if ( value != null )
>> - {
>> - value.reset();
>> - evaluations.add( value );
>> - size++;
>> - recycled++;
>> - }
>> + // no need of recycling, we rely on the garbage collection
>> efficiency
>> }
>>
>> /**
>> - * Recycles an of Evaluation and all of it's siblings and children.
>> + * Recycles an of Evaluation and all of it's siblings
>> + * and children.
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> */
>> public void recycleAll( Evaluation value )
>> {
>> - if ( value != null )
>> - {
>> - recycleAll( value.getNext() );
>> - recycleAll( value.getFirstChild() );
>> - recycle( value );
>> - }
>> + // no need of recycling, we rely on the garbage collection
>> efficiency
>> }
>>
>> /**
>> * Recycles a List of Evaluation objects
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> */
>> - public void recycleAll( List<Evaluation> value )
>> + public void recycleAll( List value )
>> {
>> - if ( value != null )
>> - {
>> - for ( int i = 0, icount = value.size(); i< icount; i++ )
>> - {
>> - recycle( value.get( i ) );
>> - }
>> - }
>> + // no need of recycling, we rely on the garbage collection
>> efficiency
>> }
>>
>> /**
>> * Returns the number of items in the pool
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> */
>> - public int getSize()
>> + public int getSize( )
>> {
>> - return size;
>> + return 0;
>> }
>>
>> /**
>> - * Returns the number of items this pool has created since it's
>> construction.
>> + * Returns the number of items this pool has created since
>> + * it's construction.
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> */
>> - public int getCreatedCount()
>> + public int getCreatedCount( )
>> {
>> - return created;
>> + return 0;
>> }
>>
>> /**
>> - * Returns the number of items this pool has recovered from the pool
>> since its construction.
>> + * Returns the number of items this pool has recovered from
>> + * the pool since its construction.
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> */
>> - public int getRecoveredCount()
>> + public int getRecoveredCount( )
>> {
>> - return recovered;
>> + return 0;
>> }
>>
>> /**
>> - * Returns the number of items this pool has recycled since it's
>> construction.
>> + * Returns the number of items this pool has recycled since
>> + * it's construction.
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> */
>> - public int getRecycledCount()
>> + public int getRecycledCount( )
>> {
>> - return recycled;
>> + return 0;
>> }
>> }
>> +
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>> Sun Oct 23 23:10:24 2011
>> @@ -113,13 +113,13 @@ public abstract class ExpressionNode
>> {
>> pre = "";
>> }
>> -
>> +
>> String cast = (String) context.remove(
>> ExpressionCompiler.PRE_CAST );
>> if ( cast == null )
>> {
>> cast = "";
>> }
>> -
>> +
>> value =
>> cast + ExpressionCompiler.getRootExpression(
>> _children[i], context.getRoot(), context ) + pre
>> + value;
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>> Sun Oct 23 23:10:24 2011
>> @@ -41,7 +41,7 @@ public interface MethodAccessor
>> * @exception MethodFailedException if there is an error calling the
>> method
>> */
>> Object callStaticMethod( Map<String, Object> context, Class<?>
>> targetClass, String methodName, Object[] args )
>> - throws MethodFailedException;
>> + throws OgnlException;
>>
>> /**
>> * Calls the method named with the arguments given.
>> @@ -54,5 +54,5 @@ public interface MethodAccessor
>> * @exception MethodFailedException if there is an error calling the
>> method
>> */
>> Object callMethod( Map<String, Object> context, Object target,
>> String methodName, Object[] args )
>> - throws MethodFailedException;
>> + throws OgnlException;
>> }
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>> Sun Oct 23 23:10:24 2011
>> @@ -22,50 +22,50 @@ package org.apache.commons.ognl;
>>
>> public interface NodeVisitor<R, P>
>> {
>> - public R visit(ASTSequence node, P data) throws OgnlException;
>> - public R visit(ASTAssign node, P data) throws OgnlException;
>> - public R visit(ASTTest node, P data) throws OgnlException;
>> - public R visit(ASTOr node, P data) throws OgnlException;
>> - public R visit(ASTAnd node, P data) throws OgnlException;
>> - public R visit(ASTBitOr node, P data) throws OgnlException;
>> - public R visit(ASTXor node, P data) throws OgnlException;
>> - public R visit(ASTBitAnd node, P data) throws OgnlException;
>> - public R visit(ASTEq node, P data) throws OgnlException;
>> - public R visit(ASTNotEq node, P data) throws OgnlException;
>> - public R visit(ASTLess node, P data) throws OgnlException;
>> - public R visit(ASTGreater node, P data) throws OgnlException;
>> - public R visit(ASTLessEq node, P data) throws OgnlException;
>> - public R visit(ASTGreaterEq node, P data) throws OgnlException;
>> - public R visit(ASTIn node, P data) throws OgnlException;
>> - public R visit(ASTNotIn node, P data) throws OgnlException;
>> - public R visit(ASTShiftLeft node, P data) throws OgnlException;
>> - public R visit(ASTShiftRight node, P data) throws OgnlException;
>> - public R visit(ASTUnsignedShiftRight node, P data) throws
>> OgnlException;
>> - public R visit(ASTAdd node, P data) throws OgnlException;
>> - public R visit(ASTSubtract node, P data) throws OgnlException;
>> - public R visit(ASTMultiply node, P data) throws OgnlException;
>> - public R visit(ASTDivide node, P data) throws OgnlException;
>> - public R visit(ASTRemainder node, P data) throws OgnlException;
>> - public R visit(ASTNegate node, P data) throws OgnlException;
>> - public R visit(ASTBitNegate node, P data) throws OgnlException;
>> - public R visit(ASTNot node, P data) throws OgnlException;
>> - public R visit(ASTInstanceof node, P data) throws OgnlException;
>> - public R visit(ASTChain node, P data) throws OgnlException;
>> - public R visit(ASTEval node, P data) throws OgnlException;
>> - public R visit(ASTConst node, P data) throws OgnlException;
>> - public R visit(ASTThisVarRef node, P data) throws OgnlException;
>> - public R visit(ASTRootVarRef node, P data) throws OgnlException;
>> - public R visit(ASTVarRef node, P data) throws OgnlException;
>> - public R visit(ASTList node, P data) throws OgnlException;
>> - public R visit(ASTMap node, P data) throws OgnlException;
>> - public R visit(ASTKeyValue node, P data) throws OgnlException;
>> - public R visit(ASTStaticField node, P data) throws OgnlException;
>> - public R visit(ASTCtor node, P data) throws OgnlException;
>> - public R visit(ASTProperty node, P data) throws OgnlException;
>> - public R visit(ASTStaticMethod node, P data) throws OgnlException;
>> - public R visit(ASTMethod node, P data) throws OgnlException;
>> - public R visit(ASTProject node, P data) throws OgnlException;
>> - public R visit(ASTSelect node, P data) throws OgnlException;
>> - public R visit(ASTSelectFirst node, P data) throws OgnlException;
>> - public R visit(ASTSelectLast node, P data) throws OgnlException;
>> + public R visit(ASTSequence node, P data);
>> + public R visit(ASTAssign node, P data);
>> + public R visit(ASTTest node, P data);
>> + public R visit(ASTOr node, P data);
>> + public R visit(ASTAnd node, P data);
>> + public R visit(ASTBitOr node, P data);
>> + public R visit(ASTXor node, P data);
>> + public R visit(ASTBitAnd node, P data);
>> + public R visit(ASTEq node, P data);
>> + public R visit(ASTNotEq node, P data);
>> + public R visit(ASTLess node, P data);
>> + public R visit(ASTGreater node, P data);
>> + public R visit(ASTLessEq node, P data);
>> + public R visit(ASTGreaterEq node, P data);
>> + public R visit(ASTIn node, P data);
>> + public R visit(ASTNotIn node, P data);
>> + public R visit(ASTShiftLeft node, P data);
>> + public R visit(ASTShiftRight node, P data);
>> + public R visit(ASTUnsignedShiftRight node, P data);
>> + public R visit(ASTAdd node, P data);
>> + public R visit(ASTSubtract node, P data);
>> + public R visit(ASTMultiply node, P data);
>> + public R visit(ASTDivide node, P data);
>> + public R visit(ASTRemainder node, P data);
>> + public R visit(ASTNegate node, P data);
>> + public R visit(ASTBitNegate node, P data);
>> + public R visit(ASTNot node, P data);
>> + public R visit(ASTInstanceof node, P data);
>> + public R visit(ASTChain node, P data);
>> + public R visit(ASTEval node, P data);
>> + public R visit(ASTConst node, P data);
>> + public R visit(ASTThisVarRef node, P data);
>> + public R visit(ASTRootVarRef node, P data);
>> + public R visit(ASTVarRef node, P data);
>> + public R visit(ASTList node, P data);
>> + public R visit(ASTMap node, P data);
>> + public R visit(ASTKeyValue node, P data);
>> + public R visit(ASTStaticField node, P data);
>> + public R visit(ASTCtor node, P data);
>> + public R visit(ASTProperty node, P data);
>> + public R visit(ASTStaticMethod node, P data);
>> + public R visit(ASTMethod node, P data);
>> + public R visit(ASTProject node, P data);
>> + public R visit(ASTSelect node, P data);
>> + public R visit(ASTSelectFirst node, P data);
>> + public R visit(ASTSelectLast node, P data);
>> }
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>> Sun Oct 23 23:10:24 2011
>> @@ -19,147 +19,26 @@ package org.apache.commons.ognl;
>> * under the License.
>> */
>>
>> -import java.util.ArrayList;
>> -import java.util.Arrays;
>> -import java.util.List;
>> -
>> +/**
>> + * This class was previously intended to produce performance
>> improvement.<br>
>> + * This hand-made object pooling is now a bottleneck under high load.<br>
>> + * We now rely on the new jvm garbage collection improvements to handle
>> object allocation efficiently.
>> + *
>> + * @deprecated object-pooling now relies on the jvm garbage collection
>> + */
>> public final class ObjectArrayPool
>> {
>> - private final IntHashMap<Integer, SizePool> pools = new
>> IntHashMap<Integer, SizePool>( 23 );
>> -
>> - public static class SizePool
>> + public ObjectArrayPool( )
>> {
>> - private final List<Object[]> arrays = new ArrayList<Object[]>();
>> -
>> - private int arraySize;
>> -
>> - private int size;
>> -
>> - private int created = 0;
>> -
>> - private int recovered = 0;
>> -
>> - private int recycled = 0;
>> -
>> - public SizePool( int arraySize )
>> - {
>> - this( arraySize, 0 );
>> - }
>> -
>> - public SizePool( int arraySize, int initialSize )
>> - {
>> - super();
>> - this.arraySize = arraySize;
>> - for ( int i = 0; i< initialSize; i++ )
>> - {
>> - arrays.add( new Object[arraySize] );
>> - }
>> - created = size = initialSize;
>> - }
>> -
>> - public int getArraySize()
>> - {
>> - return arraySize;
>> - }
>> -
>> - public Object[] create()
>> - {
>> - Object[] result;
>> -
>> - if ( size> 0 )
>> - {
>> - result = arrays.remove( size - 1 );
>> - size--;
>> - recovered++;
>> - }
>> - else
>> - {
>> - result = new Object[arraySize];
>> - created++;
>> - }
>> - return result;
>> - }
>> -
>> - public synchronized void recycle( Object[] value )
>> - {
>> - if ( value != null )
>> - {
>> - if ( value.length != arraySize )
>> - {
>> - throw new IllegalArgumentException( "recycled array
>> size " + value.length
>> - + " inappropriate for pool array size " +
>> arraySize );
>> - }
>> - Arrays.fill( value, null );
>> - arrays.add( value );
>> - size++;
>> - recycled++;
>> - }
>> - else
>> - {
>> - throw new IllegalArgumentException( "cannot recycle null
>> object" );
>> - }
>> - }
>> -
>> - /**
>> - * Returns the number of items in the pool
>> - */
>> - public int getSize()
>> - {
>> - return size;
>> - }
>> -
>> - /**
>> - * Returns the number of items this pool has created since it's
>> construction.
>> - */
>> - public int getCreatedCount()
>> - {
>> - return created;
>> - }
>> -
>> - /**
>> - * Returns the number of items this pool has recovered from the
>> pool since its construction.
>> - */
>> - public int getRecoveredCount()
>> - {
>> - return recovered;
>> - }
>> -
>> - /**
>> - * Returns the number of items this pool has recycled since it's
>> construction.
>> - */
>> - public int getRecycledCount()
>> - {
>> - return recycled;
>> - }
>> - }
>> -
>> - public ObjectArrayPool()
>> - {
>> - super();
>> - }
>> -
>> - public IntHashMap<Integer, SizePool> getSizePools()
>> - {
>> - return pools;
>> - }
>> -
>> - public synchronized SizePool getSizePool( int arraySize )
>> - {
>> - SizePool result = pools.get( arraySize );
>> -
>> - if ( result == null )
>> - {
>> - pools.put( arraySize, result = new SizePool( arraySize ) );
>> - }
>> - return result;
>> + super( );
>> }
>>
>> - public synchronized Object[] create( int arraySize )
>> + public Object[] create( int arraySize )
>> {
>> - return getSizePool( arraySize ).create();
>> + return new Object[arraySize];
>> }
>>
>> - public synchronized Object[] create( Object singleton )
>> + public Object[] create( Object singleton )
>> {
>> Object[] result = create( 1 );
>>
>> @@ -167,7 +46,7 @@ public final class ObjectArrayPool
>> return result;
>> }
>>
>> - public synchronized Object[] create( Object object1, Object object2 )
>> + public Object[] create( Object object1, Object object2 )
>> {
>> Object[] result = create( 2 );
>>
>> @@ -176,7 +55,7 @@ public final class ObjectArrayPool
>> return result;
>> }
>>
>> - public synchronized Object[] create( Object object1, Object object2,
>> Object object3 )
>> + public Object[] create( Object object1, Object object2, Object
>> object3 )
>> {
>> Object[] result = create( 3 );
>>
>> @@ -186,7 +65,7 @@ public final class ObjectArrayPool
>> return result;
>> }
>>
>> - public synchronized Object[] create( Object object1, Object object2,
>> Object object3, Object object4 )
>> + public Object[] create( Object object1, Object object2, Object
>> object3, Object object4 )
>> {
>> Object[] result = create( 4 );
>>
>> @@ -197,7 +76,7 @@ public final class ObjectArrayPool
>> return result;
>> }
>>
>> - public synchronized Object[] create( Object object1, Object object2,
>> Object object3, Object object4, Object object5 )
>> + public Object[] create( Object object1, Object object2, Object
>> object3, Object object4, Object object5 )
>> {
>> Object[] result = create( 5 );
>>
>> @@ -209,11 +88,11 @@ public final class ObjectArrayPool
>> return result;
>> }
>>
>> - public synchronized void recycle( Object[] value )
>> + /**
>> + * @deprecated object-pooling now relies on the jvm garbage
>> collection
>> + */
>> + public void recycle( Object[] value )
>> {
>> - if ( value != null )
>> - {
>> - getSizePool( value.length ).recycle( value );
>> - }
>> + // no need of recycling, we rely on the garbage collection
>> efficiency
>> }
>> }
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>> Sun Oct 23 23:10:24 2011
>> @@ -38,7 +38,7 @@ public class ObjectMethodAccessor
>> * {@inheritDoc}
>> */
>> public Object callStaticMethod( Map<String, Object> context,
>> Class<?> targetClass, String methodName, Object[] args )
>> - throws MethodFailedException
>> + throws OgnlException
>> {
>> List<Method> methods = OgnlRuntime.getMethods( targetClass,
>> methodName, true );
>>
>> @@ -50,7 +50,7 @@ public class ObjectMethodAccessor
>> * {@inheritDoc}
>> */
>> public Object callMethod( Map<String, Object> context, Object
>> target, String methodName, Object[] args )
>> - throws MethodFailedException
>> + throws OgnlException
>> {
>> Class<?> targetClass = ( target == null ) ? null :
>> target.getClass();
>> List<Method> methods = OgnlRuntime.getMethods( targetClass,
>> methodName, false );
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>> Sun Oct 23 23:10:24 2011
>> @@ -152,10 +152,9 @@ public class ObjectPropertyAccessor
>> public Object getProperty( Map<String, Object> context, Object
>> target, Object oname )
>> throws OgnlException
>> {
>> - Object result = null;
>> String name = oname.toString();
>>
>> - result = getPossibleProperty( context, target, name );
>> + Object result = getPossibleProperty( context, target, name );
>>
>> if ( result == OgnlRuntime.NotFound )
>> {
>> @@ -262,7 +261,7 @@ public class ObjectPropertyAccessor
>> }
>>
>> context.setCurrentType( m.getReturnType() );
>> - context.setCurrentAccessor( OgnlRuntime.getCompiler( context
>> ).getSuperOrInterfaceClass( m, m.getDeclaringClass() ) );
>> + context.setCurrentAccessor(
>> OgnlRuntime.getCompiler().getSuperOrInterfaceClass( m, m.getDeclaringClass()
>> ) );
>>
>> return "." + m.getName() + "()";
>>
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>> Sun Oct 23 23:10:24 2011
>> @@ -51,7 +51,7 @@ import java.util.Map;
>> *<p>
>> * This will parse the expression given and evaluate it against the root
>> object given, returning the result. If there is
>> * an error in the expression, such as the property is not found, the
>> exception is encapsulated into an
>> - * {@link ognl.OgnlException OgnlException}.
>> + * {@link org.apache.commons.ognl.OgnlException OgnlException}.
>> *</p>
>> *<p>
>> * Other more sophisticated uses of Ognl can pre-parse expressions. This
>> provides two advantages: in the case of
>> @@ -126,13 +126,13 @@ public abstract class Ognl
>> }
>>
>> /**
>> - * Parses and compiles the given expression using the {@link
>> ognl.enhance.OgnlExpressionCompiler} returned from
>> - * {@link ognl.OgnlRuntime#getCompiler()}.
>> + * Parses and compiles the given expression using the {@link
>> org.apache.commons.ognl.enhance.OgnlExpressionCompiler} returned from
>> + * {@link org.apache.commons.ognl.OgnlRuntime#getCompiler()}.
>> *
>> * @param context The context to use.
>> * @param root The root object for the given expression.
>> * @param expression The expression to compile.
>> - * @return The node with a compiled accessor set on {@link
>> ognl.Node#getAccessor()} if compilation was successfull.
>> + * @return The node with a compiled accessor set on {@link
>> org.apache.commons.ognl.Node#getAccessor()} if compilation was successfull.
>> * In instances where compilation wasn't possible because of
>> a partially null expression the
>> * {@link ExpressionAccessor} instance may be null and the
>> compilation of this expression still possible at
>> * some as yet indertermined point in the future.
>> @@ -471,6 +471,7 @@ public abstract class Ognl
>> * @return The value.
>> */
>> public static<T> T getValue( ExpressionAccessor expression,
>> OgnlContext context, Object root, Class<T> resultType )
>> + throws OgnlException
>> {
>> return getTypeConverter( context ).convertValue( context, root,
>> null, null, expression.get( context, root ),
>> resultType );
>>
>> Modified:
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>> URL:
>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>
>> ==============================================================================
>> ---
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>> (original)
>> +++
>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>> Sun Oct 23 23:10:24 2011
>> @@ -431,71 +431,85 @@ public abstract class OgnlOps
>> }
>>
>> public static Object toArray( char value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( new Character( value ), toType );
>> }
>>
>> public static Object toArray( byte value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( new Byte( value ), toType );
>> }
>>
>> public static Object toArray( int value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( new Integer( value ), toType );
>> }
>>
>> public static Object toArray( long value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( new Long( value ), toType );
>> }
>>
>> public static Object toArray( float value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( new Float( value ), toType );
>> }
>>
>> public static Object toArray( double value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( new Double( value ), toType );
>> }
>>
>> public static Object toArray( boolean value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( Boolean.valueOf( value ), toType );
>> }
>>
>> public static<T> Object convertValue( char value, Class<T> toType )
>> + throws OgnlException
>> {
>> return convertValue( new Character( value ), toType );
>> }
>>
>> public static<T> Object convertValue( byte value, Class<T> toType )
>> + throws OgnlException
>> {
>> return convertValue( new Byte( value ), toType );
>> }
>>
>> public static<T> Object convertValue( int value, Class<T> toType )
>> + throws OgnlException
>> {
>> return convertValue( new Integer( value ), toType );
>> }
>>
>> public static<T> Object convertValue( long value, Class<T> toType )
>> + throws OgnlException
>> {
>> return convertValue( new Long( value ), toType );
>> }
>>
>> public static<T> Object convertValue( float value, Class<T> toType
>> )
>> + throws OgnlException
>> {
>> return convertValue( new Float( value ), toType );
>> }
>>
>> public static<T> Object convertValue( double value, Class<T> toType
>> )
>> + throws OgnlException
>> {
>> return convertValue( new Double( value ), toType );
>> }
>>
>> public static<T> Object convertValue( boolean value, Class<T>
>> toType )
>> + throws OgnlException
>> {
>> return convertValue( Boolean.valueOf( value ), toType );
>> }
>> @@ -503,36 +517,43 @@ public abstract class OgnlOps
>> // //////////////////////////////////////////////////////////////
>>
>> public static<T> Object convertValue( char value, Class<T> toType,
>> boolean preventNull )
>> + throws OgnlException
>> {
>> return convertValue( new Character( value ), toType, preventNull
>> );
>> }
>>
>> public static<T> Object convertValue( byte value, Class<T> toType,
>> boolean preventNull )
>> + throws OgnlException
>> {
>> return convertValue( new Byte( value ), toType, preventNull );
>> }
>>
>> public static<T> Object convertValue( int value, Class<T> toType,
>> boolean preventNull )
>> + throws OgnlException
>> {
>> return convertValue( new Integer( value ), toType, preventNull );
>> }
>>
>> public static<T> Object convertValue( long value, Class<T> toType,
>> boolean preventNull )
>> + throws OgnlException
>> {
>> return convertValue( new Long( value ), toType, preventNull );
>> }
>>
>> public static<T> Object convertValue( float value, Class<T> toType,
>> boolean preventNull )
>> + throws OgnlException
>> {
>> return convertValue( new Float( value ), toType, preventNull );
>> }
>>
>> public static<T> Object convertValue( double value, Class<T>
>> toType, boolean preventNull )
>> + throws OgnlException
>> {
>> return convertValue( new Double( value ), toType, preventNull );
>> }
>>
>> public static<T> Object convertValue( boolean value, Class<T>
>> toType, boolean preventNull )
>> + throws OgnlException
>> {
>> return convertValue( Boolean.valueOf( value ), toType,
>> preventNull );
>> }
>> @@ -540,36 +561,43 @@ public abstract class OgnlOps
>> // ///////////////////////////////////////////////////////////////
>>
>> public static Object toArray( char value, Class<?> toType, boolean
>> preventNull )
>> + throws OgnlException
>> {
>> return toArray( new Character( value ), toType, preventNull );
>> }
>>
>> public static Object toArray( byte value, Class<?> toType, boolean
>> preventNull )
>> + throws OgnlException
>> {
>> return toArray( new Byte( value ), toType, preventNull );
>> }
>>
>> public static Object toArray( int value, Class<?> toType, boolean
>> preventNull )
>> + throws OgnlException
>> {
>> return toArray( new Integer( value ), toType, preventNull );
>> }
>>
>> public static Object toArray( long value, Class<?> toType, boolean
>> preventNull )
>> + throws OgnlException
>> {
>> return toArray( new Long( value ), toType, preventNull );
>> }
>>
>> public static Object toArray( float value, Class<?> toType, boolean
>> preventNull )
>> + throws OgnlException
>> {
>> return toArray( new Float( value ), toType, preventNull );
>> }
>>
>> public static Object toArray( double value, Class<?> toType, boolean
>> preventNull )
>> + throws OgnlException
>> {
>> return toArray( new Double( value ), toType, preventNull );
>> }
>>
>> public static Object toArray( boolean value, Class<?> toType,
>> boolean preventNull )
>> + throws OgnlException
>> {
>> return toArray( Boolean.valueOf( value ), toType, preventNull );
>> }
>> @@ -583,21 +611,24 @@ public abstract class OgnlOps
>> * @return converted value of the type given, or value if the value
>> cannot be converted to the given type.
>> */
>> public static Object convertValue( Object value, Class<?> toType )
>> + throws OgnlException
>> {
>> return convertValue( value, toType, false );
>> }
>>
>> public static Object toArray( Object value, Class<?> toType )
>> + throws OgnlException
>> {
>> return toArray( value, toType, false );
>> }
>>
>> public static Object toArray( Object value, Class<?> toType, boolean
>> preventNulls )
>> + throws OgnlException
>> {
>> if ( value == null )
>> return null;
>>
>> - Object result = null;
>> + Object result;
>>
>> if ( value.getClass().isArray()&& toType.isAssignableFrom(
>> value.getClass().getComponentType() ) )
>> {
>> @@ -633,6 +664,7 @@ public abstract class OgnlOps
>> }
>>
>> public static<T> Object convertValue( Object value, Class<T>
>> toType, boolean preventNulls )
>> + throws OgnlException
>> {
>> Object result = null;
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: svn commit: r1188000 [1/3] - in /commons/proper/ognl/trunk: ./
src/main/java/org/apache/commons/ognl/ src/main/java/org/apache/commons/ognl/enhance/
src/main/java/org/apache/commons/ognl/internal/ src/main/java/org/apache/commons/ognl/internal/en
Posted by Adrian Crum <ad...@sandglass-software.com>.
Then maybe the commit log should say something like "Merged branch back
to trunk. Merge includes patches from OGNL-20."
-Adrian
On 10/24/2011 12:53 AM, Maurizio Cucchiara wrote:
> This is the outcome of a merge from a one month branch. During the
> last month the branch has become "misaligned" compared to the trunk.
> Sorry for the noise, but I didn't know how to avoid it.
>
>
> Twitter :http://www.twitter.com/m_cucchiara
> G+ :https://plus.google.com/107903711540963855921
> Linkedin :http://www.linkedin.com/in/mauriziocucchiara
>
> Maurizio Cucchiara
>
>
>
> On 24 October 2011 01:29, Adrian Crum
> <ad...@sandglass-software.com> wrote:
>> This commit appears to contain a lot of formatting changes that have nothing
>> to do with synchronization. Also, interface method declarations do not
>> require the public keyword.
>>
>> -Adrian
>>
>> On 10/24/2011 12:10 AM, mcucchiara@apache.org wrote:
>>> Author: mcucchiara
>>> Date: Sun Oct 23 23:10:24 2011
>>> New Revision: 1188000
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1188000&view=rev
>>> Log:
>>> OGNL-20 - Performance - Replace synchronized blocks with
>>> ReentrantReadWriteLock
>>>
>>> Added:
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/Cache.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/Cache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/CacheException.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/CacheException.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/CacheFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/CacheFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ClassCacheHandler.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ClassCacheHandler.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCache.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapClassCache.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ConcurrentHashMapClassCache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/HashMapCache.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/HashMapCache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/HashMapCacheFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/HashMapCacheFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/HashMapClassCache.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/HashMapClassCache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCache.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCacheFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockCacheFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockClassCache.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/ReentrantReadWriteLockClassCache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/
>>> - copied from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntry.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntry.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/CacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/ClassCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/ClassCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntry.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntry.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/DeclaredMethodCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/FiedlCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/FiedlCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeCacheEntry.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeCacheEntry.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/GenericMethodParameterTypeFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessEntryValue.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodAccessEntryValue.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntry.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntry.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/MethodPermCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/MethodPermCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntry.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntry.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/PermissionCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/main/java/org/apache/commons/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/
>>> - copied from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/ConcurrentHashMapCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/ConstructorCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/ConstructorCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/DeclaredMethodCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/DeclaredMethodCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/FieldCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/FieldCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/GenericMethodParameterTypeCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/GenericMethodParameterTypeCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/MethodAccessCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/MethodAccessCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/MethodPermCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/MethodPermCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/PermissionCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/PermissionCacheTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/internal/PropertyDescriptorCacheTest.java
>>> - copied unchanged from r1187982,
>>> commons/proper/ognl/branches/new-cache-approach/src/test/java/org/apache/commons/ognl/internal/PropertyDescriptorCacheTest.java
>>> Modified:
>>> commons/proper/ognl/trunk/ (props changed)
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlRuntime.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/TypeConverter.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/enhance/ExpressionCompiler.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ClassCache.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/ClassCacheImpl.java
>>>
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/internal/Entry.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/TestOgnlRuntime.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/ArrayElementsTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/ContextVariableTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/IndexAccessTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/InterfaceInheritanceTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/LambdaExpressionTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/MethodWithConversionTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/NestedMethodTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/NullHandlerTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/OgnlTestCase.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/OperatorTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/Performance.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/PrivateAccessorTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/PropertyTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/QuotingTest.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/enhance/TestExpressionCompiler.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Bean1.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Bean2.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Bean3.java
>>>
>>> commons/proper/ognl/trunk/src/test/java/org/apache/commons/ognl/test/objects/Root.java
>>>
>>> Propchange: commons/proper/ognl/trunk/
>>>
>>> ------------------------------------------------------------------------------
>>> --- svn:mergeinfo (added)
>>> +++ svn:mergeinfo Sun Oct 23 23:10:24 2011
>>> @@ -0,0 +1 @@
>>> +/commons/proper/ognl/branches/new-cache-approach:1181007-1187982
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAdd.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -52,7 +52,7 @@ class ASTAdd
>>> {
>>> Object result = _children[0].getValue( context, source );
>>>
>>> - for ( int i = 1; i< _children.length; ++i )
>>> + for ( int i = 1; i< _children.length; ++i )
>>> {
>>> result = OgnlOps.add( result, _children[i].getValue( context,
>>> source ) );
>>> }
>>> @@ -67,34 +67,34 @@ class ASTAdd
>>>
>>> boolean isWider( NodeType type, NodeType lastType )
>>> {
>>> - if ( lastType == null )
>>> + if ( lastType == null )
>>> {
>>> return true;
>>> }
>>>
>>> // System.out.println("checking isWider(" + type.getGetterClass()
>>> + " , " + lastType.getGetterClass() + ")");
>>>
>>> - if ( String.class.isAssignableFrom( lastType.getGetterClass() ) )
>>> + if ( String.class.isAssignableFrom( lastType.getGetterClass() ) )
>>> {
>>> return false;
>>> }
>>>
>>> - if ( String.class.isAssignableFrom( type.getGetterClass() ) )
>>> + if ( String.class.isAssignableFrom( type.getGetterClass() ) )
>>> {
>>> return true;
>>> }
>>>
>>> - if ( _parent != null&& String.class.isAssignableFrom(
>>> type.getGetterClass() ) )
>>> + if ( _parent != null&& String.class.isAssignableFrom(
>>> type.getGetterClass() ) )
>>> {
>>> return true;
>>> }
>>>
>>> - if ( String.class.isAssignableFrom( lastType.getGetterClass() )&&
>>> Object.class == type.getGetterClass() )
>>> + if ( String.class.isAssignableFrom( lastType.getGetterClass() )&&
>>> Object.class == type.getGetterClass() )
>>> {
>>> return false;
>>> }
>>>
>>> - if ( _parent != null&& String.class.isAssignableFrom(
>>> lastType.getGetterClass() ) )
>>> + if ( _parent != null&& String.class.isAssignableFrom(
>>> lastType.getGetterClass() ) )
>>> {
>>> return false;
>>> }
>>> @@ -182,15 +182,15 @@ class ASTAdd
>>>
>>> for ( int i = 0; i< _children.length; ++i )
>>> {
>>> - if ( i> 0 )
>>> + if ( i> 0 )
>>> {
>>> result += " " + getExpressionOperator( i ) + " ";
>>> }
>>> -
>>> +
>>> String expr = _children[i].toGetSourceString(
>>> context, target );
>>>
>>> if ( ( expr != null&& "null".equals( expr ) )
>>> - || ( !ASTConst.class.isInstance( _children[i] )
>>> + || ( !ASTConst.class.isInstance( _children[i] )
>>> && ( expr == null || expr.trim().length()<= 0 )
>>> ) )
>>> {
>>> expr = "null";
>>> @@ -234,7 +234,7 @@ class ASTAdd
>>> ExpressionCompiler.getRootExpression(
>>> _children[i], context.getRoot(), context );
>>>
>>> if ( !ASTProperty.class.isInstance(
>>> _children[i].jjtGetChild( 0 ) )&& rootExpr.endsWith( ")" )
>>> -&& expr.startsWith( ")" ) )
>>> +&& expr.startsWith( ")" ) )
>>> {
>>> expr = expr.substring( 1, expr.length() );
>>> }
>>> @@ -243,7 +243,7 @@ class ASTAdd
>>> context.setCurrentAccessor(
>>> context.getRoot().getClass() );
>>>
>>> String cast = (String) context.remove(
>>> ExpressionCompiler.PRE_CAST );
>>> - if ( cast == null )
>>> + if ( cast == null )
>>> {
>>> cast = "";
>>> }
>>> @@ -297,7 +297,7 @@ class ASTAdd
>>> {
>>> if ( ASTVarRef.class.isInstance( _children[i]
>>> )
>>> || ASTProperty.class.isInstance(
>>> _children[i] )
>>> - || ASTChain.class.isInstance(
>>> _children[i] ) )
>>> + || ASTChain.class.isInstance(
>>> _children[i] ) )
>>> {
>>> result += ".";
>>> }
>>> @@ -307,7 +307,7 @@ class ASTAdd
>>> }
>>> }
>>>
>>> - if ( lastType != null )
>>> + if ( lastType != null )
>>> {
>>> context.setCurrentAccessor(
>>> lastType.getGetterClass() );
>>> }
>>> @@ -316,7 +316,7 @@ class ASTAdd
>>>
>>> if ( _parent == null || ASTSequence.class.isAssignableFrom(
>>> _parent.getClass() ) )
>>> {
>>> - if ( _getterClass != null&&
>>> String.class.isAssignableFrom( _getterClass ) )
>>> + if ( _getterClass != null&&
>>> String.class.isAssignableFrom( _getterClass ) )
>>> {
>>> _getterClass = Object.class;
>>> }
>>> @@ -346,7 +346,6 @@ class ASTAdd
>>> }
>>>
>>> public<R, P> R accept( NodeVisitor<? extends R, ? super P> visitor,
>>> P data )
>>> - throws OgnlException
>>> {
>>> return visitor.visit( this, data );
>>> }
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAnd.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -72,7 +72,7 @@ public class ASTAnd
>>> {
>>> result = _children[i].getValue( context, source );
>>>
>>> - if ( i != last&& !OgnlOps.booleanValue( result ) )
>>> + if ( i != last&& !OgnlOps.booleanValue( result ) )
>>> {
>>> break;
>>> }
>>> @@ -93,7 +93,7 @@ public class ASTAnd
>>> {
>>> Object v = _children[i].getValue( context, target );
>>>
>>> - if ( !OgnlOps.booleanValue( v ) )
>>> + if ( !OgnlOps.booleanValue( v ) )
>>> {
>>> return;
>>> }
>>> @@ -123,12 +123,12 @@ public class ASTAnd
>>> */
>>> public String toGetSourceString( OgnlContext context, Object target )
>>> {
>>> - if ( _children.length != 2 )
>>> + if ( _children.length != 2 )
>>> {
>>> throw new UnsupportedCompilationException(
>>> "Can only compile boolean expressions with two children."
>>> );
>>> }
>>> -
>>> +
>>> String result = "";
>>>
>>> try
>>> @@ -141,17 +141,17 @@ public class ASTAnd
>>> "And expression can't be compiled until all
>>> conditions are true." );
>>> }
>>>
>>> - if ( !OgnlRuntime.isBoolean( first )&&
>>> !context.getCurrentType().isPrimitive() )
>>> + if ( !OgnlRuntime.isBoolean( first )&&
>>> !context.getCurrentType().isPrimitive() )
>>> {
>>> first = OgnlRuntime.getCompiler( context
>>> ).createLocalReference( context, first, context.getCurrentType() );
>>> }
>>> -
>>> +
>>> String second = OgnlRuntime.getChildSource( context, target,
>>> _children[1] );
>>> - if ( !OgnlRuntime.isBoolean( second )&&
>>> !context.getCurrentType().isPrimitive() )
>>> + if ( !OgnlRuntime.isBoolean( second )&&
>>> !context.getCurrentType().isPrimitive() )
>>> {
>>> second = OgnlRuntime.getCompiler( context
>>> ).createLocalReference( context, second, context.getCurrentType() );
>>> }
>>> -
>>> +
>>> result += "(org.apache.commons.ognl.OgnlOps.booleanValue(" +
>>> first + ")";
>>>
>>> result += " ? ";
>>> @@ -184,13 +184,13 @@ public class ASTAnd
>>> */
>>> public String toSetSourceString( OgnlContext context, Object target )
>>> {
>>> - if ( _children.length != 2 )
>>> + if ( _children.length != 2 )
>>> {
>>> throw new UnsupportedCompilationException( "Can only compile
>>> boolean expressions with two children." );
>>> }
>>> -
>>> +
>>> String pre = (String) context.get( "_currentChain" );
>>> - if ( pre == null )
>>> + if ( pre == null )
>>> {
>>> pre = "";
>>> }
>>> @@ -216,15 +216,15 @@ public class ASTAnd
>>> ExpressionCompiler.getRootExpression( _children[1],
>>> context.getRoot(), context ) + pre
>>> + _children[1].toSetSourceString( context, target );
>>>
>>> - if ( !OgnlRuntime.isBoolean( first ) )
>>> + if ( !OgnlRuntime.isBoolean( first ) )
>>> {
>>> result +=
>>> "if(org.apache.commons.ognl.OgnlOps.booleanValue(" + first + ")){";
>>> - }
>>> - else
>>> + }
>>> + else
>>> {
>>> result += "if(" + first + "){";
>>> }
>>> -
>>> +
>>> result += second;
>>> result += "; } ";
>>>
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTAssign.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -69,11 +69,11 @@ class ASTAssign
>>> context.setCurrentType( Object.class );
>>>
>>> String core = seq.getCoreExpression();
>>> - if ( core.endsWith( ";" ) )
>>> + if ( core.endsWith( ";" ) )
>>> {
>>> core = core.substring( 0, core.lastIndexOf( ";" ) );
>>> }
>>> -
>>> +
>>> second =
>>> OgnlRuntime.getCompiler( context ).createLocalReference(
>>> context,
>>>
>>> "org.apache.commons.ognl.OgnlOps.returnValue(($w)"
>>> @@ -122,12 +122,12 @@ class ASTAssign
>>>
>>> String value = _children[1].toSetSourceString( context, target );
>>>
>>> - if ( value == null )
>>> + if ( value == null )
>>> {
>>> throw new UnsupportedCompilationException(
>>> "Value for assignment is null, can't enhance statement to
>>> bytecode." );
>>> }
>>> -
>>> +
>>> if ( ASTSequence.class.isAssignableFrom( _children[1].getClass()
>>> ) )
>>> {
>>> ASTSequence seq = (ASTSequence) _children[1];
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitAnd.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -46,7 +46,7 @@ class ASTBitAnd
>>> throws OgnlException
>>> {
>>> Object result = _children[0].getValue( context, source );
>>> - for ( int i = 1; i< _children.length; ++i )
>>> + for ( int i = 1; i< _children.length; ++i )
>>> {
>>> result = OgnlOps.binaryAnd( result, _children[i].getValue(
>>> context, source ) );
>>> }
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ASTBitOr.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -20,7 +20,7 @@ package org.apache.commons.ognl;
>>> */
>>>
>>> /**
>>> - * $Id$
>>> + * $Id$
>>> * @author Luke Blanshard (blanshlu@netscape.net)
>>> * @author Drew Davidson (drew@ognl.org)
>>> */
>>> @@ -46,7 +46,7 @@ class ASTBitOr
>>> throws OgnlException
>>> {
>>> Object result = _children[0].getValue( context, source );
>>> - for ( int i = 1; i< _children.length; ++i )
>>> + for ( int i = 1; i< _children.length; ++i )
>>> {
>>> result = OgnlOps.binaryOr( result, _children[i].getValue(
>>> context, source ) );
>>> }
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -209,8 +209,7 @@ public class ArrayPropertyAccessor
>>> indexStr = "org.apache.commons.ognl.OgnlOps#getIntValue(" +
>>> indexStr + toString + ")";
>>> }
>>>
>>> - Class<? extends Object> type =
>>> - target.getClass().isArray() ?
>>> target.getClass().getComponentType() : target.getClass();
>>> + Class<? extends Object> type = target.getClass().isArray() ?
>>> target.getClass().getComponentType() : target.getClass();
>>>
>>> context.setCurrentAccessor( target.getClass() );
>>> context.setCurrentType( target.getClass().getComponentType() );
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/DefaultTypeConverter.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -33,6 +33,7 @@ public class DefaultTypeConverter
>>> {
>>>
>>> public<T> T convertValue( Map<String, Object> context, Object
>>> value, Class<T> toType )
>>> + throws OgnlException
>>> {
>>> @SuppressWarnings( "unchecked" ) // type checking performed in
>>> OgnlOps.convertValue( value, toType )
>>> T ret = (T) OgnlOps.convertValue( value, toType );
>>> @@ -44,6 +45,7 @@ public class DefaultTypeConverter
>>> */
>>> public<T> T convertValue( Map<String, Object> context, Object
>>> target, Member member, String propertyName, Object value,
>>> Class<T> toType )
>>> + throws OgnlException
>>> {
>>> return convertValue( context, value, toType );
>>> }
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/EvaluationPool.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -19,35 +19,22 @@ package org.apache.commons.ognl;
>>> * under the License.
>>> */
>>>
>>> -import java.util.ArrayList;
>>> import java.util.List;
>>>
>>> +/**
>>> + * @deprecated evaluation-pooling now relies on the jvm garbage
>>> collection
>>> + */
>>> public final class EvaluationPool
>>> {
>>> - private final List<Evaluation> evaluations = new
>>> ArrayList<Evaluation>();
>>> -
>>> - private int size = 0;
>>> -
>>> - private int created = 0;
>>> -
>>> - private int recovered = 0;
>>> -
>>> - private int recycled = 0;
>>> -
>>> - public EvaluationPool()
>>> + public EvaluationPool( )
>>> {
>>> this( 0 );
>>> }
>>>
>>> public EvaluationPool( int initialSize )
>>> {
>>> - super();
>>> - for ( int i = 0; i< initialSize; i++ )
>>> - {
>>> - evaluations.add( new Evaluation( null, null ) );
>>> - }
>>> - created = initialSize;
>>> - size = initialSize;
>>> + super( );
>>> + // do not init object pooling
>>> }
>>>
>>> /**
>>> @@ -60,98 +47,87 @@ public final class EvaluationPool
>>> }
>>>
>>> /**
>>> - * Returns an Evaluation that contains the node, source and whether
>>> it is a set operation. If there are no
>>> - * Evaluation objects in the pool one is created and returned.
>>> + * Returns an Evaluation that contains the node, source and whether
>>> it
>>> + * is a set operation.
>>> */
>>> - public synchronized Evaluation create( SimpleNode node, Object
>>> source, boolean setOperation )
>>> + public Evaluation create( SimpleNode node, Object source, boolean
>>> setOperation )
>>> {
>>> - Evaluation result;
>>> -
>>> - if ( size> 0 )
>>> - {
>>> - result = evaluations.remove( size - 1 );
>>> - result.init( node, source, setOperation );
>>> - size--;
>>> - recovered++;
>>> - }
>>> - else
>>> - {
>>> - result = new Evaluation( node, source, setOperation );
>>> - created++;
>>> - }
>>> - return result;
>>> + // synchronization is removed as we do not rely anymore on the
>>> in-house object pooling
>>> + return new Evaluation( node, source, setOperation );
>>> }
>>>
>>> /**
>>> * Recycles an Evaluation
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> */
>>> - public synchronized void recycle( Evaluation value )
>>> + public void recycle( Evaluation value )
>>> {
>>> - if ( value != null )
>>> - {
>>> - value.reset();
>>> - evaluations.add( value );
>>> - size++;
>>> - recycled++;
>>> - }
>>> + // no need of recycling, we rely on the garbage collection
>>> efficiency
>>> }
>>>
>>> /**
>>> - * Recycles an of Evaluation and all of it's siblings and children.
>>> + * Recycles an of Evaluation and all of it's siblings
>>> + * and children.
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> */
>>> public void recycleAll( Evaluation value )
>>> {
>>> - if ( value != null )
>>> - {
>>> - recycleAll( value.getNext() );
>>> - recycleAll( value.getFirstChild() );
>>> - recycle( value );
>>> - }
>>> + // no need of recycling, we rely on the garbage collection
>>> efficiency
>>> }
>>>
>>> /**
>>> * Recycles a List of Evaluation objects
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> */
>>> - public void recycleAll( List<Evaluation> value )
>>> + public void recycleAll( List value )
>>> {
>>> - if ( value != null )
>>> - {
>>> - for ( int i = 0, icount = value.size(); i< icount; i++ )
>>> - {
>>> - recycle( value.get( i ) );
>>> - }
>>> - }
>>> + // no need of recycling, we rely on the garbage collection
>>> efficiency
>>> }
>>>
>>> /**
>>> * Returns the number of items in the pool
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> */
>>> - public int getSize()
>>> + public int getSize( )
>>> {
>>> - return size;
>>> + return 0;
>>> }
>>>
>>> /**
>>> - * Returns the number of items this pool has created since it's
>>> construction.
>>> + * Returns the number of items this pool has created since
>>> + * it's construction.
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> */
>>> - public int getCreatedCount()
>>> + public int getCreatedCount( )
>>> {
>>> - return created;
>>> + return 0;
>>> }
>>>
>>> /**
>>> - * Returns the number of items this pool has recovered from the pool
>>> since its construction.
>>> + * Returns the number of items this pool has recovered from
>>> + * the pool since its construction.
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> */
>>> - public int getRecoveredCount()
>>> + public int getRecoveredCount( )
>>> {
>>> - return recovered;
>>> + return 0;
>>> }
>>>
>>> /**
>>> - * Returns the number of items this pool has recycled since it's
>>> construction.
>>> + * Returns the number of items this pool has recycled since
>>> + * it's construction.
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> */
>>> - public int getRecycledCount()
>>> + public int getRecycledCount( )
>>> {
>>> - return recycled;
>>> + return 0;
>>> }
>>> }
>>> +
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ExpressionNode.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -113,13 +113,13 @@ public abstract class ExpressionNode
>>> {
>>> pre = "";
>>> }
>>> -
>>> +
>>> String cast = (String) context.remove(
>>> ExpressionCompiler.PRE_CAST );
>>> if ( cast == null )
>>> {
>>> cast = "";
>>> }
>>> -
>>> +
>>> value =
>>> cast + ExpressionCompiler.getRootExpression(
>>> _children[i], context.getRoot(), context ) + pre
>>> + value;
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/MethodAccessor.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -41,7 +41,7 @@ public interface MethodAccessor
>>> * @exception MethodFailedException if there is an error calling the
>>> method
>>> */
>>> Object callStaticMethod( Map<String, Object> context, Class<?>
>>> targetClass, String methodName, Object[] args )
>>> - throws MethodFailedException;
>>> + throws OgnlException;
>>>
>>> /**
>>> * Calls the method named with the arguments given.
>>> @@ -54,5 +54,5 @@ public interface MethodAccessor
>>> * @exception MethodFailedException if there is an error calling the
>>> method
>>> */
>>> Object callMethod( Map<String, Object> context, Object target,
>>> String methodName, Object[] args )
>>> - throws MethodFailedException;
>>> + throws OgnlException;
>>> }
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/NodeVisitor.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -22,50 +22,50 @@ package org.apache.commons.ognl;
>>>
>>> public interface NodeVisitor<R, P>
>>> {
>>> - public R visit(ASTSequence node, P data) throws OgnlException;
>>> - public R visit(ASTAssign node, P data) throws OgnlException;
>>> - public R visit(ASTTest node, P data) throws OgnlException;
>>> - public R visit(ASTOr node, P data) throws OgnlException;
>>> - public R visit(ASTAnd node, P data) throws OgnlException;
>>> - public R visit(ASTBitOr node, P data) throws OgnlException;
>>> - public R visit(ASTXor node, P data) throws OgnlException;
>>> - public R visit(ASTBitAnd node, P data) throws OgnlException;
>>> - public R visit(ASTEq node, P data) throws OgnlException;
>>> - public R visit(ASTNotEq node, P data) throws OgnlException;
>>> - public R visit(ASTLess node, P data) throws OgnlException;
>>> - public R visit(ASTGreater node, P data) throws OgnlException;
>>> - public R visit(ASTLessEq node, P data) throws OgnlException;
>>> - public R visit(ASTGreaterEq node, P data) throws OgnlException;
>>> - public R visit(ASTIn node, P data) throws OgnlException;
>>> - public R visit(ASTNotIn node, P data) throws OgnlException;
>>> - public R visit(ASTShiftLeft node, P data) throws OgnlException;
>>> - public R visit(ASTShiftRight node, P data) throws OgnlException;
>>> - public R visit(ASTUnsignedShiftRight node, P data) throws
>>> OgnlException;
>>> - public R visit(ASTAdd node, P data) throws OgnlException;
>>> - public R visit(ASTSubtract node, P data) throws OgnlException;
>>> - public R visit(ASTMultiply node, P data) throws OgnlException;
>>> - public R visit(ASTDivide node, P data) throws OgnlException;
>>> - public R visit(ASTRemainder node, P data) throws OgnlException;
>>> - public R visit(ASTNegate node, P data) throws OgnlException;
>>> - public R visit(ASTBitNegate node, P data) throws OgnlException;
>>> - public R visit(ASTNot node, P data) throws OgnlException;
>>> - public R visit(ASTInstanceof node, P data) throws OgnlException;
>>> - public R visit(ASTChain node, P data) throws OgnlException;
>>> - public R visit(ASTEval node, P data) throws OgnlException;
>>> - public R visit(ASTConst node, P data) throws OgnlException;
>>> - public R visit(ASTThisVarRef node, P data) throws OgnlException;
>>> - public R visit(ASTRootVarRef node, P data) throws OgnlException;
>>> - public R visit(ASTVarRef node, P data) throws OgnlException;
>>> - public R visit(ASTList node, P data) throws OgnlException;
>>> - public R visit(ASTMap node, P data) throws OgnlException;
>>> - public R visit(ASTKeyValue node, P data) throws OgnlException;
>>> - public R visit(ASTStaticField node, P data) throws OgnlException;
>>> - public R visit(ASTCtor node, P data) throws OgnlException;
>>> - public R visit(ASTProperty node, P data) throws OgnlException;
>>> - public R visit(ASTStaticMethod node, P data) throws OgnlException;
>>> - public R visit(ASTMethod node, P data) throws OgnlException;
>>> - public R visit(ASTProject node, P data) throws OgnlException;
>>> - public R visit(ASTSelect node, P data) throws OgnlException;
>>> - public R visit(ASTSelectFirst node, P data) throws OgnlException;
>>> - public R visit(ASTSelectLast node, P data) throws OgnlException;
>>> + public R visit(ASTSequence node, P data);
>>> + public R visit(ASTAssign node, P data);
>>> + public R visit(ASTTest node, P data);
>>> + public R visit(ASTOr node, P data);
>>> + public R visit(ASTAnd node, P data);
>>> + public R visit(ASTBitOr node, P data);
>>> + public R visit(ASTXor node, P data);
>>> + public R visit(ASTBitAnd node, P data);
>>> + public R visit(ASTEq node, P data);
>>> + public R visit(ASTNotEq node, P data);
>>> + public R visit(ASTLess node, P data);
>>> + public R visit(ASTGreater node, P data);
>>> + public R visit(ASTLessEq node, P data);
>>> + public R visit(ASTGreaterEq node, P data);
>>> + public R visit(ASTIn node, P data);
>>> + public R visit(ASTNotIn node, P data);
>>> + public R visit(ASTShiftLeft node, P data);
>>> + public R visit(ASTShiftRight node, P data);
>>> + public R visit(ASTUnsignedShiftRight node, P data);
>>> + public R visit(ASTAdd node, P data);
>>> + public R visit(ASTSubtract node, P data);
>>> + public R visit(ASTMultiply node, P data);
>>> + public R visit(ASTDivide node, P data);
>>> + public R visit(ASTRemainder node, P data);
>>> + public R visit(ASTNegate node, P data);
>>> + public R visit(ASTBitNegate node, P data);
>>> + public R visit(ASTNot node, P data);
>>> + public R visit(ASTInstanceof node, P data);
>>> + public R visit(ASTChain node, P data);
>>> + public R visit(ASTEval node, P data);
>>> + public R visit(ASTConst node, P data);
>>> + public R visit(ASTThisVarRef node, P data);
>>> + public R visit(ASTRootVarRef node, P data);
>>> + public R visit(ASTVarRef node, P data);
>>> + public R visit(ASTList node, P data);
>>> + public R visit(ASTMap node, P data);
>>> + public R visit(ASTKeyValue node, P data);
>>> + public R visit(ASTStaticField node, P data);
>>> + public R visit(ASTCtor node, P data);
>>> + public R visit(ASTProperty node, P data);
>>> + public R visit(ASTStaticMethod node, P data);
>>> + public R visit(ASTMethod node, P data);
>>> + public R visit(ASTProject node, P data);
>>> + public R visit(ASTSelect node, P data);
>>> + public R visit(ASTSelectFirst node, P data);
>>> + public R visit(ASTSelectLast node, P data);
>>> }
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectArrayPool.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -19,147 +19,26 @@ package org.apache.commons.ognl;
>>> * under the License.
>>> */
>>>
>>> -import java.util.ArrayList;
>>> -import java.util.Arrays;
>>> -import java.util.List;
>>> -
>>> +/**
>>> + * This class was previously intended to produce performance
>>> improvement.<br>
>>> + * This hand-made object pooling is now a bottleneck under high load.<br>
>>> + * We now rely on the new jvm garbage collection improvements to handle
>>> object allocation efficiently.
>>> + *
>>> + * @deprecated object-pooling now relies on the jvm garbage collection
>>> + */
>>> public final class ObjectArrayPool
>>> {
>>> - private final IntHashMap<Integer, SizePool> pools = new
>>> IntHashMap<Integer, SizePool>( 23 );
>>> -
>>> - public static class SizePool
>>> + public ObjectArrayPool( )
>>> {
>>> - private final List<Object[]> arrays = new ArrayList<Object[]>();
>>> -
>>> - private int arraySize;
>>> -
>>> - private int size;
>>> -
>>> - private int created = 0;
>>> -
>>> - private int recovered = 0;
>>> -
>>> - private int recycled = 0;
>>> -
>>> - public SizePool( int arraySize )
>>> - {
>>> - this( arraySize, 0 );
>>> - }
>>> -
>>> - public SizePool( int arraySize, int initialSize )
>>> - {
>>> - super();
>>> - this.arraySize = arraySize;
>>> - for ( int i = 0; i< initialSize; i++ )
>>> - {
>>> - arrays.add( new Object[arraySize] );
>>> - }
>>> - created = size = initialSize;
>>> - }
>>> -
>>> - public int getArraySize()
>>> - {
>>> - return arraySize;
>>> - }
>>> -
>>> - public Object[] create()
>>> - {
>>> - Object[] result;
>>> -
>>> - if ( size> 0 )
>>> - {
>>> - result = arrays.remove( size - 1 );
>>> - size--;
>>> - recovered++;
>>> - }
>>> - else
>>> - {
>>> - result = new Object[arraySize];
>>> - created++;
>>> - }
>>> - return result;
>>> - }
>>> -
>>> - public synchronized void recycle( Object[] value )
>>> - {
>>> - if ( value != null )
>>> - {
>>> - if ( value.length != arraySize )
>>> - {
>>> - throw new IllegalArgumentException( "recycled array
>>> size " + value.length
>>> - + " inappropriate for pool array size " +
>>> arraySize );
>>> - }
>>> - Arrays.fill( value, null );
>>> - arrays.add( value );
>>> - size++;
>>> - recycled++;
>>> - }
>>> - else
>>> - {
>>> - throw new IllegalArgumentException( "cannot recycle null
>>> object" );
>>> - }
>>> - }
>>> -
>>> - /**
>>> - * Returns the number of items in the pool
>>> - */
>>> - public int getSize()
>>> - {
>>> - return size;
>>> - }
>>> -
>>> - /**
>>> - * Returns the number of items this pool has created since it's
>>> construction.
>>> - */
>>> - public int getCreatedCount()
>>> - {
>>> - return created;
>>> - }
>>> -
>>> - /**
>>> - * Returns the number of items this pool has recovered from the
>>> pool since its construction.
>>> - */
>>> - public int getRecoveredCount()
>>> - {
>>> - return recovered;
>>> - }
>>> -
>>> - /**
>>> - * Returns the number of items this pool has recycled since it's
>>> construction.
>>> - */
>>> - public int getRecycledCount()
>>> - {
>>> - return recycled;
>>> - }
>>> - }
>>> -
>>> - public ObjectArrayPool()
>>> - {
>>> - super();
>>> - }
>>> -
>>> - public IntHashMap<Integer, SizePool> getSizePools()
>>> - {
>>> - return pools;
>>> - }
>>> -
>>> - public synchronized SizePool getSizePool( int arraySize )
>>> - {
>>> - SizePool result = pools.get( arraySize );
>>> -
>>> - if ( result == null )
>>> - {
>>> - pools.put( arraySize, result = new SizePool( arraySize ) );
>>> - }
>>> - return result;
>>> + super( );
>>> }
>>>
>>> - public synchronized Object[] create( int arraySize )
>>> + public Object[] create( int arraySize )
>>> {
>>> - return getSizePool( arraySize ).create();
>>> + return new Object[arraySize];
>>> }
>>>
>>> - public synchronized Object[] create( Object singleton )
>>> + public Object[] create( Object singleton )
>>> {
>>> Object[] result = create( 1 );
>>>
>>> @@ -167,7 +46,7 @@ public final class ObjectArrayPool
>>> return result;
>>> }
>>>
>>> - public synchronized Object[] create( Object object1, Object object2 )
>>> + public Object[] create( Object object1, Object object2 )
>>> {
>>> Object[] result = create( 2 );
>>>
>>> @@ -176,7 +55,7 @@ public final class ObjectArrayPool
>>> return result;
>>> }
>>>
>>> - public synchronized Object[] create( Object object1, Object object2,
>>> Object object3 )
>>> + public Object[] create( Object object1, Object object2, Object
>>> object3 )
>>> {
>>> Object[] result = create( 3 );
>>>
>>> @@ -186,7 +65,7 @@ public final class ObjectArrayPool
>>> return result;
>>> }
>>>
>>> - public synchronized Object[] create( Object object1, Object object2,
>>> Object object3, Object object4 )
>>> + public Object[] create( Object object1, Object object2, Object
>>> object3, Object object4 )
>>> {
>>> Object[] result = create( 4 );
>>>
>>> @@ -197,7 +76,7 @@ public final class ObjectArrayPool
>>> return result;
>>> }
>>>
>>> - public synchronized Object[] create( Object object1, Object object2,
>>> Object object3, Object object4, Object object5 )
>>> + public Object[] create( Object object1, Object object2, Object
>>> object3, Object object4, Object object5 )
>>> {
>>> Object[] result = create( 5 );
>>>
>>> @@ -209,11 +88,11 @@ public final class ObjectArrayPool
>>> return result;
>>> }
>>>
>>> - public synchronized void recycle( Object[] value )
>>> + /**
>>> + * @deprecated object-pooling now relies on the jvm garbage
>>> collection
>>> + */
>>> + public void recycle( Object[] value )
>>> {
>>> - if ( value != null )
>>> - {
>>> - getSizePool( value.length ).recycle( value );
>>> - }
>>> + // no need of recycling, we rely on the garbage collection
>>> efficiency
>>> }
>>> }
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectMethodAccessor.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -38,7 +38,7 @@ public class ObjectMethodAccessor
>>> * {@inheritDoc}
>>> */
>>> public Object callStaticMethod( Map<String, Object> context,
>>> Class<?> targetClass, String methodName, Object[] args )
>>> - throws MethodFailedException
>>> + throws OgnlException
>>> {
>>> List<Method> methods = OgnlRuntime.getMethods( targetClass,
>>> methodName, true );
>>>
>>> @@ -50,7 +50,7 @@ public class ObjectMethodAccessor
>>> * {@inheritDoc}
>>> */
>>> public Object callMethod( Map<String, Object> context, Object
>>> target, String methodName, Object[] args )
>>> - throws MethodFailedException
>>> + throws OgnlException
>>> {
>>> Class<?> targetClass = ( target == null ) ? null :
>>> target.getClass();
>>> List<Method> methods = OgnlRuntime.getMethods( targetClass,
>>> methodName, false );
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ObjectPropertyAccessor.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -152,10 +152,9 @@ public class ObjectPropertyAccessor
>>> public Object getProperty( Map<String, Object> context, Object
>>> target, Object oname )
>>> throws OgnlException
>>> {
>>> - Object result = null;
>>> String name = oname.toString();
>>>
>>> - result = getPossibleProperty( context, target, name );
>>> + Object result = getPossibleProperty( context, target, name );
>>>
>>> if ( result == OgnlRuntime.NotFound )
>>> {
>>> @@ -262,7 +261,7 @@ public class ObjectPropertyAccessor
>>> }
>>>
>>> context.setCurrentType( m.getReturnType() );
>>> - context.setCurrentAccessor( OgnlRuntime.getCompiler( context
>>> ).getSuperOrInterfaceClass( m, m.getDeclaringClass() ) );
>>> + context.setCurrentAccessor(
>>> OgnlRuntime.getCompiler().getSuperOrInterfaceClass( m, m.getDeclaringClass()
>>> ) );
>>>
>>> return "." + m.getName() + "()";
>>>
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/Ognl.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -51,7 +51,7 @@ import java.util.Map;
>>> *<p>
>>> * This will parse the expression given and evaluate it against the root
>>> object given, returning the result. If there is
>>> * an error in the expression, such as the property is not found, the
>>> exception is encapsulated into an
>>> - * {@link ognl.OgnlException OgnlException}.
>>> + * {@link org.apache.commons.ognl.OgnlException OgnlException}.
>>> *</p>
>>> *<p>
>>> * Other more sophisticated uses of Ognl can pre-parse expressions. This
>>> provides two advantages: in the case of
>>> @@ -126,13 +126,13 @@ public abstract class Ognl
>>> }
>>>
>>> /**
>>> - * Parses and compiles the given expression using the {@link
>>> ognl.enhance.OgnlExpressionCompiler} returned from
>>> - * {@link ognl.OgnlRuntime#getCompiler()}.
>>> + * Parses and compiles the given expression using the {@link
>>> org.apache.commons.ognl.enhance.OgnlExpressionCompiler} returned from
>>> + * {@link org.apache.commons.ognl.OgnlRuntime#getCompiler()}.
>>> *
>>> * @param context The context to use.
>>> * @param root The root object for the given expression.
>>> * @param expression The expression to compile.
>>> - * @return The node with a compiled accessor set on {@link
>>> ognl.Node#getAccessor()} if compilation was successfull.
>>> + * @return The node with a compiled accessor set on {@link
>>> org.apache.commons.ognl.Node#getAccessor()} if compilation was successfull.
>>> * In instances where compilation wasn't possible because of
>>> a partially null expression the
>>> * {@link ExpressionAccessor} instance may be null and the
>>> compilation of this expression still possible at
>>> * some as yet indertermined point in the future.
>>> @@ -471,6 +471,7 @@ public abstract class Ognl
>>> * @return The value.
>>> */
>>> public static<T> T getValue( ExpressionAccessor expression,
>>> OgnlContext context, Object root, Class<T> resultType )
>>> + throws OgnlException
>>> {
>>> return getTypeConverter( context ).convertValue( context, root,
>>> null, null, expression.get( context, root ),
>>> resultType );
>>>
>>> Modified:
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>>> URL:
>>> http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java?rev=1188000&r1=1187999&r2=1188000&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>>> (original)
>>> +++
>>> commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/OgnlOps.java
>>> Sun Oct 23 23:10:24 2011
>>> @@ -431,71 +431,85 @@ public abstract class OgnlOps
>>> }
>>>
>>> public static Object toArray( char value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( new Character( value ), toType );
>>> }
>>>
>>> public static Object toArray( byte value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( new Byte( value ), toType );
>>> }
>>>
>>> public static Object toArray( int value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( new Integer( value ), toType );
>>> }
>>>
>>> public static Object toArray( long value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( new Long( value ), toType );
>>> }
>>>
>>> public static Object toArray( float value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( new Float( value ), toType );
>>> }
>>>
>>> public static Object toArray( double value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( new Double( value ), toType );
>>> }
>>>
>>> public static Object toArray( boolean value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( Boolean.valueOf( value ), toType );
>>> }
>>>
>>> public static<T> Object convertValue( char value, Class<T> toType )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Character( value ), toType );
>>> }
>>>
>>> public static<T> Object convertValue( byte value, Class<T> toType )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Byte( value ), toType );
>>> }
>>>
>>> public static<T> Object convertValue( int value, Class<T> toType )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Integer( value ), toType );
>>> }
>>>
>>> public static<T> Object convertValue( long value, Class<T> toType )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Long( value ), toType );
>>> }
>>>
>>> public static<T> Object convertValue( float value, Class<T> toType
>>> )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Float( value ), toType );
>>> }
>>>
>>> public static<T> Object convertValue( double value, Class<T> toType
>>> )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Double( value ), toType );
>>> }
>>>
>>> public static<T> Object convertValue( boolean value, Class<T>
>>> toType )
>>> + throws OgnlException
>>> {
>>> return convertValue( Boolean.valueOf( value ), toType );
>>> }
>>> @@ -503,36 +517,43 @@ public abstract class OgnlOps
>>> // //////////////////////////////////////////////////////////////
>>>
>>> public static<T> Object convertValue( char value, Class<T> toType,
>>> boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Character( value ), toType, preventNull
>>> );
>>> }
>>>
>>> public static<T> Object convertValue( byte value, Class<T> toType,
>>> boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Byte( value ), toType, preventNull );
>>> }
>>>
>>> public static<T> Object convertValue( int value, Class<T> toType,
>>> boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Integer( value ), toType, preventNull );
>>> }
>>>
>>> public static<T> Object convertValue( long value, Class<T> toType,
>>> boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Long( value ), toType, preventNull );
>>> }
>>>
>>> public static<T> Object convertValue( float value, Class<T> toType,
>>> boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Float( value ), toType, preventNull );
>>> }
>>>
>>> public static<T> Object convertValue( double value, Class<T>
>>> toType, boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return convertValue( new Double( value ), toType, preventNull );
>>> }
>>>
>>> public static<T> Object convertValue( boolean value, Class<T>
>>> toType, boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return convertValue( Boolean.valueOf( value ), toType,
>>> preventNull );
>>> }
>>> @@ -540,36 +561,43 @@ public abstract class OgnlOps
>>> // ///////////////////////////////////////////////////////////////
>>>
>>> public static Object toArray( char value, Class<?> toType, boolean
>>> preventNull )
>>> + throws OgnlException
>>> {
>>> return toArray( new Character( value ), toType, preventNull );
>>> }
>>>
>>> public static Object toArray( byte value, Class<?> toType, boolean
>>> preventNull )
>>> + throws OgnlException
>>> {
>>> return toArray( new Byte( value ), toType, preventNull );
>>> }
>>>
>>> public static Object toArray( int value, Class<?> toType, boolean
>>> preventNull )
>>> + throws OgnlException
>>> {
>>> return toArray( new Integer( value ), toType, preventNull );
>>> }
>>>
>>> public static Object toArray( long value, Class<?> toType, boolean
>>> preventNull )
>>> + throws OgnlException
>>> {
>>> return toArray( new Long( value ), toType, preventNull );
>>> }
>>>
>>> public static Object toArray( float value, Class<?> toType, boolean
>>> preventNull )
>>> + throws OgnlException
>>> {
>>> return toArray( new Float( value ), toType, preventNull );
>>> }
>>>
>>> public static Object toArray( double value, Class<?> toType, boolean
>>> preventNull )
>>> + throws OgnlException
>>> {
>>> return toArray( new Double( value ), toType, preventNull );
>>> }
>>>
>>> public static Object toArray( boolean value, Class<?> toType,
>>> boolean preventNull )
>>> + throws OgnlException
>>> {
>>> return toArray( Boolean.valueOf( value ), toType, preventNull );
>>> }
>>> @@ -583,21 +611,24 @@ public abstract class OgnlOps
>>> * @return converted value of the type given, or value if the value
>>> cannot be converted to the given type.
>>> */
>>> public static Object convertValue( Object value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return convertValue( value, toType, false );
>>> }
>>>
>>> public static Object toArray( Object value, Class<?> toType )
>>> + throws OgnlException
>>> {
>>> return toArray( value, toType, false );
>>> }
>>>
>>> public static Object toArray( Object value, Class<?> toType, boolean
>>> preventNulls )
>>> + throws OgnlException
>>> {
>>> if ( value == null )
>>> return null;
>>>
>>> - Object result = null;
>>> + Object result;
>>>
>>> if ( value.getClass().isArray()&& toType.isAssignableFrom(
>>> value.getClass().getComponentType() ) )
>>> {
>>> @@ -633,6 +664,7 @@ public abstract class OgnlOps
>>> }
>>>
>>> public static<T> Object convertValue( Object value, Class<T>
>>> toType, boolean preventNulls )
>>> + throws OgnlException
>>> {
>>> Object result = null;
>>>
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org