title: Accumulo custom Filter is not getting called correctly on scan
body: <p>I have written a custom <code>Filter</code> which is pretty much just a ripoff of the provided <code>AgeOffFilter</code> with some extra stuff. My goal is to remove entries from Accumulo based on a custom time field. </p>
  
  <pre><code>public class CustomAgeOffFilter extends Filter {
  </code></pre>
  
  <p>It has the following outline:</p>
  
  <pre><code>public CustomAgeOffFilter()
  @Override public boolean accept(k, v)
  @Override public void init(source, options, env)
  @Override public SortedKeyValueIterator&lt;Key, Value&gt; deepCopy(env)
  @Override public OptionDescriber.IteratorOptions describeOptions()
  @Override public boolean validateOptions(options)
  //... and custom helper methods
  </code></pre>
  
  <p>I compiled my class, placed the jar in <code>$ACCUMULO_HOME/lib</code> on every node in my cluster and restarted it.</p>
  
  <p>I set the iterator through the <code>Accumulo Shell</code> using the following command:</p>
  
  <pre><code>setiter -class my.class.path.CustomAgeOffFilter -n customageoff -p 10 -scan -t myTable
  </code></pre>
  
  <p>Running <code>config -t myTable -f customageoff</code> returns:</p>
  
  <pre><code>---------+-------------------------------------------------+--------------------------------------
  SCOPE    | NAME                                            | VALUE
  ---------+-------------------------------------------------+--------------------------------------
  table    | table.iterator.scan.customageoff .............. | 10,my.class.path.CustomAgeOffFilter
  table    | table.iterator.scan.customageoff.opt.ttl ...... | 1000
  table    | table.iterator.scan.customageoff.opt.custom1 .. | 123
  ---------+-------------------------------------------------+--------------------------------------
  </code></pre>
  
  <p>I am using <code>Accumulo 1.7.2</code> through <code>Cloudera 5.10.0</code>.</p>
  
  <p><strong>The problem</strong></p>
  
  <p>Although my filter is described correctly along with my custom <code>options</code> (verified using the <code>config</code> shell command above), it doesn't enter my <code>@override accept(k,v)</code> method on executing <code>scan</code> from the shell as it seemingly ignores my logic. It also doesn't print out any log4j statements leading me to believe that it isn't executed at all, and instead defaulting to something else. (I have been unsuccessful in attaching a remote debugger). Further, switching <code>true</code> and <code>false</code> on the <code>negate</code> parameter either keeps all of my records or deletes them, so something is definitely executing.</p>
  
  <p>Another observation is that my <code>@override init(source, options, env)</code> isn't called (as it also doesn't produce my log4j statements).</p>
  
  <p>Note: my <code>@override describeOptions()</code> and <code>@override validateOptions(options)</code> methods are both called and print out logs telling me so.</p>
  
  <p>What am I doing wrong here? Thanks</p>