[Soot-list] Strange exception while running soot

Mihir Mehta mihir at cs.utexas.edu
Tue Apr 28 11:12:06 EDT 2015


Hi,

I'm having a problem which I've narrowed down to a minimal example 
called test01.java, reproduced below:

// import java.lang.CharSequence;

public class test01 {
     public static void main(String[] args) {
         test01 f = new test01();
         int a = 7;
         int b = 14;
         int x = (f.bar(21) + a) * b;
     }
     public int bar(int n) { return n + 42; }

}

Soot manages to process this file to Jimple, but when I make a single 
change by un-commenting the first line, importing the interface 
java.lang.CharSequence, soot crashes with an exception:

mihir at mihir-550P5C:/tmp$ java -cp 
/home/mihir/git/overload_checker/ex01/lib/soot.jar soot.Main -pp -cp . 
test01 -f JSoot started on Tue Apr 28 10:03:53 CDT 2015
Exception in thread "main" java.lang.Error: Error loading 
java.lang.CharSequence
     at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:128)
     at soot.JastAddJ.Program.getCompilationUnit(Program.java:858)
     at 
soot.JastAddJ.Program.getLibCompilationUnit_compute(Program.java:1531)
     at soot.JastAddJ.Program.getLibCompilationUnit(Program.java:1514)
     at soot.JastAddJ.Program.lookupLibType_compute(Program.java:1479)
     at soot.JastAddJ.Program.lookupLibType(Program.java:1447)
     at soot.JastAddJ.Program.lookupType_compute(Program.java:1426)
     at soot.JastAddJ.Program.lookupType(Program.java:1407)
     at soot.JastAddJ.Program.Define_TypeDecl_lookupType(Program.java:1995)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.Expr.lookupType(Expr.java:1186)
     at soot.JastAddJ.TypeAccess.decls_compute(TypeAccess.java:425)
     at soot.JastAddJ.TypeAccess.decls(TypeAccess.java:414)
     at 
soot.JastAddJ.TypeAccess.refined_TypeScopePropagation_TypeAccess_decl(TypeAccess.java:387)
     at soot.JastAddJ.TypeAccess.decl_compute(TypeAccess.java:460)
     at soot.JastAddJ.TypeAccess.decl(TypeAccess.java:452)
     at soot.JastAddJ.TypeAccess.type_compute(TypeAccess.java:590)
     at soot.JastAddJ.TypeAccess.type(TypeAccess.java:583)
     at 
soot.JastAddJ.CompilationUnit.refined_NameCheck_CompilationUnit_nameCheck(CompilationUnit.java:200)
     at soot.JastAddJ.CompilationUnit.nameCheck(CompilationUnit.java:611)
     at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1283)
     at soot.JastAddJ.CompilationUnit.errorCheck(CompilationUnit.java:178)
     at soot.JastAddInitialResolver.formAst(JastAddInitialResolver.java:58)
     at soot.JavaClassSource.resolve(JavaClassSource.java:54)
     at soot.SootResolver.bringToHierarchy(SootResolver.java:237)
     at soot.SootResolver.bringToSignatures(SootResolver.java:264)
     at soot.SootResolver.processResolveWorklist(SootResolver.java:168)
     at soot.SootResolver.resolveClass(SootResolver.java:129)
     at soot.Scene.loadClass(Scene.java:702)
     at soot.Scene.loadClassAndSupport(Scene.java:687)
     at soot.Scene.loadNecessaryClass(Scene.java:1338)
     at soot.Scene.loadNecessaryClasses(Scene.java:1349)
     at soot.Main.run(Main.java:213)
     at soot.Main.main(Main.java:152)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 20492
     at soot.JastAddJ.BytecodeParser.parseThisClass(BytecodeParser.java:437)
     at soot.JastAddJ.BytecodeParser.parseTypeDecl(BytecodeParser.java:413)
     at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:331)
     at soot.JastAddJ.BytecodeParser.read(BytecodeParser.java:27)
     at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:115)
     ... 36 more

I should note that I'm not interested in the interface 
java.lang.CharSequence myself - it just happens to be referenced 
implicitly by some other classes I'm analysing, which come from DaCapo.

Is there something I'm doing wrong?

Thanks,
Mihir.


More information about the Soot-list mailing list