From 7382b5f7c1a82ee349ea64e89602684534eaafc2 Mon Sep 17 00:00:00 2001 From: John Blum Date: Mon, 22 Jun 2020 12:39:08 -0700 Subject: [PATCH] DATAGEODE-302 - Refactor of(:TypeFilter) factory method to not double wrap a CompositeTypeFilter. --- .../data/gemfire/support/CompositeTypeFilter.java | 4 +++- .../gemfire/support/CompositeTypeFilterUnitTests.java | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/spring-data-geode/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java b/spring-data-geode/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java index 0f95ec8a..1c263348 100644 --- a/spring-data-geode/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java +++ b/spring-data-geode/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java @@ -161,7 +161,9 @@ public interface CompositeTypeFilter extends TypeFilter { Assert.notNull(typeFilter, "TypeFilter to wrap must not be null"); - return (metadataReader, metadataReaderFactory) -> typeFilter.match(metadataReader, metadataReaderFactory); + return typeFilter instanceof CompositeTypeFilter + ? (CompositeTypeFilter) typeFilter + : (metadataReader, metadataReaderFactory) -> typeFilter.match(metadataReader, metadataReaderFactory); } /** diff --git a/spring-data-geode/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java b/spring-data-geode/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java index c8af5a45..b8cbeda5 100644 --- a/spring-data-geode/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java +++ b/spring-data-geode/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java @@ -68,6 +68,14 @@ public class CompositeTypeFilterUnitTests { assertThat(CompositeTypeFilter.DENY.match(mockMetadataReader, mockMetadataReaderFactory)).isFalse(); } + @Test + public void ofWillNotWrapExistingCompositeTypeFilter() { + + CompositeTypeFilter mockCompositeTypeFilter = mock(CompositeTypeFilter.class); + + assertThat(CompositeTypeFilter.of(mockCompositeTypeFilter)).isSameAs(mockCompositeTypeFilter); + } + @Test public void ofWrapsExistingTypeFilter() {