Program: 94714
Project: 94714
Buggy source:
protected void openStreams() throws IncomingFileTransferException {
  try {
    final IFileStore fileStore=EFS.getStore(new URI(getRemoteFileURL().getPath()));
    final IFileInfo info=fileStore.fetchInfo();
    setFileLength(info.getLength());
    setInputStream(fileStore.openInputStream(0,null));
    listener.handleTransferEvent(new IIncomingFileTransferReceiveStartEvent(){
      private static final long serialVersionUID=5693211912862160540L;
      public IFileID getFileID(){
        return remoteFileID;
      }
      public IIncomingFileTransfer receive(      File localFileToSave) throws IOException {
        return receive(localFileToSave,null);
      }
      public IIncomingFileTransfer receive(      File localFileToSave,      FileTransferJob fileTransferJob) throws IOException {
        setOutputStream(new BufferedOutputStream(new FileOutputStream(localFileToSave)));
        setupAndScheduleJob(fileTransferJob);
        return RetrieveFileTransfer.this;
      }
      public String toString(){
        final StringBuffer sb=new StringBuffer("String_Node_Str");
        sb.append("String_Node_Str").append(done).append("String_Node_Str");
        sb.append("String_Node_Str").append(bytesReceived).append("String_Node_Str");
        return sb.toString();
      }
      public void cancel(){
        hardClose();
      }
      /** 
 * @param streamToStore
 * @return incoming file transfer instance.
 * @throws IOException not thrown in this implementation.
 */
      public IIncomingFileTransfer receive(      OutputStream streamToStore) throws IOException {
        return receive(streamToStore,null);
      }
      /** 
 * @throws IOException not actually thrown by this implementation.
 */
      public IIncomingFileTransfer receive(      OutputStream streamToStore,      FileTransferJob fileTransferJob) throws IOException {
        setOutputStream(streamToStore);
        setCloseOutputStream(false);
        setupAndScheduleJob(fileTransferJob);
        return RetrieveFileTransfer.this;
      }
    }
);
  }
 catch (  final Exception e) {
    throw new IncomingFileTransferException(e);
  }
}

Fixed version (ground truth):
protected void openStreams() throws IncomingFileTransferException {
  try {
    final IFileStore fileStore=EFS.getStore(new URI(getRemoteFileURL().getPath()));
    final IFileInfo info=fileStore.fetchInfo();
    setFileLength(info.getLength());
    setInputStream(fileStore.openInputStream(0,null));
    setLastModifiedTime(info.getLastModified());
    fileName=info.getName();
    listener.handleTransferEvent(new IIncomingFileTransferReceiveStartEvent(){
      private static final long serialVersionUID=590077256618427122L;
      public IIncomingFileTransfer getSource(){
        return RetrieveFileTransfer.this;
      }
      public IFileID getFileID(){
        return remoteFileID;
      }
      public IIncomingFileTransfer receive(      File localFileToSave) throws IOException {
        return receive(localFileToSave,null);
      }
      public IIncomingFileTransfer receive(      File localFileToSave,      FileTransferJob fileTransferJob) throws IOException {
        setOutputStream(new BufferedOutputStream(new FileOutputStream(localFileToSave)));
        setupAndScheduleJob(fileTransferJob);
        return RetrieveFileTransfer.this;
      }
      public String toString(){
        final StringBuffer sb=new StringBuffer("String_Node_Str");
        sb.append("String_Node_Str").append(done).append("String_Node_Str");
        sb.append("String_Node_Str").append(bytesReceived).append("String_Node_Str");
        return sb.toString();
      }
      public void cancel(){
        hardClose();
      }
      /** 
 * @param streamToStore
 * @return incoming file transfer instance.
 * @throws IOException not thrown in this implementation.
 */
      public IIncomingFileTransfer receive(      OutputStream streamToStore) throws IOException {
        return receive(streamToStore,null);
      }
      /** 
 * @throws IOException not actually thrown by this implementation.
 */
      public IIncomingFileTransfer receive(      OutputStream streamToStore,      FileTransferJob fileTransferJob) throws IOException {
        setOutputStream(streamToStore);
        setCloseOutputStream(false);
        setupAndScheduleJob(fileTransferJob);
        return RetrieveFileTransfer.this;
      }
    }
);
  }
 catch (  final Exception e) {
    throw new IncomingFileTransferException(e);
  }
}