<div dir="ltr">My tests suggest that when I add multiple entry points that have overlapping edges, that those edges are not added multiple times.  I just want to confirm that.<div><br></div><div>Ultimately I experiencing a bizarre problem where I create many files with many entry points.  Each of those files instantiates a particular object.  Also in that file is a list of all public methods that we want included in the call graph.</div><div><br></div><div>I then dump that into soot for Spark to generate the call graph.  However, there are edges that are missing.  I have found one instance where I have, in one of my files, several methods that are not even referenced in the graph.  I&#39;m not sure why they aren&#39;t there.</div><div><br></div><div>To give an example I have a few files:</div><div><br></div><div>fileone.java:</div><div>public class fileone {</div><div>public static void main(String[] args) {</div><div>    CustomObject co = new CustomObject();</div><div><br></div><div>    co.doone();</div><div>    co.dotwo();</div><div>    co.dothree();</div><div>}</div><div>}</div><div><br></div><div>filetwo.java:</div><div>public class filetwo {</div><div>public static void main(String[] args) {</div><div>    DiffObj do = new DiffObj();</div><div><br></div><div>    do.doit();</div><div>    do.do();</div><div>    do.stop();</div><div>}</div><div><br></div><div>Then for spark for each file, I add each class and their entry point:</div><div>//...</div><div>for(file f : folder) {</div><div>    sootClass = Scene.v().forceResolve(f.className, SootClass.BODIES);</div><div>    sootClass.setApplicationClass();</div><div>    entrypoints.add(sootCalss.getMethodByName(f.method));// always resolves to &quot;main&quot;</div><div>}</div><div>Scene.v().loadNecessaryClasses();</div><div>Scene.v().setEntryPoints(entryPoints);</div><div>PackManager.v().runPacks();</div><div><br></div><div>callGraph = Scene.v().getCallGraph();</div><div>//...</div><div><br></div><div>Obviously this part is shortened for brevity.  As of right now, do.doit() and do.do() are not present in the call graph.  I don&#39;t fully understand why this is the case.  Any help would be greatly appreciated.</div></div>