final public FilterBase addFilter(final IFilter filter){
  if (filter == null)   throw new IllegalArgumentException();
  if (filterChain == null) {
synchronized (this) {
      if (filterChain == null) {
        filterChain=Collections.synchronizedList(new LinkedList<IFilter>());
      }
    }
  }
  filterChain.add(filter);
  return this;
}

final public FilterBase addFilter ( final IFilter filter ) { if ( filter == null ) throw new IllegalArgumentException ( ) ; if ( filterChain == null ) { synchronized ( this ) { if ( filterChain == null ) { filterChain = Collections . synchronizedList ( new LinkedList < IFilter > ( ) ) ; } } } filterChain . add ( filter ) ; return this ; }
add a filter to the end of this filter chain .
