Wrong method finding in getMethod() of InterfaceExtensionImpl -------------------------------------------------------------
Key: XMLBEANS-206 URL: http://issues.apache.org/jira/browse/XMLBEANS-206 Project: XMLBeans Type: Bug 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]