Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 569B717D29 for ; Mon, 6 Apr 2015 21:21:23 +0000 (UTC) Received: (qmail 59507 invoked by uid 500); 6 Apr 2015 21:21:23 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 59452 invoked by uid 500); 6 Apr 2015 21:21:23 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 59443 invoked by uid 99); 6 Apr 2015 21:21:23 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Apr 2015 21:21:23 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id EF2F0E180F; Mon, 6 Apr 2015 21:21:22 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sergeyb@apache.org To: commits@cxf.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: cxf git commit: [CXF-6331] Wrapping exceptions in Fault Date: Mon, 6 Apr 2015 21:21:22 +0000 (UTC) Repository: cxf Updated Branches: refs/heads/master 3309231e4 -> 534ce5c38 [CXF-6331] Wrapping exceptions in Fault Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/534ce5c3 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/534ce5c3 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/534ce5c3 Branch: refs/heads/master Commit: 534ce5c38e1e7220a81cbee9dc5e9b720433b5b5 Parents: 3309231 Author: Sergey Beryozkin Authored: Mon Apr 6 22:21:03 2015 +0100 Committer: Sergey Beryozkin Committed: Mon Apr 6 22:21:03 2015 +0100 ---------------------------------------------------------------------- .../validation/JAXRSBeanValidationInvoker.java | 44 +++++++++++--------- 1 file changed, 25 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/534ce5c3/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/validation/JAXRSBeanValidationInvoker.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/validation/JAXRSBeanValidationInvoker.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/validation/JAXRSBeanValidationInvoker.java index 22fe956..f526c53 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/validation/JAXRSBeanValidationInvoker.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/validation/JAXRSBeanValidationInvoker.java @@ -23,6 +23,7 @@ import java.util.List; import javax.ws.rs.core.Response; +import org.apache.cxf.interceptor.Fault; import org.apache.cxf.jaxrs.JAXRSInvoker; import org.apache.cxf.jaxrs.utils.JAXRSUtils; import org.apache.cxf.message.Exchange; @@ -40,29 +41,34 @@ public class JAXRSBeanValidationInvoker extends JAXRSInvoker { Message message = JAXRSUtils.getCurrentMessage(); BeanValidationProvider theProvider = getProvider(message); - - if (isValidateServiceObject()) { - theProvider.validateBean(serviceObject); - } - - theProvider.validateParameters(serviceObject, m, params.toArray()); - - Object response = super.invoke(exchange, serviceObject, m, params); - - if (response instanceof MessageContentsList) { - MessageContentsList list = (MessageContentsList)response; - if (list.size() == 1) { - Object entity = ((MessageContentsList)list).get(0); - - if (entity instanceof Response) { - theProvider.validateReturnValue(serviceObject, m, ((Response)entity).getEntity()); - } else { - theProvider.validateReturnValue(serviceObject, m, entity); + try { + if (isValidateServiceObject()) { + theProvider.validateBean(serviceObject); + } + + theProvider.validateParameters(serviceObject, m, params.toArray()); + + Object response = super.invoke(exchange, serviceObject, m, params); + + if (response instanceof MessageContentsList) { + MessageContentsList list = (MessageContentsList)response; + if (list.size() == 1) { + Object entity = ((MessageContentsList)list).get(0); + + if (entity instanceof Response) { + theProvider.validateReturnValue(serviceObject, m, ((Response)entity).getEntity()); + } else { + theProvider.validateReturnValue(serviceObject, m, entity); + } } } + return response; + } catch (Fault ex) { + throw ex; + } catch (Throwable ex) { + throw new Fault(ex); } - return response; } protected BeanValidationProvider getProvider(Message message) {