From b59e492f46487770b8be501ec6c58544ee3d4d1f Mon Sep 17 00:00:00 2001 From: Matt Hess Date: Thu, 27 Apr 2023 10:49:02 -0600 Subject: [PATCH] Remove static initializer and fix object graph roots test Signed-off-by: Matt Hess --- .../service/mono/cache/EntityMapWarmer.java | 20 +++++-------------- .../app/service/mono/ServicesAppTest.java | 18 +++++++++++++++++ .../mono/cache/EntityMapWarmerTest.java | 18 ----------------- 3 files changed, 23 insertions(+), 33 deletions(-) diff --git a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/cache/EntityMapWarmer.java b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/cache/EntityMapWarmer.java index 0ea948f227f0..5c3aa77c09fa 100644 --- a/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/cache/EntityMapWarmer.java +++ b/hedera-node/hedera-mono-service/src/main/java/com/hedera/node/app/service/mono/cache/EntityMapWarmer.java @@ -101,21 +101,11 @@ public class EntityMapWarmer { this.nftsAdapter = nftsAdapter; this.tokenRelsAdapter = tokenRelsAdapter; this.threadpool = threadpool; - this.acctsOnDisk = accountsStorageAdapter.get().areOnDisk(); - this.nftsOnDisk = nftsAdapter.get().isVirtual(); - this.tokenRelsOnDisk = tokenRelsAdapter.get().areOnDisk(); - } - - public static EntityMapWarmer getInstance( - Supplier accountsStorageAdapter, - Supplier nftsAdapter, - Supplier tokenRelsAdapter, - GlobalDynamicProperties globalDynamicProperties) { - if (instance == null) { - instance = - new EntityMapWarmer(accountsStorageAdapter, nftsAdapter, tokenRelsAdapter, globalDynamicProperties); - } - return instance; + this.acctsOnDisk = accountsStorageAdapter.get() != null + && accountsStorageAdapter.get().areOnDisk(); + this.nftsOnDisk = nftsAdapter.get() != null && nftsAdapter.get().isVirtual(); + this.tokenRelsOnDisk = + tokenRelsAdapter.get() != null && tokenRelsAdapter.get().areOnDisk(); } /** diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesAppTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesAppTest.java index f6565953af67..2a789a744c72 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesAppTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/ServicesAppTest.java @@ -55,6 +55,9 @@ import com.hedera.node.app.service.mono.state.logic.NetworkCtxManager; import com.hedera.node.app.service.mono.state.logic.ReconnectListener; import com.hedera.node.app.service.mono.state.logic.StandardProcessLogic; +import com.hedera.node.app.service.mono.state.migration.AccountStorageAdapter; +import com.hedera.node.app.service.mono.state.migration.TokenRelStorageAdapter; +import com.hedera.node.app.service.mono.state.migration.UniqueTokenMapAdapter; import com.hedera.node.app.service.mono.state.validation.BasedLedgerValidator; import com.hedera.node.app.service.mono.state.virtual.VirtualMapFactory; import com.hedera.node.app.service.mono.stats.ServicesStatsManager; @@ -92,6 +95,15 @@ class ServicesAppTest { @Mock private PropertySource overridingProps; + @Mock + private AccountStorageAdapter accountsStorageAdapter; + + @Mock + private UniqueTokenMapAdapter nftsAdapter; + + @Mock + private TokenRelStorageAdapter tokenRelsAdapter; + private ServicesApp subject; @BeforeEach @@ -122,6 +134,12 @@ void setUp() { .crypto(cryptography) .selfId(selfId) .build(); + + // Make sure the MutableStateChildren has the needed children to instantiate EntityMapWarmer + subject.workingState().setAccounts(accountsStorageAdapter); + subject.workingState().setTokenAssociations(tokenRelsAdapter); + subject.workingState().setUniqueTokens(nftsAdapter); + assertThat(subject.mapWarmer(), instanceOf(EntityMapWarmer.class)); } @Test diff --git a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/cache/EntityMapWarmerTest.java b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/cache/EntityMapWarmerTest.java index fb1cbab02c6c..eda4e8c14448 100644 --- a/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/cache/EntityMapWarmerTest.java +++ b/hedera-node/hedera-mono-service/src/test/java/com/hedera/node/app/service/mono/cache/EntityMapWarmerTest.java @@ -25,7 +25,6 @@ import static org.mockito.Mockito.verify; import com.google.protobuf.ByteString; -import com.hedera.node.app.service.mono.context.properties.GlobalDynamicProperties; import com.hedera.node.app.service.mono.state.adapters.VirtualMapLike; import com.hedera.node.app.service.mono.state.migration.AccountStorageAdapter; import com.hedera.node.app.service.mono.state.migration.TokenRelStorageAdapter; @@ -61,7 +60,6 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; -import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; @@ -103,22 +101,6 @@ class EntityMapWarmerTest { private final Supplier tokenRelAdptSupplier = () -> tokenRelAdpt; - @Test - void getInstanceReturnsSameReference() { - // given: - final var globalProps = mock(GlobalDynamicProperties.class); - lenient().when(globalProps.cacheCryptoTransferWarmThreads()).thenReturn(3); // Any number > 0 - - // when: - final var firstInstance = - EntityMapWarmer.getInstance(accountAdptSupplier, nftAdptSupplier, tokenRelAdptSupplier, globalProps); - final var secondInstance = - EntityMapWarmer.getInstance(accountAdptSupplier, nftAdptSupplier, tokenRelAdptSupplier, globalProps); - - // then: - Assertions.assertThat(firstInstance).isSameAs(secondInstance); - } - @Test void warmOnNullRoundDoesNotWarm() { // when: