[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Soot NPE



Hi, John.

> though, if we had the class file that triggers it.

 From the Java Mail API.

>     java -Xmx400m soot.Main --app -W -cp \
>     $CLASSPATH:/usr/local/jdk/jre/lib/rt.jar:. APEnterprise \
>     | egrep 'Applying phase jb|Constructing JimpleBody'

I added a --verbose in there.  ;-)

> exception gives us the class name being analyzed, while the
> last match on 'Constructing JimpleBody' will definitely provide
> the name of the troublesome method.  

Here's the (rather trimmed) output:

[run] Constructing JimpleBody from coffi...
Applying phase jb.ls to <javax.mail.EventQueue: void run()>.
Applying phase jb.a to <javax.mail.EventQueue: void run()>.
Applying phase jb.ule to <javax.mail.EventQueue: void run()>.
Applying phase jb.tr to <javax.mail.EventQueue: void run()>.
Applying phase jb.lns to <javax.mail.EventQueue: void run()>.
Applying phase jb.cp to <javax.mail.EventQueue: void run()>.
Applying phase jb.dae to <javax.mail.EventQueue: void run()>.
Applying phase jb.cp-ule to <javax.mail.EventQueue: void run()>.
Applying phase jb.ne to <javax.mail.EventQueue: void run()>.
Applying phase jb.uce to <javax.mail.EventQueue: void run()>.
[run] Constructing JimpleBody from coffi...
Exception in thread "main" java.lang.NullPointerException
         at java.util.Hashtable.get(Hashtable.java:315)
         at soot.coffi.CFG.adjustExceptionTable(CFG.java:953)
         at soot.coffi.CFG.eliminateJsrRets(CFG.java:461)
         at soot.coffi.CFG.<init>(CFG.java:89)
         at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:87)
         at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
         at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
         at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:191)
         at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:82)
         at 
soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:94)
         at 
soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(CHATransformer.java:43)
         at soot.SceneTransformer.transform(SceneTransformer.java:39)
         at soot.Transform.apply(Transform.java:79)
         at soot.RadioScenePack.internalApply(RadioScenePack.java:60)
         at 
soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:36)
         at soot.Pack.apply(Pack.java:107)
         at soot.PackManager.runWholeProgramPacks(PackManager.java:292)
         at soot.PackManager.runPacks(PackManager.java:275)
         at soot.Main.run(Main.java:180)
         at soot.Main.main(Main.java:154)

I'll keep the directory around for a while in case you need some more 
debug information.

Hope this helps.

Sincerely,
Dave Jarvis
-- 
Invoq Systems Inc.
t. 250.380.0304
e. djarvis@invoqsystems.com
w. http://www.invoqsystems.com