[Soot-list] Strange exception while running soot

Steven Arzt Steven.Arzt at cased.de
Tue Apr 28 11:18:17 EDT 2015


Hi Mihir,

was the class you are trying to analyze compiled for Java 8? If so, does the
problem still occur if you recompile this class for Java 7?

Best regards,
  Steven

-----Ursprüngliche Nachricht-----
Von: soot-list-bounces at CS.McGill.CA [mailto:soot-list-bounces at CS.McGill.CA]
Im Auftrag von Mihir Mehta
Gesendet: Dienstag, 28. April 2015 17:12
An: soot-list at CS.McGill.CA
Betreff: [Soot-list] Strange exception while running soot

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(TypeAc
cess.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(Co
mpilationUnit.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.
_______________________________________________
Soot-list mailing list
Soot-list at CS.McGill.CA
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list



More information about the Soot-list mailing list