I've run across this exception using Soot:
Exception in thread "main" java.lang.RuntimeException:
Aborting: can't find classfile[Ljava.rmi.server.Operation;
at soot.Scene.getSootClass(Scene.java:300)
at soot.coffi.CFG.generateJimple(CFG.java:4434)
at soot.coffi.CFG.jimplify(CFG.java:1463)
at soot.coffi.CFG.jimplify(CFG.java:1126)
at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
The class that is being analysed was generated by jikes 1.18.
I don't see this with jikes 1.15 generated class files.
My guess is the following CONSTANT_Methodref entry in the constant pool
of the class file:
[21] class "[Ljava/rmi/server/Operation;"
method "clone"
descriptor "()Ljava/lang/Object;"
Jikes has put in a reference to an Object method as an array class
method instead of an Object method.
Would this cause such behavior in Soot? Is there an easy fix??
Thanks,
-Archie