Program: 3713
Project: 3713
Buggy source:
@Override public void tabSelected(Tabs tab){
  if (!cards.containsKey(tab)) {
    if (tab == Tabs.GENERAL) {
      cards.put(tab,fileInfoFactory.createGeneralPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.SHARING) {
      cards.put(tab,fileInfoFactory.createSharingPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.LIMITS) {
      Torrent torrent=(Torrent)propertiableFile.getProperty(FilePropertyKey.TORRENT);
      if (torrent != null && torrent.isEditable()) {
        cards.put(tab,fileInfoFactory.createLimitsPanel(type,propertiableFile));
      }
    }
 else     if (tab == Tabs.TRACKERS) {
      cards.put(tab,fileInfoFactory.createTrackersPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.TRANSFERS) {
      cards.put(tab,fileInfoFactory.createTransferPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.BITTORENT) {
      Torrent torrent=(Torrent)propertiableFile.getProperty(FilePropertyKey.TORRENT);
      if (torrent != null && torrent.hasMetaData()) {
        cards.put(tab,fileInfoFactory.createBittorentPanel(torrent));
      }
    }
 else     if (tab == Tabs.PIECES) {
      if (propertiableFile instanceof DownloadItem) {
        cards.put(tab,fileInfoFactory.createPiecesPanel(type,(DownloadItem)propertiableFile));
      }
 else {
        throw new IllegalStateException("String_Node_Str");
      }
    }
 else {
      throw new IllegalStateException("String_Node_Str" + tab);
    }
  }
  cardPanel.removeAll();
  cardPanel.add(cards.get(tab).getComponent());
  FileInfoDialog.this.validate();
  FileInfoDialog.this.repaint();
}

Fixed version (ground truth):
@Override public void tabSelected(Tabs tab){
  if (!cards.containsKey(tab)) {
    if (tab == Tabs.GENERAL) {
      cards.put(tab,fileInfoFactory.createGeneralPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.SHARING) {
      cards.put(tab,fileInfoFactory.createSharingPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.LIMITS) {
      Torrent torrent=(Torrent)propertiableFile.getProperty(FilePropertyKey.TORRENT);
      if (torrent != null && torrent.isEditable()) {
        cards.put(tab,fileInfoFactory.createLimitsPanel(type,propertiableFile));
      }
    }
 else     if (tab == Tabs.TRACKERS) {
      cards.put(tab,fileInfoFactory.createTrackersPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.TRANSFERS) {
      cards.put(tab,fileInfoFactory.createTransferPanel(type,propertiableFile));
    }
 else     if (tab == Tabs.BITTORENT) {
      Torrent torrent=(Torrent)propertiableFile.getProperty(FilePropertyKey.TORRENT);
      if (torrent != null && torrent.hasMetaData()) {
        cards.put(tab,fileInfoFactory.createBittorentPanel(torrent));
      }
    }
 else     if (tab == Tabs.PIECES) {
      if (propertiableFile instanceof DownloadItem) {
        cards.put(tab,fileInfoFactory.createPiecesPanel(type,(DownloadItem)propertiableFile));
      }
 else {
      }
    }
 else {
      throw new IllegalStateException("String_Node_Str" + tab);
    }
  }
  cardPanel.removeAll();
  cardPanel.add(cards.get(tab).getComponent());
  FileInfoDialog.this.validate();
  FileInfoDialog.this.repaint();
}