[Soot-list] NullPointerException in retrieveActiveBody
Eric Bodden
eric.bodden at mail.mcgill.ca
Tue Jan 30 11:43:24 EST 2007
I would assume that this is a classloader problem. What's you soot
command line?
Eric
> -----Original Message-----
> From: soot-list-bounces at sable.mcgill.ca
> [mailto:soot-list-bounces at sable.mcgill.ca] On Behalf Of Nitin Goel
> Sent: Monday, January 29, 2007 12:40 PM
> To: soot-list at sable.mcgill.ca
> Subject: [Soot-list] NullPointerException in retrieveActiveBody
>
> Hi,
>
> I am new to Soot. When I am trying to generate jimple for my
> class Test123 using the method
> SootMethod.retrieveActiveBody(), I am getting the following exception
>
> java.lang.NullPointerException
> at soot.AnySubType.v(AnySubType.java:44)
> at
> soot.toolkits.exceptions.ThrowableSet$Manager.<init>(Throwable
> Set.java:239)
> at
> soot.Singletons.soot_toolkits_exceptions_ThrowableSet_Manager(
> Singletons.java:765)
> at
> soot.toolkits.exceptions.ThrowableSet$Manager.v(ThrowableSet.java:274)
> at
> soot.toolkits.exceptions.PedanticThrowAnalysis.mightThrow(Peda
> nticThrowAnalysis.java:68)
> at
> soot.toolkits.graph.ExceptionalUnitGraph.buildExceptionDests(E
> xceptionalUnitGraph.java:342)
> at
> soot.toolkits.graph.ExceptionalUnitGraph.initialize(Exceptiona
> lUnitGraph.java:262)
> at
> soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUni
> tGraph.java:148)
> at
> soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUni
> tGraph.java:180)
> at
> soot.toolkits.scalar.LocalSplitter.internalTransform(LocalSpli
> tter.java:78)
> at soot.BodyTransformer.transform(BodyTransformer.java:51)
> at soot.Transform.apply(Transform.java:104)
> at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:61)
> at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:93)
> at soot.Pack.apply(Pack.java:120)
> at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:115)
> at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:81)
> at soot.SootMethod.retrieveActiveBody(SootMethod.java:320)
> at MyTest.traverseMethods(MyTest.java:60)
> at MyTest.traverseClasses(MyTest.java:43)
> at MyTest.main(MyTest.java:32)
>
>
> Where MyTest is my custom class which calls Soot API.
>
> Test123.java:
>
> public class Test123 {
> public Test123() {
> }
>
> public static void main(String[] args) {
> try {
> System.out.println("test program");
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> I have tried to debug that using the Soot source code and
> find out that if I comment out the following lines
>
> Line: 239
> resolveClassErrorSet.add(AnySubType.v(Scene.v().getRefType("ja
> va.lang.ClassFormatError")));
>
> and
>
> Line: 263
> initializationErrorSet.add(AnySubType.v(Scene.v().getRefType("
> java.lang.Error")));
>
> from the Manager( Singletons.Global g ) method of
> soot.toolkits.exceptions.ThrowableSet class, it is working fine.
>
> If I also remove the try-catch block from Test123 class then
> also it is working fine.
>
> It is also working fine with old version of Soot 2.1, however
> with version 2.2.3, it is not working when I am using try-catch block.
>
> I am not really sure whether I am doing anything wrong or
> it's the problem with Soot. Could you please help me out to
> figure out the root cause and workaround for this?
>
> Thanks & Regards,
> Nitin Goel
>
> _________________________________________________________________
> Invite your Hotmail contacts to join your friends list with
> Windows Live Spaces
> http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?h
> ref=http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_
> url=/friends.aspx&mkt=en-us
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
More information about the Soot-list
mailing list