[ 
http://issues.apache.org/jira/browse/VELOCITY-453?page=comments#action_12438373 
] 
            
Alexey Panchenko commented on VELOCITY-453:
-------------------------------------------

The hash function could be as follows

        public int hashCode() 
        {
            int result = 17;
            for (int i = 0; i < params.length; ++i) 
            {
                final Class param = params[i];
                if (param != null)
                {
                    result = result * 37 + param.hashCode();
                }
            }
            return result * 37 + methodName.hashCode();
        }

17 and 37 are used in HashCodeBuilder by default.

> [PATCH] Fix IntrospectionCacheData caching
> ------------------------------------------
>
>                 Key: VELOCITY-453
>                 URL: http://issues.apache.org/jira/browse/VELOCITY-453
>             Project: Velocity
>          Issue Type: Bug
>          Components: Source
>    Affects Versions: 1.5
>            Reporter: Alexey Panchenko
>         Assigned To: Will Glass-Husain
>             Fix For: 1.5
>
>         Attachments: ASTMethod.java.patch2006-09-28, 
> ASTMethod_IntrospectionCacheData_cache, 
> ASTMethod_IntrospectionCacheData_cache-v2-retry.patch, 
> ASTMethod_IntrospectionCacheData_cache-v2.patch, 
> IntrospectionCacheDataTest-no-copyright.java, 
> IntrospectionCacheDataTest-no-copyright.java, 
> IntrospectionCacheDataTest-v4.java, IntrospectionCacheDataTest.java
>
>
> The old code used Class[].hashCode() in MethodCacheKey.hashCode() 
> implementation.
> hashCode() is not overriden for arrays so it returns different value for each 
> array instance.
> The attached is the correct implementation and a test case to prove the 
> caching actually works.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to