Skip to content

Commit be56b06

Browse files
authored
Fix connection options initialization (#1515)
SqlConnectOptions defaults are initialized properly: - the default values should all be set in the init method - default values for reconnect attemps and interval are not set Also, all vendor-specific options (except for MySQL) miss the call to init in the parent options. Signed-off-by: Thomas Segismont <[email protected]>
1 parent be5e764 commit be56b06

File tree

6 files changed

+37
-30
lines changed

6 files changed

+37
-30
lines changed

vertx-db2-client/src/main/java/io/vertx/db2client/DB2ConnectOptions.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,23 @@
1515
*/
1616
package io.vertx.db2client;
1717

18-
import java.util.Collections;
19-
import java.util.HashMap;
20-
import java.util.Map;
21-
import java.util.Objects;
22-
import java.util.function.Predicate;
23-
2418
import io.vertx.codegen.annotations.DataObject;
2519
import io.vertx.codegen.annotations.GenIgnore;
2620
import io.vertx.codegen.json.annotations.JsonGen;
2721
import io.vertx.core.json.JsonObject;
28-
import io.vertx.core.net.*;
22+
import io.vertx.core.net.ClientSSLOptions;
2923
import io.vertx.core.tracing.TracingPolicy;
3024
import io.vertx.db2client.impl.DB2ConnectionUriParser;
3125
import io.vertx.db2client.impl.drda.SQLState;
3226
import io.vertx.db2client.impl.drda.SqlCode;
3327
import io.vertx.sqlclient.SqlConnectOptions;
3428

29+
import java.util.Collections;
30+
import java.util.HashMap;
31+
import java.util.Map;
32+
import java.util.Objects;
33+
import java.util.function.Predicate;
34+
3535
/**
3636
* Connect options for configuring {@link DB2Connection} or {@link DB2Builder}.
3737
*/
@@ -229,7 +229,9 @@ public DB2ConnectOptions setSslOptions(ClientSSLOptions sslOptions) {
229229
/**
230230
* Initialize with the default options.
231231
*/
232+
@Override
232233
protected void init() {
234+
super.init();
233235
this.setHost(DEFAULT_HOST);
234236
this.setPort(DEFAULT_PORT);
235237
this.setMetricsName(DEFAULT_METRICS_NAME);

vertx-mssql-client/src/main/java/io/vertx/mssqlclient/MSSQLConnectOptions.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import io.vertx.codegen.annotations.GenIgnore;
1616
import io.vertx.codegen.json.annotations.JsonGen;
1717
import io.vertx.core.json.JsonObject;
18-
import io.vertx.core.net.*;
18+
import io.vertx.core.net.ClientSSLOptions;
1919
import io.vertx.mssqlclient.impl.MSSQLConnectionUriParser;
2020
import io.vertx.sqlclient.SqlConnectOptions;
2121

@@ -223,7 +223,9 @@ public MSSQLConnectOptions setSslOptions(ClientSSLOptions sslOptions) {
223223
/**
224224
* Initialize with the default options.
225225
*/
226+
@Override
226227
protected void init() {
228+
super.init();
227229
this.setHost(DEFAULT_HOST);
228230
this.setPort(DEFAULT_PORT);
229231
this.setUser(DEFAULT_USER);

vertx-oracle-client/src/main/java/io/vertx/oracleclient/OracleConnectOptions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@ public JsonObject toJson() {
362362

363363
@Override
364364
protected void init() {
365+
super.init();
365366
this.setHost(DEFAULT_HOST);
366367
this.setPort(DEFAULT_PORT);
367368
this.setUser(DEFAULT_USER);

vertx-pg-client/src/main/java/io/vertx/pgclient/PgConnectOptions.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@
1717

1818
package io.vertx.pgclient;
1919

20+
import io.vertx.codegen.annotations.DataObject;
2021
import io.vertx.codegen.annotations.GenIgnore;
2122
import io.vertx.codegen.annotations.Unstable;
2223
import io.vertx.codegen.json.annotations.JsonGen;
24+
import io.vertx.core.json.JsonObject;
25+
import io.vertx.core.net.ClientSSLOptions;
26+
import io.vertx.core.net.SocketAddress;
2327
import io.vertx.core.tracing.TracingPolicy;
2428
import io.vertx.pgclient.impl.PgConnectionUriParser;
25-
import io.vertx.codegen.annotations.DataObject;
26-
import io.vertx.core.json.JsonObject;
27-
import io.vertx.core.net.*;
2829
import io.vertx.sqlclient.SqlConnectOptions;
2930

3031
import java.util.Collections;
@@ -188,6 +189,7 @@ public PgConnectOptions setPipeliningLimit(int pipeliningLimit) {
188189
return this;
189190
}
190191

192+
@Override
191193
public PgConnectOptions setCachePreparedStatements(boolean cachePreparedStatements) {
192194
return (PgConnectOptions) super.setCachePreparedStatements(cachePreparedStatements);
193195
}
@@ -281,7 +283,9 @@ public PgConnectOptions setSslOptions(ClientSSLOptions sslOptions) {
281283
/**
282284
* Initialize with the default options.
283285
*/
286+
@Override
284287
protected void init() {
288+
super.init();
285289
this.setHost(DEFAULT_HOST);
286290
this.setPort(DEFAULT_PORT);
287291
this.setUser(DEFAULT_USER);
@@ -298,6 +302,7 @@ public JsonObject toJson() {
298302
return json;
299303
}
300304

305+
@Override
301306
@GenIgnore
302307
public SocketAddress getSocketAddress() {
303308
if (!isUsingDomainSocket()) {
@@ -329,6 +334,7 @@ public int hashCode() {
329334
return result;
330335
}
331336

337+
@Override
332338
public boolean isUsingDomainSocket() {
333339
return this.getHost().startsWith("/");
334340
}

vertx-sql-client/src/main/java/io/vertx/sqlclient/SqlConnectOptions.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,12 @@
1515
import io.vertx.codegen.annotations.GenIgnore;
1616
import io.vertx.codegen.json.annotations.JsonGen;
1717
import io.vertx.core.json.JsonObject;
18-
import io.vertx.core.net.ClientOptionsBase;
1918
import io.vertx.core.net.ClientSSLOptions;
2019
import io.vertx.core.net.SocketAddress;
2120
import io.vertx.core.tracing.TracingPolicy;
2221
import io.vertx.sqlclient.spi.Driver;
2322

24-
import java.util.ArrayList;
25-
import java.util.HashMap;
26-
import java.util.List;
27-
import java.util.Map;
28-
import java.util.Objects;
29-
import java.util.ServiceConfigurationError;
30-
import java.util.ServiceLoader;
23+
import java.util.*;
3124
import java.util.function.Predicate;
3225

3326
/**
@@ -78,10 +71,10 @@ public static SqlConnectOptions fromUri(String connectionUri) throws IllegalArgu
7871
private String user;
7972
private String password;
8073
private String database;
81-
private boolean cachePreparedStatements = DEFAULT_CACHE_PREPARED_STATEMENTS;
82-
private int preparedStatementCacheMaxSize = DEFAULT_PREPARED_STATEMENT_CACHE_MAX_SIZE;
83-
private Predicate<String> preparedStatementCacheSqlFilter = DEFAULT_PREPARED_STATEMENT_CACHE_FILTER;
84-
private Map<String, String> properties = new HashMap<>(4);
74+
private boolean cachePreparedStatements;
75+
private int preparedStatementCacheMaxSize;
76+
private Predicate<String> preparedStatementCacheSqlFilter;
77+
private Map<String, String> properties;
8578
private TracingPolicy tracingPolicy;
8679
private int reconnectAttempts;
8780
private long reconnectInterval;
@@ -440,6 +433,12 @@ public JsonObject toJson() {
440433
* Initialize with the default options.
441434
*/
442435
protected void init() {
436+
cachePreparedStatements = DEFAULT_CACHE_PREPARED_STATEMENTS;
437+
preparedStatementCacheMaxSize = DEFAULT_PREPARED_STATEMENT_CACHE_MAX_SIZE;
438+
preparedStatementCacheSqlFilter = DEFAULT_PREPARED_STATEMENT_CACHE_FILTER;
439+
properties = new HashMap<>(4);
440+
reconnectAttempts = DEFAULT_RECONNECT_ATTEMPTS;
441+
reconnectInterval = DEFAULT_RECONNECT_INTERVAL;
443442
}
444443

445444
/**

vertx-sql-client/src/test/java/io/vertx/tests/sqlclient/tck/ConnectionAutoRetryTestBase.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@
3030
import org.junit.Test;
3131
import org.junit.runner.RunWith;
3232

33-
import java.util.*;
33+
import java.util.ArrayDeque;
34+
import java.util.HashMap;
35+
import java.util.Map;
36+
import java.util.Queue;
3437
import java.util.concurrent.atomic.AtomicInteger;
3538

3639
@RunWith(VertxUnitRunner.class)
@@ -57,7 +60,6 @@ public void tearDown(TestContext ctx) {
5760
@Test
5861
public void testConnSuccessWithoutRetry(TestContext ctx) {
5962
options.setReconnectAttempts(3);
60-
options.setReconnectInterval(1000);
6163
UnstableProxyServer unstableProxyServer = new UnstableProxyServer(0);
6264
unstableProxyServer.initialize(options, ctx.asyncAssertSuccess(v -> {
6365
initialConnector(unstableProxyServer.port());
@@ -71,7 +73,6 @@ public void testConnSuccessWithoutRetry(TestContext ctx) {
7173
@Test
7274
public void testPoolSuccessWithoutRetry(TestContext ctx) {
7375
options.setReconnectAttempts(3);
74-
options.setReconnectInterval(1000);
7576
UnstableProxyServer unstableProxyServer = new UnstableProxyServer(0);
7677
unstableProxyServer.initialize(options, ctx.asyncAssertSuccess(v -> {
7778
initialConnector(unstableProxyServer.port());
@@ -84,7 +85,6 @@ public void testPoolSuccessWithoutRetry(TestContext ctx) {
8485
@Test
8586
public void testConnExceedingRetryLimit(TestContext ctx) {
8687
options.setReconnectAttempts(1);
87-
options.setReconnectInterval(1000);
8888
UnstableProxyServer unstableProxyServer = new UnstableProxyServer(2);
8989
unstableProxyServer.initialize(options, ctx.asyncAssertSuccess(v -> {
9090
initialConnector(unstableProxyServer.port());
@@ -96,7 +96,6 @@ public void testConnExceedingRetryLimit(TestContext ctx) {
9696
@Test
9797
public void testPoolExceedingRetryLimit(TestContext ctx) {
9898
options.setReconnectAttempts(1);
99-
options.setReconnectInterval(1000);
10099
UnstableProxyServer unstableProxyServer = new UnstableProxyServer(2);
101100
unstableProxyServer.initialize(options, ctx.asyncAssertSuccess(v -> {
102101
initialConnector(unstableProxyServer.port());
@@ -108,7 +107,6 @@ public void testPoolExceedingRetryLimit(TestContext ctx) {
108107
@Test
109108
public void testConnRetrySuccess(TestContext ctx) {
110109
options.setReconnectAttempts(1);
111-
options.setReconnectInterval(1000);
112110
UnstableProxyServer unstableProxyServer = new UnstableProxyServer(1);
113111
unstableProxyServer.initialize(options, ctx.asyncAssertSuccess(v -> {
114112
initialConnector(unstableProxyServer.port());
@@ -121,7 +119,6 @@ public void testConnRetrySuccess(TestContext ctx) {
121119
@Test
122120
public void testPoolRetrySuccess(TestContext ctx) {
123121
options.setReconnectAttempts(1);
124-
options.setReconnectInterval(1000);
125122
UnstableProxyServer unstableProxyServer = new UnstableProxyServer(1);
126123
unstableProxyServer.initialize(options, ctx.asyncAssertSuccess(v -> {
127124
initialConnector(unstableProxyServer.port());

0 commit comments

Comments
 (0)