[Kaffe] bug found in Class.c, possible patch included
Moses DeJong
dejong at cs.umn.edu
Thu Jan 14 04:28:27 PST 1999
There is a bug in the java.lang.Class.getMethod() method. It should
return a Method with no arguments if null is passed as the second
argument. Here is an example file.
import java.lang.reflect.*;
import java.util.*;
public class MethodBug {
public static void main(String[] argv) throws Exception {
Method m = MethodBug.class.getMethod("m", null);
System.out.println("m is " + m);
}
public void m() {}
}
JDK output
% java MethodBug
m is public void MethodBug.m()
Kaffe output
% java MethodBug
java.lang.NullPointerException
at java/lang/Class.getMethod(149)
at MethodBug.main(7)
Kaffe output with patch
% java MethodBug
m is public void MethodBug.m()
Patch file
*** copy_Class.c Thu Jan 14 04:34:04 1999
--- Class.c Thu Jan 14 06:17:06 1999
***************
*** 701,706 ****
--- 701,711 ----
int i;
errorInfo info;
+ /* check null object and void method case */
+ if ((argtypes == NULL) && !strcmp(sig,"()V")) {
+ return 1;
+ }
+
sig++; /* skip leading '(' */
for (i = 0; i < ARRAY_SIZE(argtypes); i++) {
This patch fixes the problem I was having but I am not 100%
sure that it is "the right thing to do". Please take a look
at it and see if it is good enough to go into the CVS tree.
thanks
mo dejong
dejong at cs.umn.edu
More information about the kaffe
mailing list