Skip to content

Commit 25d15b4

Browse files
committed
Fix connection options initialization (eclipse-vertx#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 80b2b67 commit 25d15b4

File tree

6 files changed

+35
-42
lines changed

6 files changed

+35
-42
lines changed

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

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,24 @@
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.concurrent.TimeUnit;
23-
import java.util.function.Predicate;
24-
2518
import io.vertx.codegen.annotations.DataObject;
2619
import io.vertx.codegen.annotations.GenIgnore;
2720
import io.vertx.codegen.json.annotations.JsonGen;
2821
import io.vertx.core.json.JsonObject;
29-
import io.vertx.core.net.ClientOptionsBase;
30-
import io.vertx.core.net.JdkSSLEngineOptions;
31-
import io.vertx.core.net.JksOptions;
32-
import io.vertx.core.net.KeyCertOptions;
33-
import io.vertx.core.net.NetClientOptions;
34-
import io.vertx.core.net.OpenSSLEngineOptions;
35-
import io.vertx.core.net.PemKeyCertOptions;
36-
import io.vertx.core.net.PemTrustOptions;
37-
import io.vertx.core.net.SSLEngineOptions;
38-
import io.vertx.core.net.TrustOptions;
22+
import io.vertx.core.net.*;
3923
import io.vertx.core.tracing.TracingPolicy;
4024
import io.vertx.db2client.impl.DB2ConnectionUriParser;
4125
import io.vertx.db2client.impl.drda.SQLState;
4226
import io.vertx.db2client.impl.drda.SqlCode;
4327
import io.vertx.sqlclient.SqlConnectOptions;
4428

29+
import java.util.Collections;
30+
import java.util.HashMap;
31+
import java.util.Map;
32+
import java.util.Objects;
33+
import java.util.concurrent.TimeUnit;
34+
import java.util.function.Predicate;
35+
4536
/**
4637
* Connect options for configuring {@link DB2Connection} or {@link DB2Builder}.
4738
*/
@@ -276,7 +267,9 @@ public DB2ConnectOptions addProperty(String key, String value) {
276267
/**
277268
* Initialize with the default options.
278269
*/
270+
@Override
279271
protected void init() {
272+
super.init();
280273
this.setHost(DEFAULT_HOST);
281274
this.setPort(DEFAULT_PORT);
282275
this.setProperties(new HashMap<>(DEFAULT_CONNECTION_ATTRIBUTES));

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,9 @@ public MSSQLConnectOptions setNonProxyHosts(List<String> nonProxyHosts) {
393393
/**
394394
* Initialize with the default options.
395395
*/
396+
@Override
396397
protected void init() {
398+
super.init();
397399
this.setHost(DEFAULT_HOST);
398400
this.setPort(DEFAULT_PORT);
399401
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
@@ -345,6 +345,7 @@ public JsonObject toJson() {
345345

346346
@Override
347347
protected void init() {
348+
super.init();
348349
this.setHost(DEFAULT_HOST);
349350
this.setPort(DEFAULT_PORT);
350351
this.setUser(DEFAULT_USER);

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

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

1818
package io.vertx.pgclient;
1919

20+
import io.vertx.codegen.annotations.DataObject;
2021
import io.vertx.codegen.annotations.GenIgnore;
21-
import io.vertx.codegen.json.annotations.JsonGen;
2222
import io.vertx.codegen.annotations.Unstable;
23-
import io.vertx.core.tracing.TracingPolicy;
24-
import io.vertx.pgclient.impl.PgConnectionUriParser;
25-
import io.vertx.codegen.annotations.DataObject;
23+
import io.vertx.codegen.json.annotations.JsonGen;
2624
import io.vertx.core.buffer.Buffer;
2725
import io.vertx.core.json.JsonObject;
2826
import io.vertx.core.net.*;
27+
import io.vertx.core.tracing.TracingPolicy;
28+
import io.vertx.pgclient.impl.PgConnectionUriParser;
2929
import io.vertx.sqlclient.SqlConnectOptions;
3030

3131
import java.util.Collections;
@@ -191,6 +191,7 @@ public PgConnectOptions setPipeliningLimit(int pipeliningLimit) {
191191
return this;
192192
}
193193

194+
@Override
194195
public PgConnectOptions setCachePreparedStatements(boolean cachePreparedStatements) {
195196
return (PgConnectOptions) super.setCachePreparedStatements(cachePreparedStatements);
196197
}
@@ -484,7 +485,9 @@ public PgConnectOptions setTracingPolicy(TracingPolicy tracingPolicy) {
484485
/**
485486
* Initialize with the default options.
486487
*/
488+
@Override
487489
protected void init() {
490+
super.init();
488491
this.setHost(DEFAULT_HOST);
489492
this.setPort(DEFAULT_PORT);
490493
this.setUser(DEFAULT_USER);
@@ -500,6 +503,7 @@ public JsonObject toJson() {
500503
return json;
501504
}
502505

506+
@Override
503507
@GenIgnore
504508
public SocketAddress getSocketAddress() {
505509
if (!isUsingDomainSocket()) {
@@ -531,6 +535,7 @@ public int hashCode() {
531535
return result;
532536
}
533537

538+
@Override
534539
public boolean isUsingDomainSocket() {
535540
return this.getHost().startsWith("/");
536541
}

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

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,13 @@
1414
import io.vertx.codegen.annotations.DataObject;
1515
import io.vertx.codegen.annotations.GenIgnore;
1616
import io.vertx.codegen.json.annotations.JsonGen;
17-
import io.vertx.core.json.Json;
1817
import io.vertx.core.json.JsonObject;
1918
import io.vertx.core.net.NetClientOptions;
20-
import io.vertx.core.net.NetClientOptionsConverter;
2119
import io.vertx.core.net.SocketAddress;
2220
import io.vertx.core.tracing.TracingPolicy;
2321
import io.vertx.sqlclient.spi.Driver;
2422

25-
import java.util.ArrayList;
26-
import java.util.Collections;
27-
import java.util.HashMap;
28-
import java.util.List;
29-
import java.util.Map;
30-
import java.util.Objects;
31-
import java.util.ServiceConfigurationError;
32-
import java.util.ServiceLoader;
23+
import java.util.*;
3324
import java.util.function.Predicate;
3425

3526
/**
@@ -77,10 +68,10 @@ public static SqlConnectOptions fromUri(String connectionUri) throws IllegalArgu
7768
private String user;
7869
private String password;
7970
private String database;
80-
private boolean cachePreparedStatements = DEFAULT_CACHE_PREPARED_STATEMENTS;
81-
private int preparedStatementCacheMaxSize = DEFAULT_PREPARED_STATEMENT_CACHE_MAX_SIZE;
82-
private Predicate<String> preparedStatementCacheSqlFilter = DEFAULT_PREPARED_STATEMENT_CACHE_FILTER;
83-
private Map<String, String> properties = new HashMap<>(4);
71+
private boolean cachePreparedStatements;
72+
private int preparedStatementCacheMaxSize;
73+
private Predicate<String> preparedStatementCacheSqlFilter;
74+
private Map<String, String> properties;
8475
private TracingPolicy tracingPolicy;
8576

8677
public SqlConnectOptions() {
@@ -365,6 +356,10 @@ public JsonObject toJson() {
365356
* Initialize with the default options.
366357
*/
367358
protected void init() {
359+
cachePreparedStatements = DEFAULT_CACHE_PREPARED_STATEMENTS;
360+
preparedStatementCacheMaxSize = DEFAULT_PREPARED_STATEMENT_CACHE_MAX_SIZE;
361+
preparedStatementCacheSqlFilter = DEFAULT_PREPARED_STATEMENT_CACHE_FILTER;
362+
properties = new HashMap<>(4);
368363
}
369364

370365
/**

vertx-sql-client/src/test/java/io/vertx/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)