diff -r c0bbf144c2c6 -r 3497ecd097df emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java --- a/emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java Tue Jan 08 16:01:25 2013 +0100 +++ b/emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java Tue Jan 08 16:32:11 2013 +0100 @@ -66,11 +66,21 @@ public static Method findMethod( Class clazz, String name, Class... parameterTypes) { Object[] data = findMethodData(clazz, name + "__"); - if (data.length == 0) { - return null; + BIG: for (int i = 0; i < data.length; i += 2) { + String sig = ((String) data[0]).substring(name.length() + 2); + Method tmp = INSTANCE.create(clazz, name, data[1], sig); + Class[] tmpParms = tmp.getParameterTypes(); + if (parameterTypes.length != tmpParms.length) { + continue; + } + for (int j = 0; j < tmpParms.length; j++) { + if (!parameterTypes[j].equals(tmpParms[j])) { + continue BIG; + } + } + return tmp; } - String sig = ((String) data[0]).substring(name.length() + 2); - return INSTANCE.create(clazz, name, data[1], sig); + return null; } public static Method[] findMethods(Class clazz, int mask) {