You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by to...@apache.org on 2023/05/19 17:14:23 UTC

[shardingsphere] branch master updated: Use the Java 8 Date and Time API instead (#25799)

This is an automated email from the ASF dual-hosted git repository.

totalo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 8bfd8c4d0dd Use the Java 8 Date and Time API instead (#25799)
8bfd8c4d0dd is described below

commit 8bfd8c4d0dd6333798a4b6c602ef949d5c83e901
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat May 20 01:14:05 2023 +0800

    Use the Java 8 Date and Time API instead (#25799)
---
 .../protocol/MySQLDateBinaryProtocolValue.java     | 34 +++++++--------
 .../protocol/MySQLTimeBinaryProtocolValue.java     | 25 ++++++-----
 .../protocol/MySQLDateBinaryProtocolValueTest.java | 48 +++++++++++-----------
 .../keygen/SnowflakeKeyGenerateAlgorithm.java      | 12 ++----
 .../keygen/CosIdSnowflakeKeyGenerateAlgorithm.java | 12 ++----
 .../proxy/frontend/ssl/SSLUtils.java               | 15 ++++---
 .../proxy/frontend/ssl/SSLUtilsTest.java           | 12 +++---
 .../cases/autocommit/MySQLAutoCommitTestCase.java  |  3 +-
 .../autocommit/PostgreSQLAutoCommitTestCase.java   |  3 +-
 9 files changed, 71 insertions(+), 93 deletions(-)

diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValue.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValue.java
index 8dc112aadde..3e5304ea700 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValue.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValue.java
@@ -22,7 +22,8 @@ import org.apache.shardingsphere.db.protocol.mysql.payload.MySQLPacketPayload;
 import java.sql.SQLException;
 import java.sql.SQLFeatureNotSupportedException;
 import java.sql.Timestamp;
-import java.util.Calendar;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.Date;
 
 /**
@@ -49,33 +50,26 @@ public final class MySQLDateBinaryProtocolValue implements MySQLBinaryProtocolVa
         }
     }
     
-    @SuppressWarnings("MagicConstant")
     private Timestamp getTimestampForDate(final MySQLPacketPayload payload) {
-        Calendar result = Calendar.getInstance();
-        result.set(payload.readInt2(), payload.readInt1() - 1, payload.readInt1());
-        return new Timestamp(result.getTimeInMillis());
+        return Timestamp.valueOf(LocalDate.of(payload.readInt2(), payload.readInt1(), payload.readInt1()).atStartOfDay());
     }
     
-    @SuppressWarnings("MagicConstant")
     private Timestamp getTimestampForDatetime(final MySQLPacketPayload payload) {
-        Calendar result = Calendar.getInstance();
-        result.set(payload.readInt2(), payload.readInt1() - 1, payload.readInt1(), payload.readInt1(), payload.readInt1(), payload.readInt1());
-        return new Timestamp(result.getTimeInMillis());
+        return Timestamp.valueOf(LocalDateTime.of(payload.readInt2(), payload.readInt1(), payload.readInt1(), payload.readInt1(), payload.readInt1(), payload.readInt1()));
     }
     
     @Override
     public void write(final MySQLPacketPayload payload, final Object value) {
         Timestamp timestamp = new Timestamp(((Date) value).getTime());
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(timestamp);
-        int year = calendar.get(Calendar.YEAR);
-        int month = calendar.get(Calendar.MONTH) + 1;
-        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
-        int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
-        int minutes = calendar.get(Calendar.MINUTE);
-        int seconds = calendar.get(Calendar.SECOND);
+        LocalDateTime dateTime = timestamp.toLocalDateTime();
+        int year = dateTime.getYear();
+        int month = dateTime.getMonthValue();
+        int dayOfMonth = dateTime.getDayOfMonth();
+        int hours = dateTime.getHour();
+        int minutes = dateTime.getMinute();
+        int seconds = dateTime.getSecond();
         int nanos = timestamp.getNanos();
-        boolean isTimeAbsent = 0 == hourOfDay && 0 == minutes && 0 == seconds;
+        boolean isTimeAbsent = 0 == hours && 0 == minutes && 0 == seconds;
         boolean isNanosAbsent = 0 == nanos;
         if (isTimeAbsent && isNanosAbsent) {
             payload.writeInt1(4);
@@ -85,12 +79,12 @@ public final class MySQLDateBinaryProtocolValue implements MySQLBinaryProtocolVa
         if (isNanosAbsent) {
             payload.writeInt1(7);
             writeDate(payload, year, month, dayOfMonth);
-            writeTime(payload, hourOfDay, minutes, seconds);
+            writeTime(payload, hours, minutes, seconds);
             return;
         }
         payload.writeInt1(11);
         writeDate(payload, year, month, dayOfMonth);
-        writeTime(payload, hourOfDay, minutes, seconds);
+        writeTime(payload, hours, minutes, seconds);
         writeNanos(payload, nanos);
     }
     
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLTimeBinaryProtocolValue.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLTimeBinaryProtocolValue.java
index 8137aaa5925..1ea24d575fd 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLTimeBinaryProtocolValue.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLTimeBinaryProtocolValue.java
@@ -23,7 +23,9 @@ import java.sql.SQLException;
 import java.sql.SQLFeatureNotSupportedException;
 import java.sql.Time;
 import java.sql.Timestamp;
-import java.util.Calendar;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 
 /**
  * Binary protocol value for time for MySQL.
@@ -50,22 +52,19 @@ public final class MySQLTimeBinaryProtocolValue implements MySQLBinaryProtocolVa
     }
     
     private Timestamp getTimestamp(final MySQLPacketPayload payload) {
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(0, Calendar.JANUARY, 0, payload.readInt1(), payload.readInt1(), payload.readInt1());
-        Timestamp result = new Timestamp(calendar.getTimeInMillis());
+        Timestamp result = Timestamp.valueOf(LocalDateTime.of(0, 1, 1, payload.readInt1(), payload.readInt1(), payload.readInt1()));
         result.setNanos(0);
         return result;
     }
     
     @Override
     public void write(final MySQLPacketPayload payload, final Object value) {
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTimeInMillis(((Time) value).getTime());
-        int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
-        int minutes = calendar.get(Calendar.MINUTE);
-        int seconds = calendar.get(Calendar.SECOND);
-        int nanos = new Timestamp(calendar.getTimeInMillis()).getNanos();
-        boolean isTimeAbsent = 0 == hourOfDay && 0 == minutes && 0 == seconds;
+        LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(((Time) value).getTime()), ZoneId.systemDefault());
+        int hours = localDateTime.getHour();
+        int minutes = localDateTime.getMinute();
+        int seconds = localDateTime.getSecond();
+        int nanos = localDateTime.getNano();
+        boolean isTimeAbsent = 0 == hours && 0 == minutes && 0 == seconds;
         boolean isNanosAbsent = 0 == nanos;
         if (isTimeAbsent && isNanosAbsent) {
             payload.writeInt1(0);
@@ -73,11 +72,11 @@ public final class MySQLTimeBinaryProtocolValue implements MySQLBinaryProtocolVa
         }
         if (isNanosAbsent) {
             payload.writeInt1(8);
-            writeTime(payload, hourOfDay, minutes, seconds);
+            writeTime(payload, hours, minutes, seconds);
             return;
         }
         payload.writeInt1(12);
-        writeTime(payload, hourOfDay, minutes, seconds);
+        writeTime(payload, hours, minutes, seconds);
         writeNanos(payload, nanos);
     }
     
diff --git a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValueTest.java b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValueTest.java
index 30464372498..7e7769d5df4 100644
--- a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValueTest.java
+++ b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/command/query/binary/execute/protocol/MySQLDateBinaryProtocolValueTest.java
@@ -26,7 +26,9 @@ import org.mockito.junit.jupiter.MockitoExtension;
 import java.sql.SQLException;
 import java.sql.SQLFeatureNotSupportedException;
 import java.sql.Timestamp;
-import java.util.Calendar;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -49,42 +51,38 @@ class MySQLDateBinaryProtocolValueTest {
     void assertReadWithFourBytes() throws SQLException {
         when(payload.readInt1()).thenReturn(4, 12, 31);
         when(payload.readInt2()).thenReturn(2018);
-        Calendar actual = Calendar.getInstance();
-        actual.setTimeInMillis(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload, false)).getTime());
-        assertThat(actual.get(Calendar.YEAR), is(2018));
-        assertThat(actual.get(Calendar.MONTH), is(Calendar.DECEMBER));
-        assertThat(actual.get(Calendar.DAY_OF_MONTH), is(31));
+        LocalDateTime actual = LocalDateTime.ofInstant(Instant.ofEpochMilli(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload, false)).getTime()), ZoneId.systemDefault());
+        assertThat(actual.getYear(), is(2018));
+        assertThat(actual.getMonthValue(), is(12));
+        assertThat(actual.getDayOfMonth(), is(31));
     }
     
     @Test
     void assertReadWithSevenBytes() throws SQLException {
         when(payload.readInt1()).thenReturn(7, 12, 31, 10, 59, 0);
         when(payload.readInt2()).thenReturn(2018);
-        Calendar actual = Calendar.getInstance();
-        actual.setTimeInMillis(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload, false)).getTime());
-        assertThat(actual.get(Calendar.YEAR), is(2018));
-        assertThat(actual.get(Calendar.MONTH), is(Calendar.DECEMBER));
-        assertThat(actual.get(Calendar.DAY_OF_MONTH), is(31));
-        assertThat(actual.get(Calendar.HOUR_OF_DAY), is(10));
-        assertThat(actual.get(Calendar.MINUTE), is(59));
-        assertThat(actual.get(Calendar.SECOND), is(0));
+        LocalDateTime actual = LocalDateTime.ofInstant(Instant.ofEpochMilli(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload, false)).getTime()), ZoneId.systemDefault());
+        assertThat(actual.getYear(), is(2018));
+        assertThat(actual.getMonthValue(), is(12));
+        assertThat(actual.getDayOfMonth(), is(31));
+        assertThat(actual.getHour(), is(10));
+        assertThat(actual.getMinute(), is(59));
+        assertThat(actual.getSecond(), is(0));
     }
     
     @Test
     void assertReadWithElevenBytes() throws SQLException {
         when(payload.readInt1()).thenReturn(11, 12, 31, 10, 59, 0);
         when(payload.readInt2()).thenReturn(2018);
-        when(payload.readInt4()).thenReturn(232323);
-        Calendar actual = Calendar.getInstance();
-        Timestamp actualTimestamp = (Timestamp) new MySQLDateBinaryProtocolValue().read(payload, false);
-        actual.setTimeInMillis(actualTimestamp.getTime());
-        assertThat(actual.get(Calendar.YEAR), is(2018));
-        assertThat(actual.get(Calendar.MONTH), is(Calendar.DECEMBER));
-        assertThat(actual.get(Calendar.DAY_OF_MONTH), is(31));
-        assertThat(actual.get(Calendar.HOUR_OF_DAY), is(10));
-        assertThat(actual.get(Calendar.MINUTE), is(59));
-        assertThat(actual.get(Calendar.SECOND), is(0));
-        assertThat(actualTimestamp.getNanos(), is(232323000));
+        when(payload.readInt4()).thenReturn(230000);
+        LocalDateTime actual = LocalDateTime.ofInstant(Instant.ofEpochMilli(((Timestamp) new MySQLDateBinaryProtocolValue().read(payload, false)).getTime()), ZoneId.systemDefault());
+        assertThat(actual.getYear(), is(2018));
+        assertThat(actual.getMonthValue(), is(12));
+        assertThat(actual.getDayOfMonth(), is(31));
+        assertThat(actual.getHour(), is(10));
+        assertThat(actual.getMinute(), is(59));
+        assertThat(actual.getSecond(), is(0));
+        assertThat(actual.getNano(), is(230000000));
     }
     
     @Test
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/keygen/SnowflakeKeyGenerateAlgorithm.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/keygen/SnowflakeKeyGenerateAlgorithm.java
index abd453950e2..1b24020036f 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/keygen/SnowflakeKeyGenerateAlgorithm.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/keygen/SnowflakeKeyGenerateAlgorithm.java
@@ -26,7 +26,9 @@ import org.apache.shardingsphere.sharding.exception.algorithm.keygen.KeyGenerate
 import org.apache.shardingsphere.sharding.exception.algorithm.keygen.SnowflakeClockMoveBackException;
 import org.apache.shardingsphere.sharding.spi.KeyGenerateAlgorithm;
 
-import java.util.Calendar;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.Properties;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
@@ -85,13 +87,7 @@ public final class SnowflakeKeyGenerateAlgorithm implements KeyGenerateAlgorithm
     private int maxTolerateTimeDifferenceMillis;
     
     static {
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(2016, Calendar.NOVEMBER, 1);
-        calendar.set(Calendar.HOUR_OF_DAY, 0);
-        calendar.set(Calendar.MINUTE, 0);
-        calendar.set(Calendar.SECOND, 0);
-        calendar.set(Calendar.MILLISECOND, 0);
-        EPOCH = calendar.getTimeInMillis();
+        EPOCH = LocalDateTime.of(2016, 11, 1, 0, 0, 0).toInstant(ZoneOffset.systemDefault().getRules().getOffset(Instant.now())).toEpochMilli();
     }
     
     @Override
diff --git a/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java b/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java
index 9d772d3e7ae..5ba8f7cb701 100644
--- a/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java
+++ b/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java
@@ -29,7 +29,9 @@ import org.apache.shardingsphere.sharding.cosid.algorithm.CosIdAlgorithmConstant
 import org.apache.shardingsphere.sharding.exception.ShardingPluginException;
 import org.apache.shardingsphere.sharding.spi.KeyGenerateAlgorithm;
 
-import java.util.Calendar;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.Properties;
 
 /**
@@ -52,13 +54,7 @@ public final class CosIdSnowflakeKeyGenerateAlgorithm implements KeyGenerateAlgo
     private long epoch;
     
     static {
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(2016, Calendar.NOVEMBER, 1);
-        calendar.set(Calendar.HOUR_OF_DAY, 0);
-        calendar.set(Calendar.MINUTE, 0);
-        calendar.set(Calendar.SECOND, 0);
-        calendar.set(Calendar.MILLISECOND, 0);
-        DEFAULT_EPOCH = calendar.getTimeInMillis();
+        DEFAULT_EPOCH = LocalDateTime.of(2016, 11, 1, 0, 0, 0).toInstant(ZoneOffset.systemDefault().getRules().getOffset(Instant.now())).toEpochMilli();
     }
     
     @Override
diff --git a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtils.java b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtils.java
index 2750ee14abf..b2c67fc4c7d 100644
--- a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtils.java
+++ b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtils.java
@@ -23,7 +23,6 @@ import lombok.SneakyThrows;
 import org.bouncycastle.asn1.x500.X500Name;
 import org.bouncycastle.asn1.x500.X500NameBuilder;
 import org.bouncycastle.asn1.x500.style.BCStyle;
-import org.bouncycastle.cert.X509v3CertificateBuilder;
 import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
 import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
@@ -40,7 +39,9 @@ import java.security.SecureRandom;
 import java.security.Security;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
-import java.util.Calendar;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
@@ -75,15 +76,13 @@ public final class SSLUtils {
     @SneakyThrows({OperatorCreationException.class, CertificateException.class})
     public static X509Certificate generateSelfSignedX509Certificate(final KeyPair keyPair) {
         long now = System.currentTimeMillis();
-        Date startDate = new Date(now - TimeUnit.DAYS.toMillis(1));
+        Date startDate = Date.from(LocalDateTime.ofInstant(Instant.ofEpochMilli(now - TimeUnit.DAYS.toMillis(1)), ZoneId.systemDefault()).atZone(ZoneId.systemDefault()).toInstant());
         X500Name dnName = new X500NameBuilder(BCStyle.INSTANCE)
                 .addRDN(BCStyle.CN, "").addRDN(BCStyle.OU, "").addRDN(BCStyle.O, "").addRDN(BCStyle.L, "").addRDN(BCStyle.ST, "").addRDN(BCStyle.C, "").addRDN(BCStyle.E, "").build();
         BigInteger certSerialNumber = new BigInteger(Long.toString(now));
-        Calendar endCalendar = Calendar.getInstance();
-        endCalendar.setTime(startDate);
-        endCalendar.add(Calendar.YEAR, 100);
+        Date endDate = Date.from(
+                LocalDateTime.ofInstant(Instant.ofEpochMilli(startDate.getTime() + TimeUnit.DAYS.toMillis(365 * 100)), ZoneId.systemDefault()).atZone(ZoneId.systemDefault()).toInstant());
         ContentSigner contentSigner = new JcaContentSignerBuilder("SHA256WithRSA").build(keyPair.getPrivate());
-        X509v3CertificateBuilder builder = new JcaX509v3CertificateBuilder(dnName, certSerialNumber, startDate, endCalendar.getTime(), dnName, keyPair.getPublic());
-        return new JcaX509CertificateConverter().getCertificate(builder.build(contentSigner));
+        return new JcaX509CertificateConverter().getCertificate(new JcaX509v3CertificateBuilder(dnName, certSerialNumber, startDate, endDate, dnName, keyPair.getPublic()).build(contentSigner));
     }
 }
diff --git a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtilsTest.java b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtilsTest.java
index b2bf071db98..9d057ff03cd 100644
--- a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtilsTest.java
+++ b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/ssl/SSLUtilsTest.java
@@ -28,8 +28,9 @@ import java.security.cert.CertificateException;
 import java.security.cert.CertificateExpiredException;
 import java.security.cert.CertificateNotYetValidException;
 import java.security.cert.X509Certificate;
-import java.util.Calendar;
+import java.time.Instant;
 import java.util.Date;
+import java.util.concurrent.TimeUnit;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -51,18 +52,15 @@ class SSLUtilsTest {
     void assertGenerateSelfSignedX509Certificate() {
         KeyPair keyPair = SSLUtils.generateRSAKeyPair();
         X509Certificate actual = SSLUtils.generateSelfSignedX509Certificate(keyPair);
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(new Date());
-        calendar.add(Calendar.YEAR, 99);
         try {
             actual.checkValidity(new Date());
-            actual.checkValidity(calendar.getTime());
-        } catch (CertificateExpiredException | CertificateNotYetValidException ex) {
+            actual.checkValidity(Date.from(Instant.ofEpochMilli(System.currentTimeMillis() + TimeUnit.DAYS.toMillis(365 * 99))));
+        } catch (final CertificateExpiredException | CertificateNotYetValidException ex) {
             fail(ex);
         }
         try {
             actual.verify(keyPair.getPublic());
-        } catch (CertificateException | NoSuchAlgorithmException | InvalidKeyException | NoSuchProviderException | SignatureException ex) {
+        } catch (final CertificateException | NoSuchAlgorithmException | InvalidKeyException | NoSuchProviderException | SignatureException ex) {
             fail(ex);
         }
         assertThrows(SignatureException.class, () -> actual.verify(SSLUtils.generateRSAKeyPair().getPublic()));
diff --git a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/MySQLAutoCommitTestCase.java b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/MySQLAutoCommitTestCase.java
index 2c725b4d7e3..c83052b3493 100644
--- a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/MySQLAutoCommitTestCase.java
+++ b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/MySQLAutoCommitTestCase.java
@@ -59,8 +59,7 @@ public final class MySQLAutoCommitTestCase extends BaseTransactionTestCase {
             assertFalse(executeQueryWithLog(connection2, "select * from account;").next());
             connection1.commit();
             Awaitility.await().atMost(1L, TimeUnit.SECONDS).pollDelay(200L, TimeUnit.MILLISECONDS).until(
-                    () -> executeQueryWithLog(connection2, "select * from account;").next()
-            );
+                    () -> executeQueryWithLog(connection2, "select * from account;").next());
             assertTrue(executeQueryWithLog(connection2, "select * from account;").next());
         }
     }
diff --git a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/PostgreSQLAutoCommitTestCase.java b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/PostgreSQLAutoCommitTestCase.java
index 1e4debc7788..09b53eecaea 100644
--- a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/PostgreSQLAutoCommitTestCase.java
+++ b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/transaction/cases/autocommit/PostgreSQLAutoCommitTestCase.java
@@ -58,8 +58,7 @@ public final class PostgreSQLAutoCommitTestCase extends BaseTransactionTestCase
             assertFalse(executeQueryWithLog(connection2, "select * from account;").next());
             connection1.commit();
             Awaitility.await().atMost(1L, TimeUnit.SECONDS).pollDelay(200L, TimeUnit.MILLISECONDS).until(
-                    () -> executeQueryWithLog(connection2, "select * from account;").next()
-            );
+                    () -> executeQueryWithLog(connection2, "select * from account;").next());
             assertTrue(executeQueryWithLog(connection2, "select * from account;").next());
         }
     }