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

zhangliang 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 652fdf65851 Optimize MySQLMetaDataLoaderTest and ensure resource 
safety (#35335)
652fdf65851 is described below

commit 652fdf658516e44c1a67c234b493e293d1e5af33
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Mon May 5 15:58:32 2025 +0800

    Optimize MySQLMetaDataLoaderTest and ensure resource safety (#35335)
    
    - Replace direct MySQLDatabaseType usage with TypedSPILoader
    - Add @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed") annotation 
for test methods- Refactor test methods to use a class-level databaseType field
---
 .../mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java  | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
index ff796177d82..6e238cd6d76 100644
--- 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
+++ 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMe
 import 
org.apache.shardingsphere.infra.database.core.metadata.database.datatype.DataTypeRegistry;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
@@ -46,8 +45,11 @@ import static org.mockito.Mockito.when;
 
 class MySQLMetaDataLoaderTest {
     
-    private final DialectMetaDataLoader dialectMetaDataLoader = 
DatabaseTypedSPILoader.getService(DialectMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "MySQL");
     
+    private final DialectMetaDataLoader dialectMetaDataLoader = 
DatabaseTypedSPILoader.getService(DialectMetaDataLoader.class, databaseType);
+    
+    @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed")
     @Test
     void assertLoadWithoutTables() throws SQLException {
         DataSource dataSource = mockDataSource();
@@ -59,9 +61,10 @@ class MySQLMetaDataLoaderTest {
         when(dataSource.getConnection().prepareStatement("SELECT TABLE_NAME, 
INDEX_NAME, NON_UNIQUE, COLUMN_NAME FROM information_schema.statistics "
                 + "WHERE TABLE_SCHEMA=? and TABLE_NAME IN ('tbl') ORDER BY 
NON_UNIQUE, INDEX_NAME, 
SEQ_IN_INDEX").executeQuery()).thenReturn(indexResultSet);
         DataTypeRegistry.load(dataSource, "MySQL");
-        assertTableMetaDataMap(dialectMetaDataLoader.load(new 
MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", dataSource, new 
MySQLDatabaseType(), "sharding_db")));
+        assertTableMetaDataMap(dialectMetaDataLoader.load(new 
MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", dataSource, 
databaseType, "sharding_db")));
     }
     
+    @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed")
     @Test
     void assertLoadWithTables() throws SQLException {
         DataSource dataSource = mockDataSource();
@@ -74,9 +77,10 @@ class MySQLMetaDataLoaderTest {
                 + "ORDER BY NON_UNIQUE, INDEX_NAME, SEQ_IN_INDEX")
                 .executeQuery()).thenReturn(indexResultSet);
         DataTypeRegistry.load(dataSource, "MySQL");
-        assertTableMetaDataMap(dialectMetaDataLoader.load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), "foo_ds", dataSource, 
new MySQLDatabaseType(), "sharding_db")));
+        assertTableMetaDataMap(dialectMetaDataLoader.load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), "foo_ds", dataSource, 
databaseType, "sharding_db")));
     }
     
+    @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed")
     private DataSource mockDataSource() throws SQLException {
         DataSource result = mock(DataSource.class, RETURNS_DEEP_STUBS);
         ResultSet typeInfoResultSet = mockTypeInfoResultSet();

Reply via email to