SynchException.java
01 package org.apache.qpid.util.concurrent;
02 /*
03  
04  * Licensed to the Apache Software Foundation (ASF) under one
05  * or more contributor license agreements.  See the NOTICE file
06  * distributed with this work for additional information
07  * regarding copyright ownership.  The ASF licenses this file
08  * to you under the Apache License, Version 2.0 (the
09  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  
21  */
22 
23 
24 /**
25  * SynchException is used to encapsulate exceptions with the data elements that caused them in order to send exceptions
26  * back from the consumers of a {@link BatchSynchQueue} to producers. The underlying exception should be retrieved from
27  * the {@link #getCause} method.
28  *
29  <p/><table id="crc"><caption>CRC Card</caption>
30  <tr><th> Responsibilities <th> Collaborations
31  <tr><td> Encapsulate a data element and exception.
32  </table>
33  */
34 public class SynchException extends Exception
35 {
36     /** Holds the data element that is in error. */
37     Object element;
38 
39     /**
40      * Creates a new BaseApplicationException object.
41      *
42      @param message The exception message.
43      @param cause   The underlying throwable cause. This may be null.
44      */
45     public SynchException(String message, Throwable cause, Object element)
46     {
47         super(message, cause);
48 
49         // Keep the data element that was in error.
50         this.element = element;
51     }
52 }