You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ar...@apache.org on 2014/04/24 17:07:05 UTC
svn commit: r1589764 -
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java
Author: arne
Date: Thu Apr 24 15:07:05 2014
New Revision: 1589764
URL: http://svn.apache.org/r1589764
Log:
OWB-946: Fixed Wildcard handling
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java?rev=1589764&r1=1589763&r2=1589764&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java Thu Apr 24 15:07:05 2014
@@ -326,14 +326,34 @@ public final class GenericsUtil
{
for (Type bounds: injectionPointType.getLowerBounds())
{
- if (!isAssignableFrom(isDelegate, beanType, bounds))
+ Set<Type> beanTypeClosure = getTypeClosure(beanType);
+ boolean isAssignable = false;
+ for (Type beanSupertype: beanTypeClosure)
{
+ if (isAssignableFrom(isDelegate, beanSupertype, bounds))
+ {
+ isAssignable = true;
+ break;
+ }
+ }
+ if (!isAssignable)
+ {
return false;
}
}
for (Type bounds: injectionPointType.getUpperBounds())
{
- if (!isAssignableFrom(isDelegate, bounds, beanType))
+ Set<Type> beanTypeClosure = getTypeClosure(beanType);
+ boolean isAssignable = false;
+ for (Type beanSupertype: beanTypeClosure)
+ {
+ if (isAssignableFrom(isDelegate, bounds, beanSupertype))
+ {
+ isAssignable = true;
+ break;
+ }
+ }
+ if (!isAssignable)
{
return false;
}