verifier error
Nic Ferrier
nferrier@tapsellferrier.co.uk
Mon Jan 28 03:13:00 GMT 2002
Per Bothner <per@bothner.com> writes:
> Tom Tromey wrote:
> > Step 2, unfortunately, is harder. The `invokeinterface' instruction
> > takes a byte (the byte at <loc>+3, where <loc> is the location of the
> > invokeinterface opcode). This byte is the number of arguments to the
> > method, plus one. One way to do this would be to look at the .class
> > file in a hex editor; I don't think jcf-dump will print this byte.
>
> I'm disappointed in your lack of faith in my/our code.
> Of course jcf-dump prints this byte.
>
> jcf-dump prints *everything*. If it doesn't, it's a bug that
> would be fixed.
It does... it's just the gnu.bytecode.dump right? That's a good tool,
I use it nearlly every where I go.
Anyway, the answer to the question is:
Method name:"testConditional" private Signature: 180=(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)boolean
Attribute "Code", length:155, max_stack:4, max_locals:7, code_length:91
0: aload_2
1: ldc #9=<String "Date">
3: invokestatic #64=<Method java.lang.System.currentTimeMillis ()long>
6: invokeinterface #99=<InterfaceMethod javax.servlet.http.HttpServletResponse.setDateHeader (java.lang.String,long)void> nargs:4
The arg count of 4 is wrong. It should be 3 because there are 2
arguments to the method setDateHeader.
Is that enough info to fix it?
Where is the verifier code btw?
Nic
More information about the Java
mailing list