You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2012/11/16 12:10:02 UTC

svn commit: r1410305 - in /openwebbeans/branches/owb_1.1.x: ./ webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/ webbeans-impl/src/main/java/org/apache/webbeans/config/ webbeans-impl/src/main/java/org/apache/webbeans/decorator/ webbeans-i...

Author: rmannibucau
Date: Fri Nov 16 11:10:00 2012
New Revision: 1410305

URL: http://svn.apache.org/viewvc?rev=1410305&view=rev
Log:
OWB-719 OWB-720 OWB-718 multiple delegate calls + named default values + generics in injections merges

Added:
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/MultipleCallDecorator.java
      - copied unchanged from r1407261, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/MultipleCallDecorator.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.java
      - copied unchanged from r1407261, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/
      - copied from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/AbstractNamedBean.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/AbstractNamedBean.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/DefaultNamedBean.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/DefaultNamedBean.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedBean.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedBean.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedInjectionPoints.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedInjectionPoints.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedInterface.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedInterface.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedTests.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/named/NamedTests.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/producer/ConsumerBean.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/producer/ConsumerBean.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/producer/NamedProducerTest.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/producer/NamedProducerTest.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/producer/ProducerBean.java
      - copied unchanged from r1408835, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/producer/ProducerBean.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.xml
      - copied unchanged from r1407261, openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.xml
Modified:
    openwebbeans/branches/owb_1.1.x/   (props changed)
    openwebbeans/branches/owb_1.1.x/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java   (props changed)
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java
    openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java

Propchange: openwebbeans/branches/owb_1.1.x/
------------------------------------------------------------------------------
    svn:mergeinfo = /openwebbeans/trunk:1407086-1407263,1408825-1408835

Modified: openwebbeans/branches/owb_1.1.x/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java?rev=1410305&r1=1410304&r2=1410305&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java Fri Nov 16 11:10:00 2012
@@ -90,8 +90,8 @@ public final class EjbUtility
         ejbBeanCreator.defineStereoTypes();
         ejbBeanCreator.defineApiType();
         ejbBeanCreator.defineScopeType("Session Bean implementation class : " + clazz.getName() + " stereotypes must declare same @ScopeType annotations", false);
-        ejbBeanCreator.defineQualifier();
         ejbBeanCreator.defineName(WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));            
+        ejbBeanCreator.defineQualifier();
         Set<ProducerMethodBean<?>> producerMethodBeans = ejbBeanCreator.defineProducerMethods();        
         checkProducerMethods(producerMethodBeans, ejbBean);
         Set<ProducerFieldBean<?>> producerFieldBeans = ejbBeanCreator.defineProducerFields();           

Modified: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java?rev=1410305&r1=1410304&r2=1410305&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java Fri Nov 16 11:10:00 2012
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.config;
 
+import static org.apache.webbeans.util.InjectionExceptionUtils.throwUnsatisfiedResolutionException;
+
 import java.io.Serializable;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
@@ -36,10 +38,10 @@ import java.util.Set;
 import javax.enterprise.context.Dependent;
 import javax.enterprise.context.NormalScope;
 import javax.enterprise.event.Observes;
-import javax.enterprise.inject.Typed;
 import javax.enterprise.inject.Disposes;
 import javax.enterprise.inject.Produces;
 import javax.enterprise.inject.Specializes;
+import javax.enterprise.inject.Typed;
 import javax.enterprise.inject.spi.AnnotatedMethod;
 import javax.enterprise.inject.spi.AnnotatedParameter;
 import javax.enterprise.inject.spi.AnnotatedType;
@@ -55,13 +57,14 @@ import org.apache.webbeans.annotation.An
 import org.apache.webbeans.annotation.AnyLiteral;
 import org.apache.webbeans.annotation.DefaultLiteral;
 import org.apache.webbeans.annotation.DependentScopeLiteral;
-import org.apache.webbeans.component.AbstractOwbBean;
+import org.apache.webbeans.annotation.NamedLiteral;
 import org.apache.webbeans.component.AbstractInjectionTargetBean;
+import org.apache.webbeans.component.AbstractOwbBean;
 import org.apache.webbeans.component.AbstractProducerBean;
 import org.apache.webbeans.component.EnterpriseBeanMarker;
+import org.apache.webbeans.component.InjectionTargetBean;
 import org.apache.webbeans.component.ManagedBean;
 import org.apache.webbeans.component.OwbBean;
-import org.apache.webbeans.component.InjectionTargetBean;
 import org.apache.webbeans.component.ProducerFieldBean;
 import org.apache.webbeans.component.ProducerMethodBean;
 import org.apache.webbeans.component.ResourceBean;
@@ -79,7 +82,6 @@ import org.apache.webbeans.util.Annotati
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
 import org.apache.webbeans.util.WebBeansUtil;
-import static org.apache.webbeans.util.InjectionExceptionUtils.throwUnsatisfiedResolutionException;
 
 /**
  * Defines the web beans components common properties.
@@ -255,7 +257,14 @@ public final class DefinitionUtil
                     }
                 }
 
-                component.addQualifier(annotation);
+                if (annotation.annotationType().equals(Named.class) && component.getName() != null)
+                {
+                    component.addQualifier(new NamedLiteral(component.getName()));
+                }
+                else
+                {
+                    component.addQualifier(annotation);
+                }
             }
         }
         
@@ -762,8 +771,8 @@ public final class DefinitionUtil
                                                               + " must declare default @Scope annotation", false);
         webBeansContext.getWebBeansUtil().checkUnproxiableApiType(component, component.getScope());
         WebBeansUtil.checkProducerGenericType(component,method);
-        defineQualifiers(component, methodAnns);
         defineName(component, methodAnns, WebBeansUtil.getProducerDefaultName(method.getName()));
+        defineQualifiers(component, methodAnns);
 
         return component;
     }
@@ -1360,8 +1369,8 @@ public final class DefinitionUtil
         defineScopeType(bean, anns, "Bean producer method : " + method.getJavaMember().getName() + " in class "
                                                    + parent.getReturnType().getName() + " must declare default @Scope annotation", false);
         WebBeansUtil.checkProducerGenericType(bean,method.getJavaMember());        
-        defineQualifiers(bean, anns);
         defineName(bean, anns, WebBeansUtil.getProducerDefaultName(method.getJavaMember().getName()));
+        defineQualifiers(bean, anns);
 
         return bean;
     }

Modified: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java?rev=1410305&r1=1410304&r2=1410305&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java Fri Nov 16 11:10:00 2012
@@ -149,8 +149,8 @@ public final class ManagedBeanConfigurat
         component.setFullInit(true);
 
         WebBeansUtil.checkGenericType(component);
-        definitionUtil.defineQualifiers(component, clazzAnns);
         definitionUtil.defineName(component, clazzAnns, WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
+        definitionUtil.defineQualifiers(component, clazzAnns);
 
         Constructor<T> constructor = webBeansContext.getWebBeansUtil().defineConstructor(clazz);
         component.setConstructor(constructor);

Modified: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java?rev=1410305&r1=1410304&r2=1410305&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java Fri Nov 16 11:10:00 2012
@@ -18,11 +18,21 @@
  */
 package org.apache.webbeans.decorator;
 
-import java.io.Serializable;
+import org.apache.webbeans.component.EnterpriseBeanMarker;
+import org.apache.webbeans.component.OwbBean;
+import org.apache.webbeans.config.OWBLogConst;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.exception.WebBeansException;
+import org.apache.webbeans.logger.WebBeansLoggerFacade;
+import org.apache.webbeans.proxy.MethodHandler;
+import org.apache.webbeans.util.WebBeansUtil;
+
+import javax.interceptor.InvocationContext;
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.io.Serializable;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -31,25 +41,13 @@ import java.util.concurrent.atomic.Atomi
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.interceptor.InvocationContext;
-
-import org.apache.webbeans.component.EnterpriseBeanMarker;
-import org.apache.webbeans.component.OwbBean;
-import org.apache.webbeans.config.OWBLogConst;
-import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.exception.WebBeansException;
-import org.apache.webbeans.logger.WebBeansLoggerFacade;
-import org.apache.webbeans.util.WebBeansUtil;
-
-import org.apache.webbeans.proxy.MethodHandler;
-
 public class DelegateHandler implements InvocationHandler, MethodHandler, Serializable, Externalizable
 {
     private static final Logger logger = WebBeansLoggerFacade.getLogger(DelegateHandler.class);
     private static final long serialVersionUID = -3063755008944970684L;
 
     private transient List<Object> decorators;
-    private transient ThreadLocal<AtomicInteger> position = new ThreadLocal<AtomicInteger>()
+    public static transient ThreadLocal<AtomicInteger> position = new ThreadLocal<AtomicInteger>()
     {
         @Override
         protected AtomicInteger initialValue()
@@ -94,11 +92,14 @@ public class DelegateHandler implements 
             actualInstance = instance;
         }
 
-        while (position.get().intValue() < decorators.size())
+        int hit = 0;
+        int decoratorsSize = decorators.size();
+        while (position.get().intValue() < decoratorsSize)
         {
+            hit++;
 
+            int currentPosition = position.get().intValue();
             Object decorator = decorators.get(position.get().getAndIncrement());
-
             try
             {
                 Method decMethod = decorator.getClass().getMethod(method.getName(), method.getParameterTypes());
@@ -111,9 +112,17 @@ public class DelegateHandler implements 
                         bean.getWebBeansContext().getSecurityService().doPrivilegedSetAccessible(decMethod, true);
                     }
 
-                    Object returnValue = decMethod.invoke(decorator, arguments);
-                    position.remove();
-                    return returnValue;
+                    try
+                    {
+                        return decMethod.invoke(decorator, arguments);
+                    }
+                    finally
+                    {
+                        if (currentPosition == 0) // if we go back on the first decorator no more need of this thread local
+                        {
+                            position.remove();
+                        }
+                    }
                 }
 
             }
@@ -159,7 +168,10 @@ public class DelegateHandler implements 
 
         }
 
-        position.remove();
+        if (hit == decoratorsSize) // if we hit all decorators but noone was called (see while loop) then clean here
+        {
+            position.remove();
+        }
 
         if (!method.isAccessible())
         {
@@ -193,7 +205,7 @@ public class DelegateHandler implements 
                 }
             }
         }
-        
+
         return result;
 
     }
@@ -258,5 +270,5 @@ public class DelegateHandler implements 
         }
         bean = (OwbBean<?>) WebBeansContext.currentInstance().getBeanManagerImpl().getPassivationCapableBean(id);
         decorators = (List<Object>) in.readObject();
-    }    
+    }
 }

Propchange: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
------------------------------------------------------------------------------
  Merged /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java:r1407086-1407263,1408825-1408835

Modified: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java?rev=1410305&r1=1410304&r2=1410305&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Fri Nov 16 11:10:00 2012
@@ -18,6 +18,14 @@
  */
 package org.apache.webbeans.util;
 
+import org.apache.webbeans.config.BeanTypeSetResolver;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.exception.WebBeansException;
+import org.apache.webbeans.logger.WebBeansLoggerFacade;
+
+import javax.enterprise.event.Event;
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.inject.Provider;
 import java.lang.reflect.Field;
 import java.lang.reflect.GenericArrayType;
 import java.lang.reflect.Method;
@@ -37,15 +45,6 @@ import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.enterprise.event.Event;
-import javax.enterprise.inject.spi.InjectionPoint;
-import javax.inject.Provider;
-
-import org.apache.webbeans.config.BeanTypeSetResolver;
-import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.exception.WebBeansException;
-import org.apache.webbeans.logger.WebBeansLoggerFacade;
-
 /**
  * Utility classes with respect to the class operations.
  *
@@ -603,19 +602,39 @@ public final class ClassUtil
         //Bean type is class and required type is parametrized
         else if(beanType instanceof Class && requiredType instanceof ParameterizedType)
         {
-            Class<?> clazzBeanType = (Class<?>)beanType;
-            ParameterizedType ptReq = (ParameterizedType)requiredType;
-            Class<?> clazzReqType = (Class<?>)ptReq.getRawType();
-            
+            final Class<?> clazzBeanType = (Class<?>)beanType;
+            final ParameterizedType ptReq = (ParameterizedType)requiredType;
+            final Class<?> clazzReqType = (Class<?>)ptReq.getRawType();
+            final Type genericSuperClass = clazzBeanType.getGenericSuperclass();
+
             if(Provider.class.isAssignableFrom(clazzReqType) ||
                     Event.class.isAssignableFrom(clazzReqType))
             {
                 if(isClassAssignable(clazzReqType, clazzBeanType))
                 {
                     return true;
-                }    
+                }
             }
-                        
+            else if (genericSuperClass instanceof ParameterizedType)
+            {
+                final Type[] params = ((ParameterizedType) genericSuperClass).getActualTypeArguments();
+                final Type[] requiredParams = ((ParameterizedType) requiredType).getActualTypeArguments();
+                if (params.length != requiredParams.length)
+                {
+                    return false;
+                }
+
+                for (int i = 0; i < params.length; i++)
+                {
+                    if (!isAssignable(params[i], requiredParams[i]))
+                    {
+                        return false;
+                    }
+                }
+
+                return isClassAssignable(clazzReqType, clazzBeanType);
+            }
+
             return false;
         }
         else

Modified: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java?rev=1410305&r1=1410304&r2=1410305&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java Fri Nov 16 11:10:00 2012
@@ -524,10 +524,10 @@ public final class WebBeansAnnotatedType
                 webBeansContext.getWebBeansUtil().checkUnproxiableApiType(producerMethodBean,
                                                                                          producerMethodBean.getScope());
                 WebBeansUtil.checkProducerGenericType(producerMethodBean,annotatedMethod.getJavaMember());
-                definitionUtil.defineQualifiers(producerMethodBean, AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
                 definitionUtil.defineName(producerMethodBean,
                                           AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()),
                                                                                WebBeansUtil.getProducerDefaultName(annotatedMethod.getJavaMember().getName()));
+                definitionUtil.defineQualifiers(producerMethodBean, AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
                 
                 addMethodInjectionPointMetaData(producerMethodBean, annotatedMethod);
                 producerBeans.add(producerMethodBean);

Modified: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=1410305&r1=1410304&r2=1410305&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Fri Nov 16 11:10:00 2012
@@ -2620,8 +2620,8 @@ public final class WebBeansUtil
         setInjectionTargetBeanEnableFlag(managedBean);
 
         managedBeanCreator.checkCreateConditions();
-        managedBeanCreator.defineQualifier();
         managedBeanCreator.defineName(WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
+        managedBeanCreator.defineQualifier();
 
         if (managedBean.isFullInit())
         {
@@ -2771,8 +2771,8 @@ public final class WebBeansUtil
         //Check for Enabled via Alternative
         setInjectionTargetBeanEnableFlag(managedBean);
         managedBeanCreator.checkCreateConditions();
-        managedBeanCreator.defineQualifier();
         managedBeanCreator.defineName(WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
+        managedBeanCreator.defineQualifier();
         managedBeanCreator.defineConstructor();
         managedBeanCreator.defineProducerMethods();
         managedBeanCreator.defineProducerFields();
@@ -2933,8 +2933,8 @@ public final class WebBeansUtil
         //Check for Enabled via Alternative
         setInjectionTargetBeanEnableFlag(managedBean);
         managedBeanCreator.checkCreateConditions();
-        managedBeanCreator.defineQualifier();
         managedBeanCreator.defineName(getManagedBeanDefaultName(clazz.getSimpleName()));
+        managedBeanCreator.defineQualifier();
         managedBeanCreator.defineConstructor();
         managedBeanCreator.defineProducerMethods();
         managedBeanCreator.defineProducerFields();