[Soot-list] Weird Compilation Errors When Dealing with ZooKeeper

Tianyin Xu tixu at cs.ucsd.edu
Thu Dec 4 02:54:54 EST 2014


Hi all,

I'm new to Soot. I've carefully read all the tutorials on the website, and
tried out some toy programs successfully.

I try to see how Soot works with real-world Java programs, so I picked
ZooKeeper and try to compile it use Soot. But I encountered the following
error:

Exception in thread "main" java.lang.RuntimeException: couldn't find class:
wildcards.& java.net.SocketAddress& java.lang.String (is your
soot-class-path set properly?)
at soot.SootResolver.bringToHierarchy(SootResolver.java:205)
at soot.SootResolver.bringToSignatures(SootResolver.java:239)
at soot.SootResolver.bringToBodies(SootResolver.java:280)
at soot.SootResolver.processResolveWorklist(SootResolver.java:150)
at soot.SootResolver.resolveClass(SootResolver.java:124)
at soot.Scene.loadClass(Scene.java:448)
at soot.Scene.loadClassAndSupport(Scene.java:433)
at soot.Scene.loadNecessaryClasses(Scene.java:1076)
at soot.Main.run(Main.java:167)
at soot.Main.main(Main.java:141)
at wjtp_analysis.Main.main(Main.java:89)

I'm pretty sure I setup the classpath successfully (that's how I did with
other programs). The commend is

#java  -cp <soot> soot.Main -cp <zookeeper> -pp -w -main-class
org.apache.zookeeper.ZooKeeperMain -process-dir,
/home/tianyin/app/zookeeper-3.4.6/src/java/main/

<soot> points to jasminclasses-2.5.0.jar, polyglotclasses-1.3.5.jar, and
sootclasses-2.5.0.jar
<zookeeper> points to the external libraries ZooKeeper relies on

It seems that Soot is looking for a class named "wildcards.&
java.net.SocketAddress& java.lang.String", but certainly there's no such
weird class. I searched hard and didn't find anything suspicious...

If I use "-allow-phantom-refs", then I can bypass the errors but then I got
the following errors which I suspect to be caused by this previous problem.

Warning: java.dyn.InvokeDynamic is a phantom class!
Warning: wildcards.& java.net.SocketAddress& java.lang.String is a phantom
class!
[Call Graph] For information on where the call graph may be incomplete, use
the verbose option to the cg phase.
Transforming org.apache.zookeeper.ZooDefs$OpCode...
Transforming org.apache.zookeeper.ZooDefs$Perms...
......
Writing to sootOutput/org/apache/zookeeper/ZooDefs$OpCode.class
Writing to sootOutput/org/apache/zookeeper/ZooDefs$Perms.class
...
Exception in thread "main" java.lang.RuntimeException:
<org.apache.zookeeper.server.persistence.FileTxnSnapLog: long
restore(org.apache.zookeeper.server.DataTree,java.util.Map,org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener)>:
incoherent stack height at block merge point Block 1:
[preds: 0 20 ] [succs: 2 ]
nop;
goto nop;
Block 20:
[preds: 18 ] [succs: 1 ]
nop;
goto nop;

computed blockHeight == 2 recorded blockHeight = 0
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1910)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.calculateStackHeight(JasminClass.java:1915)
at soot.baf.JasminClass.emitMethodBody(JasminClass.java:322)
at soot.AbstractJasminClass.emitMethod(AbstractJasminClass.java:697)
at soot.AbstractJasminClass.<init>(AbstractJasminClass.java:576)
at soot.baf.JasminClass.<init>(JasminClass.java:92)
at soot.PackManager.writeClass(PackManager.java:878)
at soot.PackManager.writeOutput(PackManager.java:475)
at soot.PackManager.writeOutput(PackManager.java:400)
at soot.Main.run(Main.java:199)
at soot.Main.main(Main.java:141)
at wjtp_analysis.Main.main(Main.java:89)

Thanks a lot!
Tianyin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20141203/57e023f2/attachment.html 


More information about the Soot-list mailing list