### Question:
FieldAgeOffFilter extends AppliedRule { public void init(FilterOptions options) { init(options, null); }  @Override boolean accept(AgeOffPeriod period, Key k, Value v); void init(FilterOptions options); void init(FilterOptions options, IteratorEnvironment iterEnv); @Override boolean isFilterRuleApplied(); static final String OPTION_PREFIX; }### Answer:
@Test public void testIterEnvNotLostOnDeepCopy() { EditableAccumuloConfiguration conf = new EditableAccumuloConfiguration(AccumuloConfiguration.getDefaultConfiguration()); conf.put("table.custom.isindextable", "true"); iterEnv.setConf(conf); long tenSecondsAgo = System.currentTimeMillis() - (10L * ONE_SEC); FieldAgeOffFilter ageOffFilter = new FieldAgeOffFilter(); FilterOptions filterOptions = createFilterOptionsWithPattern(); filterOptions.setTTL(5L); filterOptions.setTTLUnits(AgeOffTtlUnits.SECONDS); filterOptions.setOption("fields", "field_y,field_z\\x00my-uuid"); filterOptions.setOption("field_z\\x00my-uuid.ttl", "2"); filterOptions.setOption("field_y.ttl", "2"); ageOffFilter.init(filterOptions, iterEnv); Assert.assertNotNull("IteratorEnvironment should not be null after init!", ageOffFilter.iterEnv); ageOffFilter = (FieldAgeOffFilter) ageOffFilter.deepCopy(tenSecondsAgo); Assert.assertNotNull("IteratorEnvironment should not be null after deep copy!", ageOffFilter.iterEnv); }