From 371e03023525a5e3a967ae9e4f33430ff5cfdeb5 Mon Sep 17 00:00:00 2001 From: zstan Date: Tue, 7 Apr 2026 10:32:46 +0300 Subject: [PATCH 1/2] IGNITE-28476 Fix NPE during WalArchiveSizeConfigurationTest#testIncorrectMaxArchiveSizeConfiguration run --- .../GridCacheDatabaseSharedManager.java | 3 ++- .../wal/WalArchiveSizeConfigurationTest.java | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java index 311e34ab81ca3..b9a9642ba445f 100755 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java @@ -1126,7 +1126,8 @@ else if (restored != null) if (defrgMgr != null) defrgMgr.cancel(); - checkpointManager.stop(cancel); + if (checkpointManager != null) + checkpointManager.stop(cancel); super.onKernalStop0(cancel); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java index f051337641c3d..04434530e53d6 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java @@ -28,6 +28,7 @@ import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.testframework.ListeningTestLogger; +import org.apache.ignite.testframework.LogListener; import org.apache.ignite.testframework.junits.WithSystemProperty; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.junit.Test; @@ -40,12 +41,16 @@ * Test suite for checking WAL archive size configuration validation. */ public class WalArchiveSizeConfigurationTest extends GridCommonAbstractTest { + /** Log listener. */ + private ListeningTestLogger listeningLog; + /** {@inheritDoc} */ @Override protected void beforeTest() throws Exception { super.beforeTest(); stopAllGrids(); cleanPersistenceDir(); + listeningLog = new ListeningTestLogger(log()); } /** {@inheritDoc} */ @@ -54,6 +59,13 @@ public class WalArchiveSizeConfigurationTest extends GridCommonAbstractTest { stopAllGrids(); cleanPersistenceDir(); + listeningLog.clearListeners(); + } + + /** {@inheritDoc} */ + @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { + return super.getConfiguration(igniteInstanceName) + .setGridLogger(listeningLog); } /** @@ -85,7 +97,7 @@ public void testPersistentConfiguration() throws Exception { * Checks that an exception is thrown if WAL segment size is larger than max WAL archive size. */ @Test - public void testIncorrectMaxArchiveSizeConfiguration() throws Exception { + public void testIncorrectMaxArchiveSizeConfiguration() { DataStorageConfiguration dataStorageConfiguration = new DataStorageConfiguration() .setWalSegmentSize((int)U.MB) .setMaxWalArchiveSize(10) @@ -93,12 +105,17 @@ public void testIncorrectMaxArchiveSizeConfiguration() throws Exception { new DataRegionConfiguration().setPersistenceEnabled(true) ); + LogListener npeChecker = LogListener.matches(NullPointerException.class.getName()).build(); + listeningLog.registerListener(npeChecker); + assertThrowsAnyCause( log, () -> startGrid(0, (IgniteConfiguration cfg) -> cfg.setDataStorageConfiguration(dataStorageConfiguration)), IgniteCheckedException.class, "maxWalArchiveSize must be no less than" ); + + assertFalse(npeChecker.check()); } /** From d9f798aa6b109dc86b58e95fd02bcfabd7b2069d Mon Sep 17 00:00:00 2001 From: zstan Date: Fri, 10 Apr 2026 16:29:35 +0300 Subject: [PATCH 2/2] fix after review --- .../wal/WalArchiveSizeConfigurationTest.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java index 04434530e53d6..9df8043bb8bd0 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalArchiveSizeConfigurationTest.java @@ -41,16 +41,12 @@ * Test suite for checking WAL archive size configuration validation. */ public class WalArchiveSizeConfigurationTest extends GridCommonAbstractTest { - /** Log listener. */ - private ListeningTestLogger listeningLog; - /** {@inheritDoc} */ @Override protected void beforeTest() throws Exception { super.beforeTest(); stopAllGrids(); cleanPersistenceDir(); - listeningLog = new ListeningTestLogger(log()); } /** {@inheritDoc} */ @@ -59,13 +55,6 @@ public class WalArchiveSizeConfigurationTest extends GridCommonAbstractTest { stopAllGrids(); cleanPersistenceDir(); - listeningLog.clearListeners(); - } - - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { - return super.getConfiguration(igniteInstanceName) - .setGridLogger(listeningLog); } /** @@ -105,12 +94,17 @@ public void testIncorrectMaxArchiveSizeConfiguration() { new DataRegionConfiguration().setPersistenceEnabled(true) ); + ListeningTestLogger listeningLog = new ListeningTestLogger(); LogListener npeChecker = LogListener.matches(NullPointerException.class.getName()).build(); listeningLog.registerListener(npeChecker); assertThrowsAnyCause( log, - () -> startGrid(0, (IgniteConfiguration cfg) -> cfg.setDataStorageConfiguration(dataStorageConfiguration)), + () -> startGrid(0, (IgniteConfiguration cfg) -> + cfg + .setDataStorageConfiguration(dataStorageConfiguration) + .setGridLogger(listeningLog) + ), IgniteCheckedException.class, "maxWalArchiveSize must be no less than" );