public void finishedFetcher() { synchronized(this) { if(finishedFetcher) { if(logMINOR) Logger.minor(this, "Already finishedFetcher"); return; } finishedFetcher = true; if(completeViaTruncation && !cancelled) return; // Ignore. if(!finishedEncoding) return; } closeOffThread(); }