Commit 9092a77d42575e127b57325d726e41140be3a6f3

Authored by Cleverson Sacramento
1 parent 60643ca5
Exists in master

Tentativa de correção de uma falha de NullPointerException que ocorre no

Apache OpenWebBeans
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/interceptor/ExceptionHandlerInterceptor.java
... ... @@ -69,11 +69,11 @@ public class ExceptionHandlerInterceptor implements Serializable {
69 69  
70 70 private final Map<Class<?>, Map<Class<?>, Method>> cache = new HashMap<Class<?>, Map<Class<?>, Method>>();
71 71  
72   - private final boolean handleException(final Exception cause, final InvocationContext ic) throws Exception {
  72 + private final boolean handleException(final Exception cause, final Object target) throws Exception {
73 73 getLogger().info(getBundle().getString("handling-exception", cause.getClass().getCanonicalName()));
74 74  
75 75 boolean handled = false;
76   - Class<?> type = getType(ic);
  76 + Class<?> type = getType(target);
77 77  
78 78 if (!isLoaded(type)) {
79 79 loadHandlers(type);
... ... @@ -81,22 +81,22 @@ public class ExceptionHandlerInterceptor implements Serializable {
81 81  
82 82 Method handler = getMethod(type, cause);
83 83 if (handler != null) {
84   - invoke(handler, ic.getTarget(), cause);
  84 + invoke(handler, target, cause);
85 85 handled = true;
86 86 }
87 87  
88 88 return handled;
89 89 }
90 90  
91   - private final Class<?> getType(final InvocationContext ic) {
92   - Class<?> type = ic.getTarget().getClass();
  91 + private final Class<?> getType(final Object target) {
  92 + Class<?> type = target.getClass();
93 93 CoreBootstrap bootstrap = Beans.getReference(CoreBootstrap.class);
94 94  
95 95 if (!bootstrap.isAnnotatedType(type)) {
96   - type = type.getSuperclass();
97 96 getLogger().debug(
98   - getBundle().getString("proxy-detected", ic.getTarget().getClass(),
99   - ic.getTarget().getClass().getSuperclass()));
  97 + getBundle().getString("proxy-detected", type,
  98 + type.getSuperclass()));
  99 + type = type.getSuperclass();
100 100 }
101 101  
102 102 return type;
... ... @@ -183,13 +183,15 @@ public class ExceptionHandlerInterceptor implements Serializable {
183 183  
184 184 @AroundInvoke
185 185 public Object manage(final InvocationContext ic) throws Exception {
  186 + Object target = null;
186 187 Object result = null;
187 188  
188 189 try {
  190 + target = ic.getTarget();
189 191 result = ic.proceed();
190 192  
191 193 } catch (Exception cause) {
192   - if (!handleException(cause, ic)) {
  194 + if (!handleException(cause, target)) {
193 195 throw cause;
194 196 }
195 197 }
... ...