Small Error in BCEL Verifier
Rob Gonzalez <[email protected]>
| Newsgroups | gmane.comp.jakarta.bcel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi everyone, I'm developing a verifier for the Kaffe Open VM and have been using BCEL's verifier (great work on that, btw) for debugging. I'm currently using BCEL 5.1. I recently found a pretty obscure bug with JustIce. When the Jikes compiler compiles a class with a private method, it also marks the method as final. However, if a subclass then has a method of the same name JustIce pass 2 rejects the subclass because it overrides a final method. Sun's verifier does not reject such subclasses. According to the Java Language Specification 8.4.6, a subclass inherits all non-private methods, so the subclass would not actually be overriding the private, final method in its superclass because it never inherited it. Thus JustIce should only reject a class containing a method that overrides a final method from its superclass hirearchy if the method is non-private. Cheers, Rob