1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.jdbc;
12
13 import org.mule.api.config.ExceptionReader;
14 import org.mule.util.StringUtils;
15
16 import java.sql.SQLException;
17 import java.util.HashMap;
18 import java.util.Map;
19
20
21
22
23
24 public class SQLExceptionReader implements ExceptionReader
25 {
26 public String getMessage(Throwable t)
27 {
28 SQLException e = (SQLException) t;
29 return e.getMessage() + "(SQL Code: " + e.getErrorCode() + ", SQL State: + " + e.getSQLState() + ")";
30 }
31
32 public Throwable getCause(Throwable t)
33 {
34 SQLException e = (SQLException) t;
35 Throwable cause = e.getNextException();
36 if (cause == null)
37 {
38 cause = e.getCause();
39 }
40 return cause;
41 }
42
43 public Class<?> getExceptionType()
44 {
45 return SQLException.class;
46 }
47
48
49
50
51
52
53
54 public Map<?, ?> getInfo(Throwable t)
55 {
56 SQLException e = (SQLException) t;
57
58 Map<String, Object> info = new HashMap<String, Object>();
59 if (e.getErrorCode() != 0)
60 {
61 info.put("SQL Code", String.valueOf(e.getErrorCode()));
62 }
63 if (e.getSQLState() != null && !e.getSQLState().equals(StringUtils.EMPTY))
64 {
65 info.put("SQL State", e.getSQLState());
66 }
67 return info;
68 }
69 }