Skip to content

Commit 656f96f

Browse files
Add deepCopy to VisibilityFilter
1 parent 763367f commit 656f96f

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

core/src/main/java/org/apache/accumulo/core/iterators/user/VisibilityFilter.java

+9
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ public void init(SortedKeyValueIterator<Key,Value> source, Map<String,String> op
7171
this.cache = new LRUMap<>(1000);
7272
}
7373

74+
@Override
75+
public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) {
76+
VisibilityFilter result = (VisibilityFilter) super.deepCopy(env);
77+
result.filterInvalid = this.filterInvalid;
78+
result.accessEvaluator = this.accessEvaluator;
79+
result.cache = this.cache;
80+
return result;
81+
}
82+
7483
@Override
7584
public boolean accept(Key k, Value v) {
7685
ByteSequence testVis = k.getColumnVisibilityData();

core/src/test/java/org/apache/accumulo/core/iterators/user/VisibilityFilterTest.java

+14
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.apache.accumulo.core.iterators.user;
2020

2121
import static org.junit.jupiter.api.Assertions.assertEquals;
22+
import static org.junit.jupiter.api.Assertions.assertTrue;
2223

2324
import java.io.IOException;
2425
import java.util.ArrayList;
@@ -242,4 +243,17 @@ public void testStaticConfigurators() {
242243
assertEquals(new Authorizations("abc", "def").serialize(), opts.get("auths"));
243244
}
244245

246+
@Test
247+
public void testDeepCopyAfterInit() throws IOException {
248+
IteratorSetting is = new IteratorSetting(1, VisibilityFilter.class);
249+
VisibilityFilter.setAuthorizations(is, new Authorizations("abc"));
250+
Map<String,String> opts = is.getOptions();
251+
Filter filter = new VisibilityFilter();
252+
TreeMap<Key,Value> source = new TreeMap<>();
253+
filter.init(new SortedMapIterator(source), opts, null);
254+
Filter copyFilter = (Filter) filter.deepCopy(null);
255+
Key k = new Key("row", "cf", "cq", "abc");
256+
assertTrue(copyFilter.accept(k, new Value()));
257+
}
258+
245259
}

0 commit comments

Comments
 (0)