diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/KawaCallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/KawaCallGraphTest.java index 4033f5d76..fab7f8004 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/KawaCallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/KawaCallGraphTest.java @@ -58,6 +58,9 @@ public class KawaCallGraphTest extends DynamicCallGraphTestBase { Set append$v = getNodes(CG, "Lkawa/lang/Quote", "append$V", "([Ljava/lang/Object;)Ljava/lang/Object;"); assert ! append$v.isEmpty(); + + Set clinit = getNodes(CG, "Lkawa/lib/kawa/base", "", "()V"); + assert ! clinit.isEmpty(); } @Test @@ -91,7 +94,9 @@ public class KawaCallGraphTest extends DynamicCallGraphTestBase { MethodHandles.analyzeMethodHandles(options, builder); - return builder.makeCallGraph(options, null); + CallGraph cg = builder.makeCallGraph(options, null); + + return cg; } } diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java index 9ebaa5549..d56209b78 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java @@ -131,7 +131,8 @@ class ClassFactoryContextSelector implements ContextSelector { @Override public IntSet getRelevantParameters(CGNode caller, CallSiteReference site) { - if (isClassFactory(site.getDeclaredTarget())) { + IMethod resolved = caller.getMethod().getClassHierarchy().resolveMethod(site.getDeclaredTarget()); + if (isClassFactory(resolved != null? resolved.getReference(): site.getDeclaredTarget())) { SSAAbstractInvokeInstruction[] invokeInstructions = caller.getIR().getCalls(site); if (invokeInstructions.length >= 1) { if (invokeInstructions[0].isStatic()) {