[Soot-list] NullPointerException on FastHierarchy.isSubClass

Marc-Andre Laverdiere-Papineau marc-andre.laverdiere-papineau at polymtl.ca
Mon Jul 2 22:00:07 EDT 2012


Hello,

Interestingly, I put together a sample test, which didn't crash. After 
fiddling around with the classpath, the issue was no longer experienced. 
I am guessing that I was overriding some part of the CP that I shouldn't 
have or something...

On 07/02/2012 09:36 PM, Marc-Andre Laverdiere-Papineau wrote:
> Hello,
>
> I have a test case that reproduces the issues all the time, but it is
> not very small :$
>
> I can try synthetizing a tinier one and send over.
>
> Right now, what I can see is that the SootClass instance has a null
> superclass, even though it extends org.apache.jasper.runtime.HttpJspBase.
>
> Is there an option that would disable/enable the tracking of superclasses?
>
> On 07/02/2012 01:47 PM, Phil Pratt-Szeliga wrote:
>> Hello,
>>
>> Can you post a test case that we can run with a script and reproduce
>> the problem. With that I will see if it is a bug.
>>
>> Thanks,
>> Phil Pratt-Szeliga
>> Syracuse University
>>
>> On Mon, Jul 2, 2012 at 1:19 PM, Marc-Andre Laverdiere-Papineau
>> <marc-andre.laverdiere-papineau at polymtl.ca> wrote:
>>> I am running the latest code from git, and I am getting this:
>>>
>>> Exception in thread "main" java.lang.NullPointerException
>>>           at soot.FastHierarchy$Interval.isSubrange(FastHierarchy.java:83)
>>>           at soot.FastHierarchy.isSubclass(FastHierarchy.java:151)
>>>           at ca.polymtl.gigl.casi.darwini.SootMain.main(SootMain.java:175)
>>>
>>> I have loaded soot from the main, but with a lot of exclusions:
>>>
>>>                   ArrayList<String> sootOptions = new ArrayList<String>();
>>>                   sootOptions.add("-w");
>>>                   for (String ex: EXCLUSIONS){
>>>                           sootOptions.add("-x");
>>>                           sootOptions.add(ex);
>>>                   }
>>>
>>>                   sootOptions.add("-src-prec");
>>>                   sootOptions.add("java");
>>>                   sootOptions.add("-keep-line-number");
>>>                   sootOptions.add("-output-format");
>>>                   sootOptions.add("jimple");
>>>                   sootOptions.add("-allow-phantom-refs");
>>>                   sootOptions.add("-no-bodies-for-excluded");
>>>                   sootOptions.add("-time");
>>>                   for (String p : processDirs){
>>>                           sootOptions.add("-process-path");
>>>                           sootOptions.add(p);
>>>                   }
>>>                   sootOptions.add("-soot-classpath");
>>>                   sootOptions.add(classPath);
>>>                   sootOptions.add("-phase-option");
>>>                   sootOptions.add("cg");
>>>                   sootOptions.add("enabled:false");
>>>
>>>               //Load the classes
>>>
>>> Scene.v().addBasicClass("javax.servlet.http.HttpServlet",SootClass.SIGNATURES);
>>>               soot.Main.main(sootOptions.toArray(new String[sootOptions.size()]));
>>>
>>> Is this a bug, or are my options wrong?
>>>
>>> Regards,
>>>
>>> --
>>> Marc-André Laverdière-Papineau
>>> Étudiant au doctorat - PhD Student
>>>
>>> _______________________________________________
>>> Soot-list mailing list
>>> Soot-list at sable.mcgill.ca
>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>>
>>>
>>
>
>


-- 
Marc-André Laverdière-Papineau
Étudiant au doctorat - PhD Student




More information about the Soot-list mailing list