1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.exceptions;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.hadoop.classification.InterfaceAudience;
24 import org.apache.hadoop.classification.InterfaceStability;
25 import org.apache.hadoop.hbase.NotServingRegionException;
26 import org.apache.hadoop.ipc.RemoteException;
27
28
29
30
31
32 @InterfaceAudience.Private
33 @InterfaceStability.Evolving
34 public class RegionOpeningException extends NotServingRegionException {
35 private static final Log LOG = LogFactory.getLog(RegionOpeningException.class);
36 private static final long serialVersionUID = -7232903522310558395L;
37
38 public RegionOpeningException(String message) {
39 super(message);
40 }
41
42
43
44
45
46
47
48
49
50
51 public static RegionOpeningException find(Object exception) {
52 if (exception == null || !(exception instanceof Throwable)) {
53 return null;
54 }
55 RegionOpeningException res = null;
56 Throwable cur = (Throwable)exception;
57 while (res == null && cur != null) {
58 if (cur instanceof RegionOpeningException) {
59 res = (RegionOpeningException) cur;
60 } else {
61 if (cur instanceof RemoteException) {
62 RemoteException re = (RemoteException) cur;
63 Exception e = re.unwrapRemoteException(RegionOpeningException.class);
64 if (e == null) {
65 e = re.unwrapRemoteException();
66 }
67
68
69
70 if (e != re) {
71 res = find(e);
72 }
73 }
74 cur = cur.getCause();
75 }
76 }
77 return res;
78 }
79 }