I've got a problem decompiling a very long class file ...
The classpath contains more then 5 megs of jars.
Any idea what this could mean?
Many thanks in advance.
Exception while decompiling:java.lang.IllegalArgumentException: stack length differs
at java.lang.Thread.run(Unknown Source)
This is a bug in Jode. If you use the switch "--push=yes" the class should decompile without exception, although it can only produce some approximation of the original code.
The problem was originally caused by either a synchronized or a try/finally block that jode didn't understand (every compiler version produces it's own bytecode for these blocks, sigh). BTW, do you use jode-1.1.1?
Thanks for your very quick answer.
Yes I use jode_1.1.1.
Everything was decompiled now ... quite impressive, since JAD seems to decompile all files but half of the methods are missing.
I tried this approach, and tried using the CVS version (which didn't require the push option) but hoth of them created incompilable code...
$ javac Facturacion.java
Facturacion.java:148: not a statement
Facturacion.java:148: ';' expected
etc etc etc
Please, anybody could give me a clue? I am no a java programmer but I have to recover lost sources from a project.
My guess is that this is some bytecode which was obfuscated or optimized in some way. I can't say what exactly happens without seeing the context. There should be a POP instruction somewhere that matches with the PUSH.
thanks for your fast response.
I have crossposted to the mailing list, and there I included the .class and the original source code since this is one of the few I have the original code available.
Also, the PUSH seems to be unrecognized by the compiler...
I have crossposted to the mailing listm, and there I included the .class and the original source code since this is one of the few I have the original code available.
Log in to post a comment.