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/28 16:29:22 UTC
svn commit: r1590655 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
container/InjectionResolver.java util/GenericsUtil.java
Author: arne
Date: Mon Apr 28 14:29:22 2014
New Revision: 1590655
URL: http://svn.apache.org/r1590655
Log:
OWB-948: Fixed @New handling
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java?rev=1590655&r1=1590654&r2=1590655&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java Mon Apr 28 14:29:22 2014
@@ -802,9 +802,19 @@ public class InjectionResolver
}
}
- if (result.isEmpty() && annotations.length == 1 && New.class.equals(annotations[0].annotationType()) && Class.class.isInstance(type))
+ if (result.isEmpty() && annotations.length == 1 && New.class.equals(annotations[0].annotationType()))
{ // happen in TCKs, shouldn't be the case in real apps
- result.add(webBeansContext.getWebBeansUtil().createNewComponent(Class.class.cast(type)));
+ New newQualifier = (New)annotations[0];
+ Class<?> beanClass;
+ if (newQualifier.value() != New.class)
+ {
+ beanClass = newQualifier.value();
+ }
+ else
+ {
+ beanClass = GenericsUtil.getRawType(type);
+ }
+ result.add(webBeansContext.getWebBeansUtil().createNewComponent(beanClass));
}
return result;
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=1590655&r1=1590654&r2=1590655&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 Mon Apr 28 14:29:22 2014
@@ -728,7 +728,11 @@ public final class GenericsUtil
else // if (declaringClass.isAssignableFrom(actualClass))
{
Type genericSuperclass = getGenericSuperclass(actualClass, declaringClass);
- if (genericSuperclass instanceof Class)
+ if (genericSuperclass == null)
+ {
+ return variable;
+ }
+ else if (genericSuperclass instanceof Class)
{
// special handling for type erasure
Class<?> superclass = (Class<?>)genericSuperclass;