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--