public synchronized void startTrackingDownloadRuntimeForFile(File file)
throws ThreadEvaluatorException {
long curTime = System.currentTimeMillis();
if (++this.currentThreadCount > this.MAX_THREADS)
throw new ThreadEvaluatorException(
"Number of threads exceeds max allows threads");
updateThreadCounts(curTime);
fileAndDownloadingFileInfo.put(file, new DownloadingFileInfo(file,
curTime, this.currentThreadCount));
}