[kaffe] Re: KJC Classes Fail Verification (fwd)
rgonzale at wso.williams.edu
Thu Jul 10 08:36:04 PDT 2003
It turns out that the error was in the BCEL verifier and not in KJC.
I've forwarded the relevant information and checked in a quick fix that
_should_ fix the issue with KJC.
---------- Forwarded message ----------
Date: 10 Jul 2003 11:54:08 +0200
From: Laurent Vaills <laurent.vaills at dms.at>
To: Rob Gonzalez <rgonzale at wso.williams.edu>
Cc: kopi-developers at dms.at
Subject: Re: KJC Classes Fail Verification
The Java language specification, § 8.4.6 states that "A class inherits
from its direct superclass and direct superinterfaces all the
non-private methods". Thus that makes no sense to speak about overriding
a private method.
So the classfile verifier has to check that a subclass does not override
any final methods declared in the super-class with the public or
protected or default access.
We use jikes to compile the KJC suite. Jikes seems to make all the
private methods of a class as final.
PS : Rob, soory for my first answer which was sent a little bit too
On Tue, 2003-07-01 at 17:13, Rob Gonzalez wrote:
> Hi Kopi Developers,
> I'm in the process of adding full classfile verification to the kaffe
> project. Unfortunately, after adding pass 2 verification the KJC suite
> cannot function when kaffe's verifier is turned on because certain classes
> fail verification. In particular, at.dms.kjc.CClassNameType overrides
> final method printArgs from superclass at.dms.kjc.CReferenceType. I've
> confirmed this error by running BCEL's JustIce verifier on the offending
> class and it rejects the class for the same reason.
> There may be other classes in the project with similar, minor issues that
> would keep them from passing verification. We would clearly like all the
> KJC classes to pass verification because kaffe uses it as a default java
> compiler :)
More information about the kaffe