code: protected Thread copy(final InputStream in, final Writer out)
  	{
  		Runnable r = () -> {
  			try
  			{
  				StreamUtil.streamCopy(in, out);
  			}
  			catch (IOException e)
  			{
  				try
  				{
  					out.flush();
  				}
  				catch (Throwable t)
  				{
  				}
  
  				unexpectedFailure(e);
  			}
  		};
  
  		Thread t = new Thread(r);
  		t.setName(this + " - IOCopy " + in + " to " + out);
  		t.setDaemon(true);
  		t.start();
  
  		return t;
  	}
docs: Commence a background copy