[
https://issues.apache.org/jira/browse/ACCUMULO-2501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13940663#comment-13940663
]
Keith Turner commented on ACCUMULO-2501:
----------------------------------------
Russ use {{git format-patch}} as described at
http://accumulo.apache.org/git.html. That way when a commiter applies your
patch, it will automatically put your name in the git metadata.
On the mailing list you mentioned an interesting use case where you had a
RowFilter wrapping a RowFilter that was deep copied. This would make for a
really nice unit test to include w/ the patch.
> Add deepCopy to RowFilter
> -------------------------
>
> Key: ACCUMULO-2501
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2501
> Project: Accumulo
> Issue Type: Improvement
> Reporter: Russ Weeks
> Priority: Minor
>
> It would be nice for subclasses of RowFilter to be chainable, for this they
> need to provide an implementation of deepCopy. Adding a base implementation
> in RowFilter would make things easier.
> Here's a patch (taken from git commit 23980d3)... please let me know if I'm
> missing something, maybe there's more to it than I can see?
> {code}
> diff --git
> a/core/src/main/java/org/apache/accumulo/core/iterators/user/RowFilter.java
> b/core/src/main/java/org/apache/accumulo/core/iterators/user/RowFilter.java
> index a232796..ad1e4a0 100644
> ---
> a/core/src/main/java/org/apache/accumulo/core/iterators/user/RowFilter.java
> +++
> b/core/src/main/java/org/apache/accumulo/core/iterators/user/RowFilter.java
> @@ -139,7 +139,20 @@ public abstract class RowFilter extends WrappingIterator
> {
> super.init(source, options, env);
> this.decisionIterator = new RowIterator(source.deepCopy(env));
> }
> -
> +
> + @Override
> + public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env)
> {
> + RowFilter newInstance;
> + try {
> + newInstance = getClass().newInstance();
> + } catch (Exception e) {
> + throw new RuntimeException(e);
> + }
> + newInstance.setSource(getSource().deepCopy(env));
> + newInstance.decisionIterator = new
> RowIterator(getSource().deepCopy(env));
> + return newInstance;
> + }
> +
> @Override
> public boolean hasTop() {
> return hasTop && super.hasTop();
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)