try {
// ensure we actually have a valid hudson launcher
if (null == hudsonLauncher) {
hudsonLauncher = Hudson.getInstance().createLauncher(new StreamTaskListener(System.out));
}
TaskListener listener = hudsonLauncher.getListener();
// hudsonOut->p4in->reader
FastPipedOutputStream hudsonOut = new FastPipedOutputStream();
FastPipedInputStream p4in = new FastPipedInputStream(hudsonOut);
//input = p4in;
final OutputStream out = hudsonOut == null ? null : new RemoteOutputStream(hudsonOut);
remoteCall.setEnv(env);
remoteCall.setP4exe(p4exe);
remoteCall.setOut(out);
remoteCall.setWorkDir(filePath.getRemote());
remoteCall.setListener(listener);
remoteCall.setFilter(filter);
remoteCall.setP4Ticket(p4ticket);
LogPrinter logPrinter = new LogPrinter(listener.getLogger(), p4in);
logPrinter.start();
filePath.act(remoteCall);
logPrinter.join();
} catch (Exception e) {