Hello all.

I have run into an interesting reflection bug in Kaffe. I do not have time
to track this one down today so I am going to post the test case in case
someone wants to track it down. I was running on a solaris sparc
(BigEndian) system when I got these results.


import java.lang.reflect.*;

public class ShortTest {
    final static short tval = 3344;
    int _foo;

    public ShortTest(short f)
    {
        _foo = f;
    }

    public int getFoo()
    {
        return _foo;
    }

    public static void test1() throws Exception {
        ShortTest st = new ShortTest(tval);
        int foo = st.getFoo();
        System.out.println("test1 foo is " + foo);
    }
    
    public static void test2() throws Exception {
        Class mtc = ShortTest.class;
        Class[] sig = {Short.TYPE};
        Constructor mtc_con = mtc.getConstructor(sig);

        Object[] args = {new Short(tval)};
        ShortTest st = (ShortTest) mtc_con.newInstance(args);

        int foo = st.getFoo();
        System.out.println("test2 foo is " + foo);
    }

    public static void main(String[] args) throws Exception {
        test1();
        test2();
    }
}


// JDK
//
// % java ShortTest
// test1 foo is 3344
// test2 foo is 3344


// Kaffe
//
// % kaffe ShortTest
// test1 foo is 3344
// test2 foo is 219152384


thanks
Mo DeJong
dejong at cs.umn.edu

Reply via email to