This is an automated email from the ASF dual-hosted git repository.
ctubbsii pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push:
new 7ac517b44e Add deepCopy to VisibilityFilter (#5385)
7ac517b44e is described below
commit 7ac517b44eb24090571fdb20e15cdb1abe92ebb4
Author: Logan Jones <[email protected]>
AuthorDate: Tue Aug 12 20:19:21 2025 -0400
Add deepCopy to VisibilityFilter (#5385)
---
.../accumulo/core/iterators/user/VisibilityFilter.java | 9 +++++++++
.../accumulo/core/iterators/user/VisibilityFilterTest.java | 14 ++++++++++++++
2 files changed, 23 insertions(+)
diff --git
a/core/src/main/java/org/apache/accumulo/core/iterators/user/VisibilityFilter.java
b/core/src/main/java/org/apache/accumulo/core/iterators/user/VisibilityFilter.java
index c91009bb6f..b1614dbca3 100644
---
a/core/src/main/java/org/apache/accumulo/core/iterators/user/VisibilityFilter.java
+++
b/core/src/main/java/org/apache/accumulo/core/iterators/user/VisibilityFilter.java
@@ -71,6 +71,15 @@ public class VisibilityFilter extends Filter implements
OptionDescriber {
this.cache = new LRUMap<>(1000);
}
+ @Override
+ public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) {
+ VisibilityFilter result = (VisibilityFilter) super.deepCopy(env);
+ result.filterInvalid = this.filterInvalid;
+ result.ve = this.ve;
+ result.cache = this.cache;
+ return result;
+ }
+
@Override
public boolean accept(Key k, Value v) {
ByteSequence testVis = k.getColumnVisibilityData();
diff --git
a/core/src/test/java/org/apache/accumulo/core/iterators/user/VisibilityFilterTest.java
b/core/src/test/java/org/apache/accumulo/core/iterators/user/VisibilityFilterTest.java
index 06140fd9f6..075e2bef33 100644
---
a/core/src/test/java/org/apache/accumulo/core/iterators/user/VisibilityFilterTest.java
+++
b/core/src/test/java/org/apache/accumulo/core/iterators/user/VisibilityFilterTest.java
@@ -19,6 +19,7 @@
package org.apache.accumulo.core.iterators.user;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.util.ArrayList;
@@ -242,4 +243,17 @@ public class VisibilityFilterTest {
assertEquals(new Authorizations("abc", "def").serialize(),
opts.get("auths"));
}
+ @Test
+ public void testDeepCopyAfterInit() throws IOException {
+ IteratorSetting is = new IteratorSetting(1, VisibilityFilter.class);
+ VisibilityFilter.setAuthorizations(is, new Authorizations("abc"));
+ Map<String,String> opts = is.getOptions();
+ Filter filter = new VisibilityFilter();
+ TreeMap<Key,Value> source = new TreeMap<>();
+ filter.init(new SortedMapIterator(source), opts, null);
+ Filter copyFilter = (Filter) filter.deepCopy(null);
+ Key k = new Key("row", "cf", "cq", "abc");
+ assertTrue(copyFilter.accept(k, new Value()));
+ }
+
}