From f4ea674d60667986b58eb6957c421a48922b091f Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Tue, 24 Nov 2020 22:16:14 +1300 Subject: [PATCH] #2108 - ebean-k8scache and ebean-cluster not invalidated when only remoteTableMod or remoteCacheEvent --- .../transaction/RemoteTransactionEvent.java | 4 ++- .../RemoteTransactionEventTest.java | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 ebean-core/src/test/java/io/ebeaninternal/server/transaction/RemoteTransactionEventTest.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java index 8e328e2a2..50480c043 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/RemoteTransactionEvent.java @@ -152,7 +152,9 @@ public class RemoteTransactionEvent implements Runnable, BinaryWritable { public boolean isEmpty() { return beanPersistList.isEmpty() && (tableList == null || tableList.isEmpty()) - && (deleteByIdMap == null || deleteByIdMap.isEmpty()); + && (deleteByIdMap == null || deleteByIdMap.isEmpty()) + && remoteTableMod == null + && remoteCacheEvent == null; } public void addBeanPersistIds(BeanPersistIds beanPersist) { diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/transaction/RemoteTransactionEventTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/transaction/RemoteTransactionEventTest.java new file mode 100644 index 000000000..bea6709f2 --- /dev/null +++ b/ebean-core/src/test/java/io/ebeaninternal/server/transaction/RemoteTransactionEventTest.java @@ -0,0 +1,32 @@ +package io.ebeaninternal.server.transaction; + +import io.ebeaninternal.server.cache.RemoteCacheEvent; +import org.junit.Test; + +import java.util.Collections; +import java.util.HashSet; + +import static org.assertj.core.api.Assertions.assertThat; + +public class RemoteTransactionEventTest { + + @Test + public void isEmpty_when_remoteCacheEvent_expect_false() { + + RemoteTransactionEvent event = new RemoteTransactionEvent("db"); + RemoteCacheEvent remote = new RemoteCacheEvent(true); + event.addRemoteCacheEvent(remote); + + assertThat(event.isEmpty()).isFalse(); + } + + @Test + public void isEmpty_when_remoteTableMod_expect_false() { + + RemoteTransactionEvent event = new RemoteTransactionEvent("db"); + RemoteTableMod remote = new RemoteTableMod(new HashSet<>(Collections.singletonList("junk"))); + event.addRemoteTableMod(remote); + + assertThat(event.isEmpty()).isFalse(); + } +}