Program: 3872
Project: 3872
Buggy source:
/** 
 * Creates a new ManagedDownload to download the given files. You must set initial source via   {@link #addInitialSources}, set the save file via   {@link #setSaveFile(File,String,boolean)}, and call   {@link #initialize} prior to starting this download.
 * @param downloadStateMulticaster TODO
 */
@Inject protected ManagedDownloaderImpl(SaveLocationManager saveLocationManager,DownloadManager downloadManager,FileManager fileManager,IncompleteFileManager incompleteFileManager,DownloadCallback downloadCallback,NetworkManager networkManager,AlternateLocationFactory alternateLocationFactory,RequeryManagerFactory requeryManagerFactory,QueryRequestFactory queryRequestFactory,OnDemandUnicaster onDemandUnicaster,DownloadWorkerFactory downloadWorkerFactory,AltLocManager altLocManager,ContentManager contentManager,SourceRankerFactory sourceRankerFactory,UrnCache urnCache,VerifyingFileFactory verifyingFileFactory,DiskController diskController,IPFilter ipFilter,@Named("String_Node_Str") ScheduledExecutorService backgroundExecutor,Provider<MessageRouter> messageRouter,Provider<HashTreeCache> tigerTreeCache,ApplicationServices applicationServices,RemoteFileDescFactory remoteFileDescFactory,Provider<PushList> pushListProvider,SocketsManager socketsManager,@Named("String_Node_Str") EventMulticaster<DownloadStateEvent> downloadStateMulticaster){
  super(saveLocationManager);
  this.listeners=downloadStateMulticaster;
  this.downloadManager=downloadManager;
  this.fileManager=fileManager;
  this.incompleteFileManager=incompleteFileManager;
  this.downloadCallback=downloadCallback;
  this.networkManager=networkManager;
  this.alternateLocationFactory=alternateLocationFactory;
  this.socketsManager=socketsManager;
  this.requeryManager=requeryManagerFactory.createRequeryManager(new RequeryListenerImpl());
  this.queryRequestFactory=queryRequestFactory;
  this.onDemandUnicaster=onDemandUnicaster;
  this.downloadWorkerFactory=downloadWorkerFactory;
  this.altLocManager=altLocManager;
  this.contentManager=contentManager;
  this.sourceRankerFactory=sourceRankerFactory;
  this.urnCache=urnCache;
  this.verifyingFileFactory=verifyingFileFactory;
  this.diskController=diskController;
  this.ipFilter=ipFilter;
  this.backgroundExecutor=backgroundExecutor;
  this.messageRouter=messageRouter;
  this.tigerTreeCache=tigerTreeCache;
  this.applicationServices=applicationServices;
  this.remoteFileDescFactory=remoteFileDescFactory;
  this.cachedRFDs=new HashSet<RemoteFileDesc>();
  this.pushListProvider=pushListProvider;
}

Fixed version (ground truth):
/** 
 * Creates a new ManagedDownload to download the given files. You must set initial source via   {@link #addInitialSources}, set the save file via   {@link #setSaveFile(File,String,boolean)}, and call   {@link #initialize} prior to starting this download.
 * @param downloadStateMulticaster TODO
 */
@Inject protected ManagedDownloaderImpl(SaveLocationManager saveLocationManager,DownloadManager downloadManager,FileManager fileManager,IncompleteFileManager incompleteFileManager,DownloadCallback downloadCallback,NetworkManager networkManager,AlternateLocationFactory alternateLocationFactory,RequeryManagerFactory requeryManagerFactory,QueryRequestFactory queryRequestFactory,OnDemandUnicaster onDemandUnicaster,DownloadWorkerFactory downloadWorkerFactory,AltLocManager altLocManager,ContentManager contentManager,SourceRankerFactory sourceRankerFactory,UrnCache urnCache,VerifyingFileFactory verifyingFileFactory,DiskController diskController,IPFilter ipFilter,@Named("String_Node_Str") ScheduledExecutorService backgroundExecutor,Provider<MessageRouter> messageRouter,Provider<HashTreeCache> tigerTreeCache,ApplicationServices applicationServices,RemoteFileDescFactory remoteFileDescFactory,Provider<PushList> pushListProvider,SocketsManager socketsManager,@Named("String_Node_Str") ListeningExecutorService downloadStateProcessingQueue){
  super(saveLocationManager);
  this.listeners=new AsynchronousMulticaster<DownloadStateEvent>(downloadStateProcessingQueue);
  this.downloadManager=downloadManager;
  this.fileManager=fileManager;
  this.incompleteFileManager=incompleteFileManager;
  this.downloadCallback=downloadCallback;
  this.networkManager=networkManager;
  this.alternateLocationFactory=alternateLocationFactory;
  this.socketsManager=socketsManager;
  this.requeryManager=requeryManagerFactory.createRequeryManager(new RequeryListenerImpl());
  this.queryRequestFactory=queryRequestFactory;
  this.onDemandUnicaster=onDemandUnicaster;
  this.downloadWorkerFactory=downloadWorkerFactory;
  this.altLocManager=altLocManager;
  this.contentManager=contentManager;
  this.sourceRankerFactory=sourceRankerFactory;
  this.urnCache=urnCache;
  this.verifyingFileFactory=verifyingFileFactory;
  this.diskController=diskController;
  this.ipFilter=ipFilter;
  this.backgroundExecutor=backgroundExecutor;
  this.messageRouter=messageRouter;
  this.tigerTreeCache=tigerTreeCache;
  this.applicationServices=applicationServices;
  this.remoteFileDescFactory=remoteFileDescFactory;
  this.cachedRFDs=new HashSet<RemoteFileDesc>();
  this.pushListProvider=pushListProvider;
}