[Soot-list] interface invoke expression for non-interface type

Tillmann tirunkel at informatik.uni-bremen.de
Thu Jan 19 07:23:21 EST 2012


Hi All,

in older entries in the mailing-list the following problem was solved by 
turning -allow-phantom-refs off.

in my case, the result - with or without -allow-phantom-refs - remains 
constant:

Exception in thread "main" java.lang.RuntimeException: Trying to create 
interface invoke expression for non-interface type: 
org.springframework.security.Authentication Use JVirtualInvokeExpr or 
JSpecialInvokeExpr instead!
     at 
soot.jimple.internal.JInterfaceInvokeExpr.<init>(JInterfaceInvokeExpr.java:46)
     at soot.jimple.Jimple.newInterfaceInvokeExpr(Jimple.java:474)
     at soot.coffi.CFG.generateJimple(CFG.java:4559)
     at soot.coffi.CFG.jimplify(CFG.java:1267)
...

in my case the invocation - indeed - is an interfaceinvoke!

org.springframework.security.Authentication [1] is invoked by the 
following class (part of icefaces): 
com.icesoft.faces.env.SpringAuthWrapper [2]

The analysed project is a productive system with all needed dependencies 
on soot's classpath (including icefaces).

Are the any further experiences how to avoid/solve this problem?

Thanks in advance.

Tillmann

[1] 
http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.security/spring-security-core/2.0.3/org/springframework/security/Authentication.java
[2] 
http://grepcode.com/file/repository.grepcode.com/java/ext/org.icefaces/icefaces/1.8.1/com/icesoft/faces/env/SpringAuthWrapper.java


More information about the Soot-list mailing list