@Override
public Void call() throws Exception {
LOG.info("TG-EXTRACTOR-12003", subcommand, info.getId(), info.getTableName());
Process process = builder.start();
try {
Thread stdout = new StreamRedirectThread(process.getInputStream(), System.out);
stdout.setDaemon(true);
stdout.start();
Thread stderr = new StreamRedirectThread(process.getErrorStream(), System.err);
stderr.setDaemon(true);
stderr.start();
stdout.join();
stderr.join();
int exitCode = process.waitFor();
if (exitCode != 0) {
throw new IOException(MessageFormat.format(
"Cache builder returns unexpected exit code: {0}",
exitCode));