Commit 32f550d14567c203e8f2ca25d04ac7e7f68849ec
1 parent
93fd874c
Exists in
master
Organização do código
Showing
2 changed files
with
11 additions
and
29 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/exception/ExceptionHandlerInterceptor.java
... | ... | @@ -93,9 +93,7 @@ public class ExceptionHandlerInterceptor implements Serializable { |
93 | 93 | CoreBootstrap bootstrap = Beans.getReference(CoreBootstrap.class); |
94 | 94 | |
95 | 95 | if (!bootstrap.isAnnotatedType(type)) { |
96 | - getLogger().debug( | |
97 | - getBundle().getString("proxy-detected", type, | |
98 | - type.getSuperclass())); | |
96 | + getLogger().debug(getBundle().getString("proxy-detected", type, type.getSuperclass())); | |
99 | 97 | type = type.getSuperclass(); |
100 | 98 | } |
101 | 99 | |
... | ... | @@ -103,8 +101,8 @@ public class ExceptionHandlerInterceptor implements Serializable { |
103 | 101 | } |
104 | 102 | |
105 | 103 | /** |
106 | - * If there is an handler in the current class or superClass for the expected exception, then this method will be returned; Else | |
107 | - * returns null; | |
104 | + * If there is an handler in the current class or superClass for the expected exception, then this method will be | |
105 | + * returned; Else returns null; | |
108 | 106 | * |
109 | 107 | * @param type |
110 | 108 | * @param causeClass |
... | ... | @@ -112,17 +110,15 @@ public class ExceptionHandlerInterceptor implements Serializable { |
112 | 110 | */ |
113 | 111 | private final Method getMethod(final Class<?> type, final Class<?> causeClass) { |
114 | 112 | Method handler = null; |
113 | + Map<Class<?>, Method> map = cache.get(type); | |
115 | 114 | |
116 | - if (cache.containsKey(type) ){ | |
117 | - Map<Class<?>, Method> map = cache.get(type); | |
118 | - if(Throwable.class.isAssignableFrom(causeClass)){ | |
119 | - if(map.containsKey(causeClass)){ | |
120 | - handler = map.get(causeClass); | |
121 | - }else{ | |
122 | - handler = getMethod(type, causeClass.getSuperclass()); | |
123 | - } | |
124 | - } | |
125 | - } | |
115 | + if (map != null && Throwable.class.isAssignableFrom(causeClass)) { | |
116 | + if (map.containsKey(causeClass)) { | |
117 | + handler = map.get(causeClass); | |
118 | + } else { | |
119 | + handler = getMethod(type, causeClass.getSuperclass()); | |
120 | + } | |
121 | + } | |
126 | 122 | |
127 | 123 | return handler; |
128 | 124 | } | ... | ... |
impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/interceptor/ExceptionHandlerInterceptorTest.java
... | ... | @@ -210,19 +210,6 @@ public class ExceptionHandlerInterceptorTest { |
210 | 210 | } |
211 | 211 | |
212 | 212 | @Test |
213 | - public void manageWithClassThatContainsParentExceptionHandleMethod() throws Exception { | |
214 | - ClassWithMethodsAnnotatedWithExceptionHandler classWithException = new ClassWithMethodsAnnotatedWithExceptionHandler(); | |
215 | - expect(this.context.getTarget()).andReturn(classWithException).anyTimes(); | |
216 | - expect(this.context.proceed()).andThrow(new DemoiselleException("")); | |
217 | - expect(this.coreBootstrap.isAnnotatedType(ClassWithMethodsAnnotatedWithExceptionHandler.class)).andReturn(true); | |
218 | - replayAll(this.context, this.coreBootstrap, Beans.class); | |
219 | - | |
220 | - assertNull(this.interceptor.manage(this.context)); | |
221 | - assertEquals(1, classWithException.times); | |
222 | - verifyAll(); | |
223 | - } | |
224 | - | |
225 | - @Test | |
226 | 213 | public void manageWithClassThatContainsHandleMethodWithDiferentException() throws Exception { |
227 | 214 | ClassWithMethodsAnnotatedWithExceptionHandler classWithException = new ClassWithMethodsAnnotatedWithExceptionHandler(); |
228 | 215 | expect(this.context.getTarget()).andReturn(classWithException).anyTimes(); |
... | ... | @@ -352,4 +339,3 @@ public class ExceptionHandlerInterceptorTest { |
352 | 339 | } |
353 | 340 | } |
354 | 341 | } |
355 | - | ... | ... |