From 6fd8de2d249011591b2b0b72cbc796dcfd5ba444 Mon Sep 17 00:00:00 2001 From: Wilson Guimarães Date: Thu, 24 Jan 2013 13:26:13 -0300 Subject: [PATCH] FWK-41: Correção no tratamento de exceções anotadas com @ApplicationException --- impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AbstractExceptionHandler.java | 2 +- impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandler.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AbstractExceptionHandler.java b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AbstractExceptionHandler.java index 2fb0d9b..98d8855 100644 --- a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AbstractExceptionHandler.java +++ b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AbstractExceptionHandler.java @@ -80,7 +80,7 @@ public abstract class AbstractExceptionHandler extends ExceptionHandlerWrapper { protected abstract boolean handleException(final Throwable cause, FacesContext facesContext); - private Throwable getRoot(final Throwable throwable) { + protected Throwable getRoot(final Throwable throwable) { Throwable root = throwable; while (root.getCause() != null) { diff --git a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandler.java b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandler.java index 8a881b7..acfb321 100644 --- a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandler.java +++ b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandler.java @@ -104,4 +104,14 @@ public class ApplicationExceptionHandler extends AbstractExceptionHandler { } return handled; } + + protected Throwable getRoot(final Throwable throwable) { + Throwable root = throwable; + + while (!Exceptions.isApplicationException(root)) { + root = root.getCause(); + } + + return root; + } } -- libgit2 0.21.2