Author: rmannibucau
Date: Fri Oct 11 09:45:54 2013
New Revision: 1531244

URL: http://svn.apache.org/r1531244
Log:
OWB-904 interception proxy shouldn't proxy protected methods which are not in 
the same pacakge than the proxied class

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=1531244&r1=1531243&r2=1531244&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
 Fri Oct 11 09:45:54 2013
@@ -296,6 +296,14 @@ public class InterceptorDecoratorProxyFa
                 continue;
             }
 
+            final int modifiers = delegatedMethod.getModifiers();
+            if (Modifier.isProtected(modifiers)
+                && !delegatedMethod.getDeclaringClass().getPackage().getName()
+                .equals(classToProxy.getPackage().getName()))
+            {
+                continue;
+            }
+
             String methodDescriptor = 
Type.getMethodDescriptor(delegatedMethod);
 
             //X TODO handle generic exception types?
@@ -306,7 +314,7 @@ public class InterceptorDecoratorProxyFa
                 exceptionTypeNames[i] = 
Type.getType(exceptionTypes[i]).getInternalName();
             }
 
-            int targetModifiers = delegatedMethod.getModifiers() & 
(Modifier.PROTECTED | Modifier.PUBLIC);
+            int targetModifiers = modifiers & (Modifier.PROTECTED | 
Modifier.PUBLIC);
 
             MethodVisitor mv = cw.visitMethod(targetModifiers, 
delegatedMethod.getName(), methodDescriptor, null, exceptionTypeNames);
 


Reply via email to