1 /** 2 * Copyright (c) 2011, University of Konstanz, Distributed Systems Group 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * * Neither the name of the University of Konstanz nor the 13 * names of its contributors may be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 package org.jaxrx.core; 28 29 import javax.ws.rs.WebApplicationException; 30 import javax.ws.rs.core.MediaType; 31 import javax.ws.rs.core.Response; 32 33 /** 34 * An exception that is either thrown by the JAX-RX interface or its underlying 35 * implementation. 36 * 37 * @author Sebastian Graf, Christian Gruen, Lukas Lewandowski, University of 38 * Konstanz 39 * 40 */ 41 public final class JaxRxException extends WebApplicationException { 42 /** 43 * Constructs a new exception with the given HTTP status code and status 44 * message. 45 * 46 * @param status 47 * HTTP status code 48 * @param message 49 * status message 50 */ 51 public JaxRxException(final int status, final String message) { 52 super(Response.status(status).entity(message). 53 type(MediaType.TEXT_PLAIN).build()); 54 } 55 56 /** 57 * Constructor, wrapping the specified exception and setting 500 as HTTP 58 * status code. 59 * 60 * @param exception 61 * exception to be wrapped 62 */ 63 public JaxRxException(final Exception exception) { 64 this(500, exception.getMessage()); 65 } 66 67 /** 68 * Constructor, using a {@link Response} reference. 69 * 70 * @param response 71 * response to be passed on 72 */ 73 public JaxRxException(final Response response) { 74 super(response); 75 } 76 }