[Git][java-team/mariadb-connector-java][upstream] New upstream version 2.7.6
Tony Mancill (@tmancill)
gitlab at salsa.debian.org
Fri Sep 2 04:38:24 BST 2022
Tony Mancill pushed to branch upstream at Debian Java Maintainers / mariadb-connector-java
Commits:
2bb2c0f1 by tony mancill at 2022-09-01T20:24:06-07:00
New upstream version 2.7.6
- - - - -
14 changed files:
- CHANGELOG.md
- pom.xml
- src/main/java/org/mariadb/jdbc/MariaDbFunctionStatement.java
- src/main/java/org/mariadb/jdbc/MariaDbProcedureStatement.java
- src/main/java/org/mariadb/jdbc/MariaDbStatement.java
- src/main/java/org/mariadb/jdbc/util/Options.java
- src/test/java/org/mariadb/jdbc/ConnectionTest.java
- src/test/java/org/mariadb/jdbc/DatatypeCompatibilityTest.java
- src/test/java/org/mariadb/jdbc/DriverTest.java
- src/test/java/org/mariadb/jdbc/ScalarFunctionsTest.java
- src/test/java/org/mariadb/jdbc/Sha256AuthenticationTest.java
- src/test/java/org/mariadb/jdbc/SslTest.java
- src/test/java/org/mariadb/jdbc/TimezoneDaylightSavingTimeTest.java
- src/test/resources/conf.properties
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,6 +1,10 @@
# Change Log
+## [2.7.6](https://github.com/mariadb-corporation/mariadb-connector-j/tree/2.7.6) (Jun 2022)
+[Full Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/compare/2.7.5...2.7.6)
-## [2.7.5](https://github.com/mariadb-corporation/mariadb-connector-j/tree/2.7.5) (Jan 2021)
+* CONJ-983 avoid race condition provoking locking issue
+
+## [2.7.5](https://github.com/mariadb-corporation/mariadb-connector-j/tree/2.7.5) (Jan 2022)
[Full Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/compare/2.7.4...2.7.5)
* CONJ-914 remove enabling session_track_schema on connection creation
=====================================
pom.xml
=====================================
@@ -60,7 +60,7 @@
<artifactId>mariadb-java-client</artifactId>
<packaging>jar</packaging>
<name>mariadb-java-client</name>
- <version>2.7.5</version>
+ <version>2.7.6</version>
<description>JDBC driver for MariaDB and MySQL</description>
<url>https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/</url>
=====================================
src/main/java/org/mariadb/jdbc/MariaDbFunctionStatement.java
=====================================
@@ -130,7 +130,7 @@ public class MariaDbFunctionStatement extends CallableFunctionStatement
*/
@Override
public int executeUpdate() throws SQLException {
- connection.lock.lock();
+ lock.lock();
try {
super.execute();
retrieveOutputResult();
@@ -139,7 +139,7 @@ public class MariaDbFunctionStatement extends CallableFunctionStatement
}
return getUpdateCount();
} finally {
- connection.lock.unlock();
+ lock.unlock();
}
}
@@ -157,7 +157,7 @@ public class MariaDbFunctionStatement extends CallableFunctionStatement
@Override
public ResultSet executeQuery() throws SQLException {
- connection.lock.lock();
+ lock.lock();
try {
super.execute();
retrieveOutputResult();
@@ -166,19 +166,19 @@ public class MariaDbFunctionStatement extends CallableFunctionStatement
}
return SelectResultSet.createEmptyResultSet();
} finally {
- connection.lock.unlock();
+ lock.unlock();
}
}
@Override
public boolean execute() throws SQLException {
- connection.lock.lock();
+ lock.lock();
try {
super.execute();
retrieveOutputResult();
return results != null && results.getResultSet() == null;
} finally {
- connection.lock.unlock();
+ lock.unlock();
}
}
}
=====================================
src/main/java/org/mariadb/jdbc/MariaDbProcedureStatement.java
=====================================
@@ -164,14 +164,14 @@ public class MariaDbProcedureStatement extends CallableProcedureStatement
@Override
public boolean execute() throws SQLException {
- connection.lock.lock();
+ lock.lock();
try {
validAllParameters();
super.executeInternal(fetchSize);
retrieveOutputResult();
return results != null && results.getResultSet() != null;
} finally {
- connection.lock.unlock();
+ lock.unlock();
}
}
=====================================
src/main/java/org/mariadb/jdbc/MariaDbStatement.java
=====================================
@@ -56,10 +56,7 @@ import java.io.InputStream;
import java.nio.charset.Charset;
import java.sql.*;
import java.util.*;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -180,14 +177,16 @@ public class MariaDbStatement implements Statement, Cloneable {
timerTaskFuture =
timeoutScheduler.schedule(
() -> {
- try {
- isTimedout = true;
- if (!isBatch) {
- protocol.cancelCurrentQuery();
+ if (protocol != null) {
+ try {
+ isTimedout = true;
+ if (!isBatch) {
+ protocol.cancelCurrentQuery();
+ }
+ protocol.interrupt();
+ } catch (Throwable e) {
+ // eat
}
- protocol.interrupt();
- } catch (Throwable e) {
- // eat
}
},
queryTimeout,
@@ -222,13 +221,10 @@ public class MariaDbStatement implements Statement, Cloneable {
if (timerTaskFuture != null) {
if (!timerTaskFuture.cancel(true)) {
// could not cancel, task either started or already finished
- // we must now wait for task to finish to ensure state modifications are done
+ // we must now wait for task to finish ensuring state modifications are done
try {
timerTaskFuture.get();
- } catch (InterruptedException e) {
- // reset interrupt status
- Thread.currentThread().interrupt();
- } catch (ExecutionException e) {
+ } catch (InterruptedException | ExecutionException | CancellationException e) {
// ignore error, likely due to interrupting during cancel
}
// we don't catch the exception if already canceled, that would indicate we tried
@@ -801,6 +797,14 @@ public class MariaDbStatement implements Statement, Cloneable {
return;
}
connection.pooledConnection.fireStatementClosed(this);
+
+ if (timeoutScheduler != null) {
+ try {
+ timeoutScheduler.shutdown();
+ } catch (Throwable t) {
+ // eat
+ }
+ }
} finally {
protocol = null;
connection = null;
=====================================
src/main/java/org/mariadb/jdbc/util/Options.java
=====================================
@@ -446,9 +446,6 @@ public class Options implements Cloneable {
if (!Objects.equals(credentialType, opt.credentialType)) {
return false;
}
- if (!Objects.equals(nonMappedOptions, opt.nonMappedOptions)) {
- return false;
- }
if (!Objects.equals(tlsSocketType, opt.tlsSocketType)) {
return false;
}
=====================================
src/test/java/org/mariadb/jdbc/ConnectionTest.java
=====================================
@@ -817,7 +817,9 @@ public class ConnectionTest extends BaseTest {
@Test
public void ensureSocketTimeoutState() throws Throwable {
Assume.assumeTrue(
- !"maxscale".equals(System.getenv("srv")) && !"skysql-ha".equals(System.getenv("srv")));
+ !"maxscale".equals(System.getenv("srv"))
+ && !"skysql-ha".equals(System.getenv("srv"))
+ && !"skysql".equals(System.getenv("srv")));
Statement stmt = sharedConnection.createStatement();
stmt.execute("DROP TABLE IF EXISTS ensureSocketTimeoutState");
=====================================
src/test/java/org/mariadb/jdbc/DatatypeCompatibilityTest.java
=====================================
@@ -234,6 +234,7 @@ public class DatatypeCompatibilityTest extends BaseTest {
String columnName =
columnType.replace(" ", "_").replace("(", "_").replace(")", "").replace(",", "_");
try (Statement stmt = sharedConnection.createStatement()) {
+ stmt.execute("DROP TABLE IF EXISTS my_table_" + columnName);
stmt.execute("CREATE TABLE my_table_" + columnName + "(my_col " + columnType + ")");
stmt.execute("FLUSH TABLES");
stmt.execute("INSERT INTO my_table_" + columnName + "(my_col) VALUES (" + strValue + ")");
=====================================
src/test/java/org/mariadb/jdbc/DriverTest.java
=====================================
@@ -1705,6 +1705,8 @@ public class DriverTest extends BaseTest {
@Test
public void testAutoCommit() throws SQLException {
+ Assume.assumeTrue(
+ !"maxscale".equals(System.getenv("srv")) && !"skysql-ha".equals(System.getenv("srv")));
try (Connection connection = setConnection()) {
assertTrue(connection.getAutoCommit());
Statement stmt = connection.createStatement();
=====================================
src/test/java/org/mariadb/jdbc/ScalarFunctionsTest.java
=====================================
@@ -168,10 +168,11 @@ public class ScalarFunctionsTest extends BaseTest {
if (!isMariadbServer()) {
cancelForVersion(5, 5);
}
+ cancelForVersion(8, 0, 28);
queryScalar("SELECT {fn convert(?, SQL_BIGINT)}", 2147483648L, 2147483648L);
queryScalar("SELECT {fn convert(?, SQL_BIGINT)}", BigInteger.valueOf(2147483648L), 2147483648L);
queryScalar("SELECT {fn convert(?, SQL_BIGINT)}", 20, new Object[] {20, 20L});
- if (!isMariadbServer() && minVersion(8, 0, 27)) {
+ if (!isMariadbServer() && minVersion(8, 0, 27) && !minVersion(8, 0, 29)) {
queryScalar(
"SELECT {fn convert(?, SQL_BOOLEAN)}",
true,
=====================================
src/test/java/org/mariadb/jdbc/Sha256AuthenticationTest.java
=====================================
@@ -58,7 +58,7 @@ public class Sha256AuthenticationTest extends BaseTest {
"CREATE USER 'cachingSha256User'@'%' IDENTIFIED WITH caching_sha2_password BY 'password'");
stmt.execute("GRANT SELECT ON *.* TO 'cachingSha256User'@'%'");
} else {
- forceTls = "&enabledSslProtocolSuites=TLSv1.1";
+ forceTls = "&enabledSslProtocolSuites=TLSv1.1,TLSv1.2";
}
}
=====================================
src/test/java/org/mariadb/jdbc/SslTest.java
=====================================
@@ -56,8 +56,10 @@ import static org.junit.Assert.*;
import java.io.*;
import java.nio.file.Paths;
+import java.security.NoSuchAlgorithmException;
import java.sql.*;
import java.util.*;
+import javax.net.ssl.SSLContext;
import org.junit.*;
import org.mariadb.jdbc.failover.TcpProxy;
@@ -163,6 +165,13 @@ public class SslTest extends BaseTest {
@Test
public void enabledSslProtocolSuites() throws SQLException {
+ try {
+ List<String> protocols =
+ Arrays.asList(SSLContext.getDefault().getSupportedSSLParameters().getProtocols());
+ Assume.assumeTrue(protocols.contains("TLSv1.3") && protocols.contains("TLSv1.2"));
+ } catch (NoSuchAlgorithmException e) {
+ // eat
+ }
Assume.assumeTrue(
!"maxscale".equals(System.getenv("srv")) && !"skysql-ha".equals(System.getenv("srv")));
try (Connection con =
@@ -201,7 +210,7 @@ public class SslTest extends BaseTest {
try (Connection con =
setConnection(
baseOptions
- + "&useSsl&trustServerCertificate=true&enabledSslCipherSuites=TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
+ + "&useSsl&trustServerCertificate=true&enabledSslCipherSuites=TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
database,
sslPort)) {
assertNotNull(getSslVersion(con));
=====================================
src/test/java/org/mariadb/jdbc/TimezoneDaylightSavingTimeTest.java
=====================================
@@ -219,6 +219,7 @@ public class TimezoneDaylightSavingTimeTest extends BaseTest {
@Test
public void testTimeStamp() throws SQLException {
Assume.assumeTrue(System.getenv("AURORA") == null && !"skysql-ha".equals(System.getenv("srv")));
+ cancelForVersion(8, 0, 28);
TimeZone.setDefault(parisTimeZone);
try (Connection connection =
setConnection("&serverTimezone=Europe/Paris&useServerPrepStmts=true")) {
@@ -235,7 +236,7 @@ public class TimezoneDaylightSavingTimeTest extends BaseTest {
@Test
public void testTimeStampUtc() throws SQLException {
-
+ cancelForVersion(8, 0, 28);
TimeZone.setDefault(parisTimeZone);
try (Connection connection = setConnection("&serverTimezone=UTC&useServerPrepStmts=true")) {
setSessionTimeZone(connection, "+00:00");
=====================================
src/test/resources/conf.properties
=====================================
@@ -3,4 +3,4 @@ DB_PORT=3306
DB_DATABASE=testj
DB_USER=root
DB_PASSWORD=
-DB_OTHER=
\ No newline at end of file
+DB_OTHER=
View it on GitLab: https://salsa.debian.org/java-team/mariadb-connector-java/-/commit/2bb2c0f10551fe8ffc49eaa56f7dc2e40b22e99b
--
View it on GitLab: https://salsa.debian.org/java-team/mariadb-connector-java/-/commit/2bb2c0f10551fe8ffc49eaa56f7dc2e40b22e99b
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20220902/7c52033b/attachment.htm>
More information about the pkg-java-commits
mailing list