Skip to content

Commit d6a17ce

Browse files
committed
removed server from exception message and moved to exception itself
1 parent 21af845 commit d6a17ce

File tree

2 files changed

+45
-30
lines changed

2 files changed

+45
-30
lines changed

clickhouse-client/src/main/java/com/clickhouse/client/ClickHouseException.java

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ public class ClickHouseException extends Exception {
3535

3636
private final int errorCode;
3737

38-
private static String buildErrorMessage(int code, Throwable cause, ClickHouseNode server) {
39-
return buildErrorMessage(code, cause != null ? cause.getMessage() : null, server);
38+
private final ClickHouseNode server;
39+
40+
private static String buildErrorMessageImpl(int code, Throwable cause) {
41+
return buildErrorMessageImpl(code, cause != null ? cause.getMessage() : null);
4042
}
4143

42-
private static String buildErrorMessage(int code, String message, ClickHouseNode server) {
44+
private static String buildErrorMessageImpl(int code, String message) {
4345
StringBuilder builder = new StringBuilder();
4446

4547
if (message != null && !message.isEmpty()) {
@@ -54,10 +56,6 @@ private static String buildErrorMessage(int code, String message, ClickHouseNode
5456
builder.append("Unknown error ").append(code);
5557
}
5658

57-
if (server != null) {
58-
builder.append(", server ").append(server);
59-
}
60-
6159
return builder.toString();
6260
}
6361

@@ -175,9 +173,9 @@ public static ClickHouseException of(String message, ClickHouseNode server) {
175173
* @param server server
176174
*/
177175
public ClickHouseException(int code, Throwable cause, ClickHouseNode server) {
178-
super(buildErrorMessage(code, cause, server), cause);
179-
180-
errorCode = code;
176+
super(buildErrorMessageImpl(code, cause), cause);
177+
this.server = server;
178+
this.errorCode = code;
181179
}
182180

183181
/**
@@ -188,9 +186,10 @@ public ClickHouseException(int code, Throwable cause, ClickHouseNode server) {
188186
* @param server server
189187
*/
190188
public ClickHouseException(int code, String message, ClickHouseNode server) {
191-
super(buildErrorMessage(code, message, server), null);
189+
super(buildErrorMessageImpl(code, message), null);
192190

193-
errorCode = code;
191+
this.server = server;
192+
this.errorCode = code;
194193
}
195194

196195
/**
@@ -203,7 +202,8 @@ public ClickHouseException(int code, String message, ClickHouseNode server) {
203202
protected ClickHouseException(int code, String message, Throwable cause) {
204203
super(message, cause);
205204

206-
errorCode = code;
205+
this.server = null;
206+
this.errorCode = code;
207207
}
208208

209209
/**
@@ -214,4 +214,13 @@ protected ClickHouseException(int code, String message, Throwable cause) {
214214
public int getErrorCode() {
215215
return errorCode;
216216
}
217+
218+
/**
219+
* Get the server that caused the exception.
220+
* If the exception is not caused by a server, this method will return null.
221+
* @return server
222+
*/
223+
public ClickHouseNode getServer() {
224+
return server;
225+
}
217226
}

clickhouse-client/src/test/java/com/clickhouse/client/ClickHouseExceptionTest.java

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,22 @@ public void testConstructorWithCause() {
1818
e = new ClickHouseException(233, (Throwable) null, server);
1919
Assert.assertEquals(e.getErrorCode(), 233);
2020
Assert.assertNull(e.getCause());
21-
Assert.assertEquals(e.getMessage(), "Unknown error 233, server " + server);
21+
Assert.assertEquals(e.getMessage(), "Unknown error 233");
22+
Assert.assertEquals(e.getServer(), server);
2223

2324
Throwable cause = new IllegalArgumentException();
2425
e = new ClickHouseException(123, cause, server);
2526
Assert.assertEquals(e.getErrorCode(), 123);
2627
Assert.assertEquals(e.getCause(), cause);
27-
Assert.assertEquals(e.getMessage(), "Unknown error 123, server " + server);
28+
Assert.assertEquals(e.getMessage(), "Unknown error 123");
29+
Assert.assertEquals(e.getServer(), server);
2830

2931
cause = new IllegalArgumentException("Some error");
3032
e = new ClickHouseException(111, cause, server);
3133
Assert.assertEquals(e.getErrorCode(), 111);
3234
Assert.assertEquals(e.getCause(), cause);
33-
Assert.assertEquals(e.getMessage(), "Some error, server " + server);
35+
Assert.assertEquals(e.getMessage(), "Some error");
36+
Assert.assertEquals(e.getServer(), server);
3437
}
3538

3639
@Test(groups = { "unit" })
@@ -44,17 +47,20 @@ public void testConstructorWithoutCause() {
4447
e = new ClickHouseException(233, (String) null, server);
4548
Assert.assertEquals(e.getErrorCode(), 233);
4649
Assert.assertNull(e.getCause());
47-
Assert.assertEquals(e.getMessage(), "Unknown error 233, server " + server);
50+
Assert.assertEquals(e.getMessage(), "Unknown error 233");
51+
Assert.assertEquals(e.getServer(), server);
4852

4953
e = new ClickHouseException(123, "", server);
5054
Assert.assertEquals(e.getErrorCode(), 123);
5155
Assert.assertNull(e.getCause());
52-
Assert.assertEquals(e.getMessage(), "Unknown error 123, server " + server);
56+
Assert.assertEquals(e.getMessage(), "Unknown error 123");
57+
Assert.assertEquals(e.getServer(), server);
5358

5459
e = new ClickHouseException(111, "Some error", server);
5560
Assert.assertEquals(e.getErrorCode(), 111);
5661
Assert.assertNull(e.getCause());
57-
Assert.assertEquals(e.getMessage(), "Some error, server " + server);
62+
Assert.assertEquals(e.getMessage(), "Some error");
63+
Assert.assertEquals(e.getServer(), server);
5864
}
5965

6066
@Test(groups = { "unit" })
@@ -65,12 +71,12 @@ public void testHandleException() {
6571
Assert.assertEquals(e.getErrorCode(), ClickHouseException.ERROR_UNKNOWN);
6672
Assert.assertEquals(e.getCause(), cause);
6773
Assert.assertEquals(e.getMessage(),
68-
"Unknown error " + ClickHouseException.ERROR_UNKNOWN + ", server " + server);
74+
"Unknown error " + ClickHouseException.ERROR_UNKNOWN);
6975

7076
e = ClickHouseException.of("Some error", server);
7177
Assert.assertEquals(e.getErrorCode(), ClickHouseException.ERROR_UNKNOWN);
7278
Assert.assertNull(e.getCause());
73-
Assert.assertEquals(e.getMessage(), "Some error, server " + server);
79+
Assert.assertEquals(e.getMessage(), "Some error");
7480

7581
Assert.assertEquals(e, ClickHouseException.of(e, server));
7682

@@ -79,57 +85,57 @@ public void testHandleException() {
7985
Assert.assertEquals(e.getErrorCode(), ClickHouseException.ERROR_UNKNOWN);
8086
Assert.assertEquals(e.getCause(), cause);
8187
Assert.assertEquals(e.getMessage(),
82-
"Unknown error " + ClickHouseException.ERROR_UNKNOWN + ", server " + server);
88+
"Unknown error " + ClickHouseException.ERROR_UNKNOWN);
8389

8490
e = ClickHouseException.of((ExecutionException) null, server);
8591
Assert.assertEquals(e.getErrorCode(), ClickHouseException.ERROR_UNKNOWN);
8692
Assert.assertNull(e.getCause());
8793
Assert.assertEquals(e.getMessage(),
88-
"Unknown error " + ClickHouseException.ERROR_UNKNOWN + ", server " + server);
94+
"Unknown error " + ClickHouseException.ERROR_UNKNOWN);
8995

9096
cause = new ExecutionException(new ClickHouseException(-100, (Throwable) null, server));
9197
e = ClickHouseException.of(cause, server);
9298
Assert.assertEquals(e, cause.getCause());
9399
Assert.assertEquals(e.getErrorCode(), -100);
94100
Assert.assertNull(e.getCause());
95-
Assert.assertEquals(e.getMessage(), "Unknown error -100, server " + server);
101+
Assert.assertEquals(e.getMessage(), "Unknown error -100");
96102

97103
cause = new ExecutionException(new IllegalArgumentException());
98104
e = ClickHouseException.of(cause, server);
99105
Assert.assertEquals(e.getErrorCode(), ClickHouseException.ERROR_UNKNOWN);
100106
Assert.assertEquals(e.getCause(), cause.getCause());
101107
Assert.assertEquals(e.getMessage(),
102-
"Unknown error " + ClickHouseException.ERROR_UNKNOWN + ", server " + server);
108+
"Unknown error " + ClickHouseException.ERROR_UNKNOWN);
103109

104110
cause = new ExecutionException(new IllegalArgumentException("Code: 12345. Something goes wrong..."));
105111
e = ClickHouseException.of(cause, server);
106112
Assert.assertEquals(e.getErrorCode(), 12345);
107113
Assert.assertEquals(e.getCause(), cause.getCause());
108-
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage() + ", server " + server);
114+
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage());
109115

