final Future<Void> future = Executors.newFixedThreadPool(1).submit(new Callable<Void>() {
@Override
public Void call() throws Exception {
Writer writer = FileList.createWriter(remoteStdout, false);
Reader reader = FileList.createReader(remoteStdin);
try {
remote.execute(reader, writer);
} finally {
// closes quitetly for piped streams
IOUtils.closeQuietly(writer);