[Soot-list] ClassResolutionFailedException

Jochen Huck jochen.huck at student.kit.edu
Tue Mar 1 04:58:31 EST 2011


Hi,

currently I am running Paddle to analyze ANTLR. After the call graph is 
constructed I run a transformer that finds instances of InvokeExpr. When 
i call getMethod().getName() on such a instance I get:

Exception in thread "Thread-11" 
soot.SootMethodRefImpl$ClassResolutionFailedException: Class 
antlr.Lookahead doesn't have method setEpsilon([]) : void; failed to 
resolve in superclasses and interfacesLooking in antlr.Lookahead which 
has methods [<antlr.Lookahead: void <init>()>, <antlr.Lookahead: void 
<init>(antlr.collections.impl.BitSet)>, <antlr.Lookahead: void 
<init>(java.lang.String)>, <antlr.Lookahead: java.lang.Object clone()>, 
<antlr.Lookahead: void combineWith(antlr.Lookahead)>, <antlr.Lookahead: 
boolean containsEpsilon()>, <antlr.Lookahead: antlr.Lookahead 
intersection(antlr.Lookahead)>, <antlr.Lookahead: boolean nil()>, 
<antlr.Lookahead: antlr.Lookahead of(int)>, <antlr.Lookahead: void 
resetEpsilon()>, <antlr.Lookahead: void setEpsilon()>, <antlr.Lookahead: 
java.lang.String toString()>, <antlr.Lookahead: java.lang.String 
toString(java.lang.String,antlr.CharFormatter)>, <antlr.Lookahead: 
java.lang.String 
toString(java.lang.String,antlr.CharFormatter,antlr.Grammar)>, 
<antlr.Lookahead: java.lang.String 
toString(java.lang.String,antlr.collections.impl.Vector)>]
Looking in java.lang.Object which has methods [<java.lang.Object: void 
<init>()>, <java.lang.Object: void registerNatives()>, 
<java.lang.Object: java.lang.Class getClass()>, <java.lang.Object: int 
hashCode()>, <java.lang.Object: boolean equals(java.lang.Object)>, 
<java.lang.Object: java.lang.Object clone()>, <java.lang.Object: 
java.lang.String toString()>, <java.lang.Object: void notify()>, 
<java.lang.Object: void notifyAll()>, <java.lang.Object: void 
wait(long)>, <java.lang.Object: void wait(long,int)>, <java.lang.Object: 
void wait()>, <java.lang.Object: void finalize()>, <java.lang.Object: 
void <clinit>()>]
Looking in java.lang.Cloneable which has methods []

     at soot.SootMethodRefImpl.resolve(SootMethodRefImpl.java:177)
     at soot.SootMethodRefImpl.resolve(SootMethodRefImpl.java:106)
     at 
soot.jimple.internal.AbstractInvokeExpr.getMethod(AbstractInvokeExpr.java:54)



The class anltr.Lookahead has a method void getEpsilon() and is on the 
classpath.
What is wrong here?

Thanks, Jochen



More information about the Soot-list mailing list