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()));
+  }
+
 }

Reply via email to