Hi Daniel!

On Saturday,  9. March 2002 01:29, you wrote:
> With version 5: I have this class that fails the JDK verifier but passes
> JustIce:
>
> CLASSPATH=/tmp/bcel-5.0/bcel.jar:~/Nice/share/java/nice.jar java -verify
> nice.getopt.package
> Exception in thread "main" java.lang.VerifyError: (class:
> nice/getopt/package, method: parse signature:
> (Ljava/lang/String;[Ljava/lang/String;Lnice/lang/Sequence;)Lnice/lang/Seque
>nce;) Incompatible argument to function
>

Please do me a favor and help me make JustIce better! I really mean it.

As a first step, thank you for your bug report.

The offending instruction in "parse" is at offset 54, it expects a 
java.lang.Object[] but there's only a java.lang.Object on the stack.

The checks are already there, but they are disabled. Please enable them
(in InstConstraintVisitor.java search for TODO and when I say something about 
some Staerk-et-al approach (four! occurences) just remove the '//' comments).

Then continue to use JustIce.

I believe it rejects more classes with the checks enabled than it should - 
which is the reason why I disabled the checks.

However, you might feel that this is not quite the truth and the checks 
_SHOULD_ be enabled by default. I would change it in the next release then.

There is a chance that you'll find JustIce should be left disabled because it 
rejects too much after they're enabled. If this is the case, I would of 
course still like JustIce to find the problem that the Sun Verifier found.

I have an idea about this (it's not really tricky: the verifier generalizes 
its knowledge along the inheritance hierarchy in the course of its execution 
- but you can never generalize an array to be a non-array which is what I'd 
write in the new code).

Thanks for making JustIce better!

Enver

PS: I hope you don't mind I cc'd the BCEL users list; I think it might be of 
general interest or some other people might like to help.
PPS: people on the user list should reply to me directly.

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to