-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathObTableException.java
More file actions
94 lines (80 loc) · 2.39 KB
/
ObTableException.java
File metadata and controls
94 lines (80 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*-
* #%L
* OBKV Table Client Framework
* %%
* Copyright (C) 2021 OceanBase
* %%
* OBKV Table Client Framework is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* #L%
*/
package com.alipay.oceanbase.rpc.exception;
import com.alipay.oceanbase.rpc.protocol.payload.ResultCodes;
public class ObTableException extends RuntimeException {
private int errorCode = -1;
private boolean needRefreshTableEntry = false;
/*
* Ob table exception.
*/
public ObTableException() {
}
/*
* Ob table exception.
*/
public ObTableException(int errorCode) {
this("error code: " + errorCode, errorCode);
}
/*
* Ob table exception.
*/
public ObTableException(String message, int errorCode) {
this(message);
this.errorCode = errorCode;
}
/*
* Ob table exception.
*/
public ObTableException(String message) {
super(message);
}
/*
* Ob table exception.
*/
public ObTableException(String message, Throwable cause) {
super(message, cause);
if (cause instanceof ObTableException) {
errorCode = ((ObTableException) cause).getErrorCode();
needRefreshTableEntry = ((ObTableException) cause).isNeedRefreshTableEntry();
}
}
/*
* Ob table exception.
*/
public ObTableException(Throwable cause) {
super(cause);
}
/*
* Get error code.
*/
public int getErrorCode() {
return errorCode;
}
/*
* Is need refresh table entry.
*/
public boolean isNeedRefreshTableEntry() {
return needRefreshTableEntry;
}
public boolean isNeedRetryError() {
return errorCode == ResultCodes.OB_TRY_LOCK_ROW_CONFLICT.errorCode
|| errorCode == ResultCodes.OB_TRANSACTION_SET_VIOLATION.errorCode
|| errorCode == ResultCodes.OB_SCHEMA_EAGAIN.errorCode
|| errorCode == ResultCodes.OB_TRANS_TIMEOUT.errorCode;
}
}