/** Returns the description of effective filter applied to this service. */
 public FilterSpec getEffectiveFilterSpec() throws DBException {
   FilterSpec spec = getExplicitFilterSpec();
   if (null == spec) {
     FilterFactory factory = getFilterFactory();
     spec = factory.defaultFilterSpec(getFilterSpecReplica());
   }
   return spec;
 }
 /**
  * Returns the filter that is being applied to files to determine whether this service should
  * process them. The filter to apply is determined by the {@link Configuration#SELECTED_FILTER}
  * parameter within this object's {@link Configuration}. When first invoked, this method calls
  * {@link FilterFactory#compileFilter(FilterSpec, ReplicaDTO)} to compile the filter for the
  * replica. Once compiled, the effective filter is re-used in subsequent calls.
  *
  * @return filter implementation
  * @throws DBException if there is an error loading filter specification from the database
  * @throws IOException if there is a problem probing the replica for case-sensitivity
  */
 protected PathFilter getEffectiveFilter() throws DBException, IOException {
   if (null == filter) {
     FilterSpec spec = getExplicitFilterSpec();
     FilterFactory factory = getFilterFactory();
     filter = factory.compileFilter(spec, getFilterSpecReplica());
   }
   return filter;
 }