The delegating invoker fails for indirect recursive calls as they might easily occur in a CoR pattern.
Test case:
public static interface Faculty {
int calc(int i, Faculty fac);
};
public void testShouldSupportIndirectRecursion() {
Faculty fac = new Faculty() {
public int calc(int i, Faculty fac) {
return i == 1 ? 1 : i * fac.calc(i-1, fac);
}
};
Faculty proxy = (Faculty)Delegating.object(Faculty.class, fac, getFactory());
assertEquals(120, fac.calc(5, fac));
assertEquals(120, proxy.calc(5, proxy));
}
Issue is related to PTOYS-5