<div dir="ltr">Eric,<div><br></div><div>Thanks for the quick reply. The method is:</div><div><br></div><div>&lt;sun.security.action.GetPropertyAction: java.lang.Object run()&gt;</div><div><br></div><div>The exception is thrown in SootMethod:266 asking for argument 0 that does not exist.&nbsp;</div><div><br></div><div>-- Octav</div><div><br></div><div>PS: I modified my -cp path to explicitly include the rt.jar and jce.jar from jdk7. Should I use it with jdk6?</div><div><br></div><div><br><br>On Friday, April 10, 2015 at 11:57:30 AM UTC-5, Bodden, Eric wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Hmm, this is odd.
<br>
<br>This looks like you are processing a call site for which the call site itself has actually an argument while the resolved callee method does not. Can you set a breakpoint or add a println to see which method call Soot processes when throwing the exception?
<br>
<br>Cheers,
<br>Eric
<br>
<br>&gt; On 10.04.2015, at 18:37, <a href="javascript:" target="_blank" gdf-obfuscated-mailto="mKT0LLno2ysJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">ochi...@gmail.com</a> wrote:
<br>&gt; 
<br>&gt; Hi,
<br>&gt; 
<br>&gt; I am trying to run the IFDSReachingDefinitions analysis on a trivial example. However, I am getting the exception included below. I suspect that this is an issue with how I configure soot. I have to apologize if the question is naive, I am just getting started with soot.
<br>&gt; 
<br>&gt; Thanks,
<br>&gt; — Octav
<br>&gt; 
<br>&gt; [Thread-1] ERROR heros.solver.IDESolver - Worker thread execution failed: Index: 0, Size: 0
<br>&gt; java.lang.<wbr>IndexOutOfBoundsException: Index: 0, Size: 0
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList.<wbr>rangeCheck(ArrayList.java:635)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList.get(<wbr>ArrayList.java:411)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Collections$<wbr>UnmodifiableList.get(<wbr>Collections.java:1211)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.SootMethod.<wbr>getParameterType(SootMethod.<wbr>java:266)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>exampleproblems.<wbr>IFDSReachingDefinitions$1$2.<wbr>computeTargets(<wbr>IFDSReachingDefinitions.java:<wbr>111)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>exampleproblems.<wbr>IFDSReachingDefinitions$1$2.<wbr>computeTargets(<wbr>IFDSReachingDefinitions.java:<wbr>1)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.ZeroedFlowFunctions$<wbr>ZeroedFlowFunction.<wbr>computeTargets(<wbr>ZeroedFlowFunctions.java:58)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>computeCallFlowFunction(<wbr>IDESolver.java:397)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>processCall(IDESolver.java:<wbr>330)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.access$<wbr>0(IDESolver.java:313)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver$<wbr>PathEdgeProcessingTask.run(<wbr>IDESolver.java:856)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.<wbr>ThreadPoolExecutor.runWorker(<wbr>ThreadPoolExecutor.java:1145)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.<wbr>ThreadPoolExecutor$Worker.run(<wbr>ThreadPoolExecutor.java:615)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.<wbr>java:744)
<br>&gt; Exception in thread "Thread-1" java.lang.InterruptedException
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.locks.<wbr>AbstractQueuedSynchronizer.<wbr>doAcquireSharedInterruptibly(<wbr>AbstractQueuedSynchronizer.<wbr>java:996)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.locks.<wbr>AbstractQueuedSynchronizer.<wbr>acquireSharedInterruptibly(<wbr>AbstractQueuedSynchronizer.<wbr>java:1303)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.CountLatch.<wbr>awaitZero(CountLatch.java:75)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.<wbr>CountingThreadPoolExecutor.<wbr>awaitCompletion(<wbr>CountingThreadPoolExecutor.<wbr>java:79)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>runExecutorAndAwaitCompletion(<wbr>IDESolver.java:258)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>awaitCompletionComputeValuesAn<wbr>dShutdown(IDESolver.java:233)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.solve(<wbr>IDESolver.java:207)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>JimpleIFDSSolver.solve(<wbr>JimpleIFDSSolver.java:54)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at ReachingDefinitions$1.<wbr>internalTransform(<wbr>ReachingDefinitions.java:40)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.SceneTransformer.<wbr>transform(SceneTransformer.<wbr>java:39)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Transform.apply(<wbr>Transform.java:90)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.ScenePack.internalApply(<wbr>ScenePack.java:40)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Pack.apply(Pack.java:116)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.PackManager.<wbr>runWholeProgramPacks(<wbr>PackManager.java:564)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.PackManager.<wbr>runPacksNormally(PackManager.<wbr>java:456)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.PackManager.runPacks(<wbr>PackManager.java:391)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Main.run(Main.java:244)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Main.main(Main.java:152)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at ReachingDefinitions.main(<wbr>ReachingDefinitions.java:46)
<br>&gt; java.lang.<wbr>IndexOutOfBoundsException: Index: 0, Size: 0
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList.<wbr>rangeCheck(ArrayList.java:635)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList.get(<wbr>ArrayList.java:411)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Collections$<wbr>UnmodifiableList.get(<wbr>Collections.java:1211)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.SootMethod.<wbr>getParameterType(SootMethod.<wbr>java:266)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>exampleproblems.<wbr>IFDSReachingDefinitions$1$2.<wbr>computeTargets(<wbr>IFDSReachingDefinitions.java:<wbr>111)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>exampleproblems.<wbr>IFDSReachingDefinitions$1$2.<wbr>computeTargets(<wbr>IFDSReachingDefinitions.java:<wbr>1)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.ZeroedFlowFunctions$<wbr>ZeroedFlowFunction.<wbr>computeTargets(<wbr>ZeroedFlowFunctions.java:58)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>computeCallFlowFunction(<wbr>IDESolver.java:397)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>processCall(IDESolver.java:<wbr>330)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.access$<wbr>0(IDESolver.java:313)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver$<wbr>PathEdgeProcessingTask.run(<wbr>IDESolver.java:856)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.<wbr>ThreadPoolExecutor.runWorker(<wbr>ThreadPoolExecutor.java:1145)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.<wbr>ThreadPoolExecutor$Worker.run(<wbr>ThreadPoolExecutor.java:615)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.<wbr>java:744)
<br>&gt; java.lang.RuntimeException: There were exceptions during IDE analysis. Exiting.
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>runExecutorAndAwaitCompletion(<wbr>IDESolver.java:264)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>awaitCompletionComputeValuesAn<wbr>dShutdown(IDESolver.java:233)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.solve(<wbr>IDESolver.java:207)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>JimpleIFDSSolver.solve(<wbr>JimpleIFDSSolver.java:54)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at ReachingDefinitions$1.<wbr>internalTransform(<wbr>ReachingDefinitions.java:40)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.SceneTransformer.<wbr>transform(SceneTransformer.<wbr>java:39)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Transform.apply(<wbr>Transform.java:90)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.ScenePack.internalApply(<wbr>ScenePack.java:40)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Pack.apply(Pack.java:116)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.PackManager.<wbr>runWholeProgramPacks(<wbr>PackManager.java:564)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.PackManager.<wbr>runPacksNormally(PackManager.<wbr>java:456)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.PackManager.runPacks(<wbr>PackManager.java:391)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Main.run(Main.java:244)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.Main.main(Main.java:152)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at ReachingDefinitions.main(<wbr>ReachingDefinitions.java:46)
<br>&gt; Caused by: java.lang.<wbr>IndexOutOfBoundsException: Index: 0, Size: 0
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList.<wbr>rangeCheck(ArrayList.java:635)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList.get(<wbr>ArrayList.java:411)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Collections$<wbr>UnmodifiableList.get(<wbr>Collections.java:1211)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.SootMethod.<wbr>getParameterType(SootMethod.<wbr>java:266)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>exampleproblems.<wbr>IFDSReachingDefinitions$1$2.<wbr>computeTargets(<wbr>IFDSReachingDefinitions.java:<wbr>111)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at soot.jimple.toolkits.ide.<wbr>exampleproblems.<wbr>IFDSReachingDefinitions$1$2.<wbr>computeTargets(<wbr>IFDSReachingDefinitions.java:<wbr>1)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.ZeroedFlowFunctions$<wbr>ZeroedFlowFunction.<wbr>computeTargets(<wbr>ZeroedFlowFunctions.java:58)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>computeCallFlowFunction(<wbr>IDESolver.java:397)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.<wbr>processCall(IDESolver.java:<wbr>330)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver.access$<wbr>0(IDESolver.java:313)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at heros.solver.IDESolver$<wbr>PathEdgeProcessingTask.run(<wbr>IDESolver.java:856)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.<wbr>ThreadPoolExecutor.runWorker(<wbr>ThreadPoolExecutor.java:1145)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.<wbr>ThreadPoolExecutor$Worker.run(<wbr>ThreadPoolExecutor.java:615)
<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.<wbr>java:744)
<br>&gt; 
<br>&gt; 
<br>&gt; ______________________________<wbr>_________________
<br>&gt; Soot-list mailing list
<br>&gt; <a href="javascript:" target="_blank" gdf-obfuscated-mailto="mKT0LLno2ysJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">Soot...@CS.McGill.CA</a>
<br>&gt; <a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fmailman.CS.McGill.CA%2Fmailman%2Flistinfo%2Fsoot-list\46sa\75D\46sntz\0751\46usg\75AFQjCNESpIFG08DX_QShQ4aH7soZrrlBBw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fmailman.CS.McGill.CA%2Fmailman%2Flistinfo%2Fsoot-list\46sa\75D\46sntz\0751\46usg\75AFQjCNESpIFG08DX_QShQ4aH7soZrrlBBw';return true;">https://mailman.CS.McGill.CA/<wbr>mailman/listinfo/soot-list</a>
<br>
<br>--
<br>Prof. Eric Bodden, Ph.D., <a href="http://sse.ec-spride.de/" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsse.ec-spride.de%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNGigQaO_uOHvandnthTpq57clh04g';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsse.ec-spride.de%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNGigQaO_uOHvandnthTpq57clh04g';return true;">http://sse.ec-spride.de/</a> <a href="http://bodden.de/" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fbodden.de%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNHm7ItjaIfrpX0RX7qk8gMYDErdeA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fbodden.de%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNHm7ItjaIfrpX0RX7qk8gMYDErdeA';return true;">http://bodden.de/</a>
<br>Head of Secure Software Engineering at Fraunhofer SIT, TU Darmstadt and EC SPRIDE
<br>Tel: +49 6151 16-75422 &nbsp; &nbsp;Fax: +49 6151 869-127
<br>Room B5.11, Fraunhofer SIT, Rheinstraße 75, 64295 Darmstadt
<br>
<br></blockquote></div></div>