I will post that JIRA request as soon as I get some time to write a test case. In the meantime, I've found a slightly better solution to the problem than
Code:
methodInvocation.getMethod().invoke(newTarget, methodInvocation.getArguments());
is
Code:
methodInvocation.getMethod().invoke(proxy, methodInvocation.getArguments());
In the first case, interceptors in the chain after the swapping interceptor will not be executed. In the second case, interceptors in the chain before the swapping interceptor(including the swapping intercetor) will be executed twice, but the interceptors after the swapping interceptor will be executed.