DecompressorThreadManager decompressorManager = new DecompressorThreadManager(pipeIn, decompressors, maxLen);
pipeIn = decompressorManager.execute();
ClientGetWorkerThread worker = new ClientGetWorkerThread(new BufferedInputStream(pipeIn), output, null, null, null, false, null, null, null, context.linkFilterExceptionProvider);
worker.start();
streamGenerator.writeTo(pipeOut, context);
decompressorManager.waitFinished();
worker.waitFinished();
} else streamGenerator.writeTo(output, context);
// We want to see anything thrown when these are closed.
output.close(); output = null;
pipeOut.close(); pipeOut = null;