Author: djencks
Date: Thu Jun 2 03:15:36 2011
New Revision: 1130394
URL: http://svn.apache.org/viewvc?rev=1130394&view=rev
Log:
OWB-579 ignore synthetic final methods when checking for proxyiability. Also
mention final method names
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java?rev=1130394&r1=1130393&r2=1130394&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
Thu Jun 2 03:15:36 2011
@@ -157,7 +157,7 @@ public final class ClassUtil
{
Asserts.nullCheckForModifier(modifier);
- return Modifier.isFinal(modifier);
+ return Modifier.isFinal(modifier) && ((modifier & 4096) == 0);
}
/**
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=1130394&r1=1130393&r2=1130394&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
Thu Jun 2 03:15:36 2011
@@ -1831,9 +1831,13 @@ public final class WebBeansUtil
{
violationMessage.addLine(beanClass.getName(), " is
a final class! CDI doesn't allow that.");
}
- if (ClassUtil.hasFinalMethod(beanClass))
+ Method[] methods =
SecurityUtil.doPrivilegedGetDeclaredMethods(beanClass);
+ for (Method m : methods)
{
- violationMessage.addLine(beanClass.getName(), "
has final methods! CDI doesn't allow that.");
+ if (ClassUtil.isFinal(m.getModifiers()))
+ {
+ violationMessage.addLine(beanClass.getName(),
" has final method "+ m + " CDI doesn't allow that.");
+ }
}
if (cons == null)
{