code: private void complete() throws IOException
      {
      if( source_ != null)
        {
        try
          {
          thread_.join();
          }
        catch( Exception e)
          {
          logger_.error( "Thread=" + thread_ + " not completed", e);
          }
  
        IOException failure =
          failure_ == null
          ? null
          : new IOException( "Can't write filter output", failure_);
        
        failure_      = null;
        filterInput_  = null;
        source_       = null;
        target_       = null;
        thread_       = null;
  
        if( failure != null)
          {
          throw failure;
          }
        }
      }
docs: Completes filter output.