ExceptionHelper.java
01 /* Licensed to the Apache Software Foundation (ASF) under one
02  * or more contributor license agreements.  See the NOTICE file
03  * distributed with this work for additional information
04  * regarding copyright ownership.  The ASF licenses this file
05  * to you under the Apache License, Version 2.0 (the
06  * "License"); you may not use this file except in compliance
07  * with the License.  You may obtain a copy of the License at
08  
09  *   http://www.apache.org/licenses/LICENSE-2.0
10  
11  * Unless required by applicable law or agreed to in writing,
12  * software distributed under the License is distributed on an
13  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14  * KIND, either express or implied.  See the License for the
15  * specific language governing permissions and limitations
16  * under the License.
17  */
18 package org.apache.qpid.njms;
19 
20 import org.apache.qpid.QpidException;
21 
22 import javax.jms.JMSException;
23 import javax.transaction.xa.XAException;
24 
25 /**
26  * Helper class for handling exceptions
27  */
28 public class ExceptionHelper
29 {
30     static public JMSException convertQpidExceptionToJMSException(Exception exception)
31     {
32         JMSException jmsException = null;
33         if (!(exception instanceof JMSException))
34         {
35             if (exception instanceof QpidException)
36             {
37                 jmsException = new JMSException(exception.getMessage(), String.valueOf(((QpidExceptionexception).getErrorCode()));
38             }
39             else
40             {
41                 jmsException = new JMSException(exception.getMessage());
42             }
43             jmsException.setLinkedException(exception);
44             jmsException.initCause(exception);
45         }
46         else
47         {
48             jmsException = (JMSExceptionexception;
49         }
50         return jmsException;
51     }
52 
53     static public XAException convertQpidExceptionToXAException(QpidException exception)
54     {
55         String qpidErrorCode = String.valueOf(exception.getErrorCode());
56         // todo map this error to an XA code
57         int xaCode = XAException.XAER_PROTO;
58         return new XAException(xaCode);
59     }
60 }