110116
cause = new ExecutionException(new IllegalArgumentException("Code:12345. Something goes wrong..."));
111117
e = ClickHouseException.of(cause, server);
112118
Assert.assertEquals(e.getErrorCode(), 12345);
113119
Assert.assertEquals(e.getCause(), cause.getCause());
114-
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage() + ", server " + server);
120+
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage());
115121

116122
cause = new ExecutionException(new IllegalArgumentException("Poco::Exception. Code: 1000, "));
117123
e = ClickHouseException.of(cause, server);
118124
Assert.assertEquals(e.getErrorCode(), 1000);
119125
Assert.assertEquals(e.getCause(), cause.getCause());
120-
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage() + ", server " + server);
126+
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage());
121127

122128
cause = new ExecutionException(new IllegalArgumentException("Code: 123"));
123129
e = ClickHouseException.of(cause, server);
124130
Assert.assertEquals(e.getErrorCode(), 123);
125131
Assert.assertEquals(e.getCause(), cause.getCause());
126-
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage() + ", server " + server);
132+
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage());
127133

128134
cause = new ExecutionException(new IllegalArgumentException("Code: ab123"));
129135
e = ClickHouseException.of(cause, server);
130136
Assert.assertEquals(e.getErrorCode(), 1002);
131137
Assert.assertEquals(e.getCause(), cause.getCause());
132-
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage() + ", server " + server);
138+
Assert.assertEquals(e.getMessage(), cause.getCause().getMessage());
133139

134140
}
135141

0 commit comments

Comments
 (0)