From 187cca27213f2d68ffe3ba993b4e0cccbda40f3d Mon Sep 17 00:00:00 2001 From: Jeremy Landis Date: Mon, 20 Feb 2023 13:11:58 -0500 Subject: [PATCH 1/3] [ci] Add private constructors to classes that cannot be instantiated (all static) --- src/main/java/org/apache/ibatis/io/Resources.java | 2 +- src/main/java/org/apache/ibatis/io/VFS.java | 3 +++ .../java/org/apache/ibatis/reflection/ArrayUtil.java | 3 +++ .../org/apache/ibatis/builder/XmlConfigBuilderTest.java | 3 +++ .../apache/ibatis/databases/blog/StoredProcedures.java | 3 +++ .../org/apache/ibatis/executor/ExecutorTestHelper.java | 3 +++ .../org/apache/ibatis/submitted/dirty_select/Mapper.java | 5 ++++- .../org/apache/ibatis/submitted/dynsql/CustomUtil.java | 3 +++ .../global_variables_defaults/SupportClasses.java | 5 ++++- .../apache/ibatis/submitted/ognlstatic/StaticClass.java | 5 ++++- .../submitted/primitive_result_type/ProductDAO.java | 5 ++++- .../repeatable/BothSelectAndSelectProviderMapper.java | 5 ++++- ...hSelectContainerAndSelectProviderContainerMapper.java | 5 ++++- .../org/apache/ibatis/submitted/repeatable/Mapper.java | 9 +++++++++ .../submitted/serializecircular/UtilityTester.java | 5 ++++- .../sqlprovider/ProviderMethodResolutionTest.java | 8 +++++++- .../ibatis/submitted/sqlprovider/SqlProviderTest.java | 9 +++++++++ 17 files changed, 72 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/apache/ibatis/io/Resources.java b/src/main/java/org/apache/ibatis/io/Resources.java index 2a5a1642011..82a6e8d1d36 100644 --- a/src/main/java/org/apache/ibatis/io/Resources.java +++ b/src/main/java/org/apache/ibatis/io/Resources.java @@ -39,7 +39,7 @@ public class Resources { */ private static Charset charset; - Resources() { + private Resources() { } /** diff --git a/src/main/java/org/apache/ibatis/io/VFS.java b/src/main/java/org/apache/ibatis/io/VFS.java index ee21f9c44d2..c9246ce220e 100644 --- a/src/main/java/org/apache/ibatis/io/VFS.java +++ b/src/main/java/org/apache/ibatis/io/VFS.java @@ -76,6 +76,9 @@ static VFS createVFS() { return vfs; } + + private VFSHolder() { + } } /** diff --git a/src/main/java/org/apache/ibatis/reflection/ArrayUtil.java b/src/main/java/org/apache/ibatis/reflection/ArrayUtil.java index e0d1e9cfc9e..4084c2a1df5 100644 --- a/src/main/java/org/apache/ibatis/reflection/ArrayUtil.java +++ b/src/main/java/org/apache/ibatis/reflection/ArrayUtil.java @@ -152,4 +152,7 @@ public static String toString(Object obj) { } } + private ArrayUtil() { + } + } diff --git a/src/test/java/org/apache/ibatis/builder/XmlConfigBuilderTest.java b/src/test/java/org/apache/ibatis/builder/XmlConfigBuilderTest.java index 3e8db72fd1f..f65c576dcb8 100644 --- a/src/test/java/org/apache/ibatis/builder/XmlConfigBuilderTest.java +++ b/src/test/java/org/apache/ibatis/builder/XmlConfigBuilderTest.java @@ -339,6 +339,9 @@ static class MySqlProvider { public static String provideSql() { return "SELECT 1"; } + + private MySqlProvider() { + } } @Test diff --git a/src/test/java/org/apache/ibatis/databases/blog/StoredProcedures.java b/src/test/java/org/apache/ibatis/databases/blog/StoredProcedures.java index d22ba52e21d..d695f7a8635 100644 --- a/src/test/java/org/apache/ibatis/databases/blog/StoredProcedures.java +++ b/src/test/java/org/apache/ibatis/databases/blog/StoredProcedures.java @@ -56,4 +56,7 @@ public static void selectAuthorViaOutParams(int id, String[] username, String[] bio[0] = rs.getString("bio"); } } + + private StoredProcedures() { + } } diff --git a/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java b/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java index 0c66474b6d4..a29f894467c 100644 --- a/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java +++ b/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java @@ -682,4 +682,7 @@ static MappedStatement prepareInsertAuthorMappedStatementWithBeforeAutoKey(final }).build()).cache(authorCache).keyGenerator(new SelectKeyGenerator(kms, true)).keyProperty("id").build(); } + private ExecutorTestHelper() { + } + } diff --git a/src/test/java/org/apache/ibatis/submitted/dirty_select/Mapper.java b/src/test/java/org/apache/ibatis/submitted/dirty_select/Mapper.java index 65fc52fe40f..d62381826bd 100644 --- a/src/test/java/org/apache/ibatis/submitted/dirty_select/Mapper.java +++ b/src/test/java/org/apache/ibatis/submitted/dirty_select/Mapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,5 +48,8 @@ static class MyProvider { public static String getSql() { return "insert into users (name) values (#{name}) returning id, name"; } + + private MyProvider() { + } } } diff --git a/src/test/java/org/apache/ibatis/submitted/dynsql/CustomUtil.java b/src/test/java/org/apache/ibatis/submitted/dynsql/CustomUtil.java index 3194fc6754b..3ed634e863e 100644 --- a/src/test/java/org/apache/ibatis/submitted/dynsql/CustomUtil.java +++ b/src/test/java/org/apache/ibatis/submitted/dynsql/CustomUtil.java @@ -19,4 +19,7 @@ public class CustomUtil { public static String esc(final String s) { return s.replace("'", "''"); } + + private CustomUtil() { + } } diff --git a/src/test/java/org/apache/ibatis/submitted/global_variables_defaults/SupportClasses.java b/src/test/java/org/apache/ibatis/submitted/global_variables_defaults/SupportClasses.java index f66618ff773..9aa12c073ca 100644 --- a/src/test/java/org/apache/ibatis/submitted/global_variables_defaults/SupportClasses.java +++ b/src/test/java/org/apache/ibatis/submitted/global_variables_defaults/SupportClasses.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -71,6 +71,9 @@ static SupportClasses.CustomCache unwrap(Cache cache) { field.setAccessible(false); } } + + private Utils() { + } } } diff --git a/src/test/java/org/apache/ibatis/submitted/ognlstatic/StaticClass.java b/src/test/java/org/apache/ibatis/submitted/ognlstatic/StaticClass.java index 51bf065af17..04e97e402ca 100644 --- a/src/test/java/org/apache/ibatis/submitted/ognlstatic/StaticClass.java +++ b/src/test/java/org/apache/ibatis/submitted/ognlstatic/StaticClass.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,4 +18,7 @@ public class StaticClass { public static String value = "User1"; + + private StaticClass() { + } } diff --git a/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java b/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java index 015ef90e8ba..b7c8cdd6226 100644 --- a/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java +++ b/src/test/java/org/apache/ibatis/submitted/primitive_result_type/ProductDAO.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,4 +58,7 @@ public static List selectAllProducts() { } } + private ProductDAO() { + } + } diff --git a/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectAndSelectProviderMapper.java b/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectAndSelectProviderMapper.java index aa889e59d82..01c9acc54d9 100644 --- a/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectAndSelectProviderMapper.java +++ b/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectAndSelectProviderMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,6 +28,9 @@ class SqlProvider { public static String getUser() { return "SELECT * FROM users WHERE id = #{id}"; } + + private SqlProvider() { + } } } diff --git a/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectContainerAndSelectProviderContainerMapper.java b/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectContainerAndSelectProviderContainerMapper.java index 45c67b0a71d..3696495fb3b 100644 --- a/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectContainerAndSelectProviderContainerMapper.java +++ b/src/test/java/org/apache/ibatis/submitted/repeatable/BothSelectContainerAndSelectProviderContainerMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,9 @@ class SqlProvider { public static String getUser() { return "SELECT * FROM users WHERE id = #{id}"; } + + private SqlProvider() { + } } } diff --git a/src/test/java/org/apache/ibatis/submitted/repeatable/Mapper.java b/src/test/java/org/apache/ibatis/submitted/repeatable/Mapper.java index 678171f1f31..13eab4cbd56 100644 --- a/src/test/java/org/apache/ibatis/submitted/repeatable/Mapper.java +++ b/src/test/java/org/apache/ibatis/submitted/repeatable/Mapper.java @@ -110,6 +110,9 @@ public static String updateUserNameUsingProvider() { public static String delete() { return "DELETE FROM users WHERE name LIKE '%HSQL%'"; } + + private HsqlSqlProvider() { + } } class DerbySqlProvider { @@ -128,6 +131,9 @@ public static String updateUserNameUsingProvider() { public static String delete() { return "DELETE FROM users WHERE name LIKE '%DERBY%'"; } + + private DerbySqlProvider() { + } } class DefaultSqlProvider { @@ -146,6 +152,9 @@ public static String updateUserNameUsingProvider() { public static String delete() { return "DELETE FROM users WHERE name LIKE '%DEFAULT%'"; } + + private DefaultSqlProvider() { + } } } diff --git a/src/test/java/org/apache/ibatis/submitted/serializecircular/UtilityTester.java b/src/test/java/org/apache/ibatis/submitted/serializecircular/UtilityTester.java index a4ac1e53103..2a78f24bfed 100644 --- a/src/test/java/org/apache/ibatis/submitted/serializecircular/UtilityTester.java +++ b/src/test/java/org/apache/ibatis/submitted/serializecircular/UtilityTester.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,4 +58,7 @@ private static Object deserialzeObject(byte[] aSerializedObject) { } } + private UtilityTester() { + } + } diff --git a/src/test/java/org/apache/ibatis/submitted/sqlprovider/ProviderMethodResolutionTest.java b/src/test/java/org/apache/ibatis/submitted/sqlprovider/ProviderMethodResolutionTest.java index ed5f5155b8b..4c6f80ac9a8 100644 --- a/src/test/java/org/apache/ibatis/submitted/sqlprovider/ProviderMethodResolutionTest.java +++ b/src/test/java/org/apache/ibatis/submitted/sqlprovider/ProviderMethodResolutionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -168,6 +168,9 @@ class ReservedMethodNameBasedSqlProvider { public static String provideSql() { return "DELETE FROM memos WHERE id = 1"; } + + private ReservedMethodNameBasedSqlProvider() { + } } class CustomMethodResolverBasedSqlProvider implements CustomProviderMethodResolver { @@ -247,6 +250,9 @@ class SqlProvider { public static String select() { return "SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS"; } + + private SqlProvider() { + } } } diff --git a/src/test/java/org/apache/ibatis/submitted/sqlprovider/SqlProviderTest.java b/src/test/java/org/apache/ibatis/submitted/sqlprovider/SqlProviderTest.java index 238b80aaff1..669f3add003 100644 --- a/src/test/java/org/apache/ibatis/submitted/sqlprovider/SqlProviderTest.java +++ b/src/test/java/org/apache/ibatis/submitted/sqlprovider/SqlProviderTest.java @@ -723,6 +723,9 @@ public static String provideSql(ProviderContext c) { } } + private SqlProvider() { + } + } } @@ -920,6 +923,9 @@ public static String multipleMap(@Param("map1") Map map1, return "SELECT '" + map1.get("value") + map2.get("value") + "' FROM INFORMATION_SCHEMA.SYSTEM_USERS"; } + private SqlProvider() { + } + } } @@ -996,6 +1002,9 @@ public static String provideSql(ProviderContext context) { return "SELECT '" + context.getDatabaseId() + "' FROM SYSIBM.SYSDUMMY1"; } } + + private SqlProvider() { + } } } From f42b1e7862484ed0831ad753ac96d7b19c767bb0 Mon Sep 17 00:00:00 2001 From: Jeremy Landis Date: Mon, 20 Feb 2023 13:35:28 -0500 Subject: [PATCH 2/3] [test] Remove dumb test - not valid now as class is static and should not have been instantiated --- src/test/java/org/apache/ibatis/io/ResourcesTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/test/java/org/apache/ibatis/io/ResourcesTest.java b/src/test/java/org/apache/ibatis/io/ResourcesTest.java index cff38313396..bdb4c8823da 100644 --- a/src/test/java/org/apache/ibatis/io/ResourcesTest.java +++ b/src/test/java/org/apache/ibatis/io/ResourcesTest.java @@ -170,8 +170,4 @@ void shouldGetReaderWithClassLoader() throws IOException { } - @Test - void stupidJustForCoverage() { - assertNotNull(new Resources()); - } } From 2ed8f7a35fa787f331b6ca2a9850d1d6bf16ae74 Mon Sep 17 00:00:00 2001 From: Jeremy Landis Date: Mon, 20 Feb 2023 13:35:42 -0500 Subject: [PATCH 3/3] [test] Remove invalid extension of class for testing --- src/test/java/org/apache/ibatis/reflection/ArrayUtilTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/apache/ibatis/reflection/ArrayUtilTest.java b/src/test/java/org/apache/ibatis/reflection/ArrayUtilTest.java index 2b02472a997..8131e56bcb9 100644 --- a/src/test/java/org/apache/ibatis/reflection/ArrayUtilTest.java +++ b/src/test/java/org/apache/ibatis/reflection/ArrayUtilTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2022 the original author or authors. + * Copyright 2009-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; -class ArrayUtilTest extends ArrayUtil { +class ArrayUtilTest { @Test void testHashCode() {