Author: rmannibucau
Date: Mon Dec 29 13:53:03 2014
New Revision: 1648346
URL: http://svn.apache.org/r1648346
Log:
support interface proxying correctly
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/InterceptorDecoratorProxyFactory.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/InterceptorDecoratorProxyFactory.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/InterceptorDecoratorProxyFactory.java?rev=1648346&r1=1648345&r2=1648346&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/InterceptorDecoratorProxyFactory.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/InterceptorDecoratorProxyFactory.java
Mon Dec 29 13:53:03 2014
@@ -353,7 +353,10 @@ public class InterceptorDecoratorProxyFa
}
final Type declaringClass =
Type.getType(delegatedMethod.getDeclaringClass());
- mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL,
declaringClass.getInternalName(), delegatedMethod.getName(), methodDescriptor,
false);
+ boolean isItf = delegatedMethod.getDeclaringClass().isInterface();
+ mv.visitMethodInsn(
+ isItf ? Opcodes.INVOKEINTERFACE : Opcodes.INVOKEVIRTUAL,
declaringClass.getInternalName(),
+ delegatedMethod.getName(), methodDescriptor, isItf);
generateReturn(mv, delegatedMethod);