jikes 1.17 bug (Was: Re: [kaffe] Some patches to use jikes)

Hervé Roussain herve.roussain@univ-ubs.fr
Fri, 06 Dec 2002 16:56:32 +0100


This is a multi-part message in MIME format.
--------------000003010900090303090100
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by mercure.univ-ubs.fr id QAA24035

>
>
>
>With jikes 1.17, everything compiles, and all but one
>regression tests pass on i386-linux-jit3. The failing
>test is SoTimeout, which fails because kaffe can't
>find SocketImpl.setOption(int, Object) method. I have
>to take a closer look at the disassembly of the source
>files to figure out if that's a bug in kaffe or in
>jikes 1.17.
>
>keep up the good work,
>
>dalibor topic
>

It seems to be a jikes bug. But it is also a gcj bug (after a comment in=20
SocketImpl.java & DatagramSocketImpl.java in classpath's source) that=20
classpath solve by redeclarations of "setOption" and "getOption" methods=20
in the 2 mentioned classes.
If you decide to do the same thing than in GNU Classpath, don't forget=20
the DatagramSocketImpl (it has the same problem but this is not shown=20
with regression tests).

As the problem may be reproduced in other cases, I join a file that can=20
be put in test/regression, or at least that shows you the bug. It works=20
with kjc, but not with jikes 1.17 (it compiles but throw a=20
"NoSubMethodError" exception. I called it "AbstractInterfaceTest"=20
because there is a problem with jikes when an abstract class implements=20
an interface. It may be renamed or thrown out if you think it's bad idea=20
(that is NOT a kaffe bug)

Best regards,
Herv=E9

PS: I encounter a "bug" when I post something to kaffe's mailing list :=20
I receive my post 5 hours after I posted it. I believe this is because I=20
live in France and there is a 5 hours shift between Eastern USA &=20
Western Europe. How could this be "repaired" ?

--------------000003010900090303090100
Content-Type: text/plain;
 name="AbstractInterfaceTest.java"
Content-Disposition: inline;
 filename="AbstractInterfaceTest.java"
Content-Transfer-Encoding: 7bit

class AbstractInterfaceTest {

  public static void main(String[] args) {
    new AbstractInterfaceTest();
  }

  AbstractInterfaceTest() {
    AIAbstract ai = new AIImpl();
    ai.doIt();
  }

  interface AIInterface {
    void doIt();
  }

  abstract class AIAbstract implements AIInterface {}

  class AIImpl extends AIAbstract {
    AIImpl() {}

    public void doIt() {
      System.out.println("Success");
    }
  }

}

--------------000003010900090303090100--