[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlbeans-dev
Subject:    [jira] Commented: (XMLBEANS-206) Wrong method finding in getMethod() of InterfaceExtensionImpl
From:       "Lawrence Jones (JIRA)" <xmlbeans-dev () xml ! apache ! org>
Date:       2005-10-21 0:17:51
Message-ID: 2099078153.1129853871221.JavaMail.jira () ajax ! apache ! org
[Download RAW message or body]

    [ http://issues.apache.org/jira/browse/XMLBEANS-206?page=comments#action_12332653 \
] 

Lawrence Jones commented on XMLBEANS-206:
-----------------------------------------

Am attaching the stack trace you see for this error (with an interface with 2 \
same-named methods - one takes String, other takes String & int)

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
        at org.apache.xmlbeans.impl.config.InterfaceExtensionImpl.getMethod(InterfaceExtensionImpl.java:194)
                
        at org.apache.xmlbeans.impl.config.InterfaceExtensionImpl.validateMethod(InterfaceExtensionImpl.java:138)
                
        at org.apache.xmlbeans.impl.config.InterfaceExtensionImpl.validateMethods(InterfaceExtensionImpl.java:113)
                
        at org.apache.xmlbeans.impl.config.InterfaceExtensionImpl.newInstance(InterfaceExtensionImpl.java:58)
                
        at org.apache.xmlbeans.impl.config.BindingConfigImpl.recordExtensionSetting(BindingConfigImpl.java:236)
                
        at org.apache.xmlbeans.impl.config.BindingConfigImpl.<init>(BindingConfigImpl.java:107)
                
        at org.apache.xmlbeans.impl.config.BindingConfigImpl.forConfigDocuments(BindingConfigImpl.java:69)
                
        at org.apache.xmlbeans.impl.tool.SchemaCompiler.loadTypeSystem(SchemaCompiler.java:944)
                
        at org.apache.xmlbeans.impl.tool.SchemaCompiler.compile(SchemaCompiler.java:1072)
                
        at org.apache.xmlbeans.impl.tool.SchemaCompiler.main(SchemaCompiler.java:368)

> Wrong method finding in getMethod() of InterfaceExtensionImpl
> -------------------------------------------------------------
> 
> Key: XMLBEANS-206
> URL: http://issues.apache.org/jira/browse/XMLBEANS-206
> Project: XMLBeans
> Type: Bug
> Components: Binding
> Versions: Version 2
> Environment: Doesn't relate to platform.
> Reporter: Denis Anisimov

> 
> Wrong implementation of getMethod() in InterfaceExtensionImpl class could lead to  \
> ArrayIndexOutOfBoundsException. Old implementation :
> static JMethod getMethod(JClass cls, String name, JClass[] paramTypes)
> {
> JMethod[] methods = cls.getMethods();
> for (int i = 0; i < methods.length; i++)
> {
> JMethod method = methods[i];
> if (!name.equals(method.getSimpleName()))
> continue;
> JParameter[] mParams = method.getParameters();           
> for (int j = 0; j < mParams.length; j++)
> {
> JParameter mParam = mParams[j];
> if (!mParam.getType().equals(paramTypes[j]))
> continue;
> }
> return method;
> }
> return null;
> }
> Correct impl-tion :
> static JMethod getMethod(JClass cls, String name, JClass[] paramTypes)
> {
> JMethod[] methods = cls.getMethods();
> for (int i = 0; i < methods.length; i++)
> {
> JMethod method = methods[i];
> if (!name.equals(method.getSimpleName()))
> continue;
> JParameter[] mParams = method.getParameters();
> // here was bug in possibe ArrayIndexOutOfBoundsException.
> // because methods could have same names but different
> // number of parameters
> if ( mParams.length != paramTypes.length ){
> 	continue;
> }
> 
> for (int j = 0; j < mParams.length; j++)
> {
> JParameter mParam = mParams[j];
> if (!mParam.getType().equals(paramTypes[j]))
> continue;
> }
> return method;
> }
> return null;
> }

-- 
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: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic