Commit ee9ed7ecde93cbd47f42653afe67684825ab8109

Authored by Ednara Oliveira
1 parent befcc946
Exists in master

Correção do erro no getReference() quando o bean é do tipo Producer

Method
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java
... ... @@ -74,12 +74,11 @@ public final class Beans {
74 74 return manager;
75 75 }
76 76  
77   - @SuppressWarnings("unchecked")
78 77 public static <T> T getReference(final Class<T> beanClass, Annotation... qualifiers) {
79 78 T instance;
80 79  
81 80 try {
82   - instance = (T) getReference(manager.getBeans(beanClass, qualifiers));
  81 + instance = (T) getReference(manager.getBeans(beanClass, qualifiers), beanClass);
83 82  
84 83 } catch (NoSuchElementException cause) {
85 84 StringBuffer buffer = new StringBuffer();
... ... @@ -97,12 +96,11 @@ public final class Beans {
97 96 return instance;
98 97 }
99 98  
100   - @SuppressWarnings("unchecked")
101 99 public static <T> T getReference(final Class<T> beanClass) {
102 100 T instance;
103 101  
104 102 try {
105   - instance = (T) getReference(manager.getBeans(beanClass));
  103 + instance = (T) getReference(manager.getBeans(beanClass), beanClass);
106 104  
107 105 } catch (NoSuchElementException cause) {
108 106 String message = getBundle().getString("bean-not-found", beanClass.getCanonicalName());
... ... @@ -128,12 +126,17 @@ public final class Beans {
128 126 }
129 127  
130 128 @SuppressWarnings("unchecked")
131   - private static <T> T getReference(Set<Bean<?>> beans) {
  129 + private static <T> T getReference(Set<Bean<?>> beans, Class<T> beanClass) {
132 130 Bean<?> bean = beans.iterator().next();
133   - return (T) manager.getReference(bean, bean.getBeanClass(), manager.createCreationalContext(bean));
  131 + return (T) manager.getReference(bean, beanClass == null ? bean.getBeanClass() : beanClass,
  132 + manager.createCreationalContext(bean));
  133 + }
  134 +
  135 + private static <T> T getReference(Set<Bean<?>> beans) {
  136 + return getReference(beans, null);
134 137 }
135 138  
136 139 private static ResourceBundle getBundle() {
137 140 return ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault());
138 141 }
139 142 -}
  143 +}
140 144 \ No newline at end of file
... ...