Program: 21120
Project: 21120
Buggy source:
private Component getFilePackageCell(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
  fp=(FilePackage)value;
switch (column) {
case DownloadTreeTableModel.COL_PART:
    co=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
  ((JRendererLabel)co).setText(fp.getName());
if (fp.getLinksFailed() > 0) {
  ((JRendererLabel)co).setIcon(!fp.getBooleanProperty(DownloadTreeTable.PROPERTY_EXPANDED,false) ? icon_fp_closed_error : icon_fp_open_error);
}
 else {
  ((JRendererLabel)co).setIcon(!fp.getBooleanProperty(DownloadTreeTable.PROPERTY_EXPANDED,false) ? icon_fp_closed : icon_fp_open);
}
((JRendererLabel)co).setBorder(null);
((JComponent)co).setToolTipText(null);
return co;
case DownloadTreeTableModel.COL_HOSTER:
value=fp.getHoster();
break;
case DownloadTreeTableModel.COL_PROGRESS:
if (fp.isFinished()) {
progress.setMaximum(100);
progress.setValue(100);
clearSB();
col=this.table.getCols()[column];
if (col.getWidth() < 40) {
}
 else if (col.getWidth() < 170) {
sb.append("String_Node_Str");
}
 else {
sb.append("String_Node_Str").append(Formatter.formatReadable(Math.max(0,fp.getTotalEstimatedPackageSize()))).append(')');
}
progress.setString(sb.toString());
}
 else {
progress.setMaximum(Math.max(1,fp.getTotalEstimatedPackageSize()));
progress.setValue(fp.getTotalKBLoaded());
clearSB();
col=this.table.getCols()[column];
if (col.getWidth() < 40) {
}
 else if (col.getWidth() < 170) {
sb.append(c.format(fp.getPercent())).append('%');
}
 else {
sb.append(c.format(fp.getPercent())).append("String_Node_Str").append(Formatter.formatReadable(progress.getRealValue())).append('/').append(Formatter.formatReadable(Math.max(0,progress.getRealMax()))).append(')');
}
progress.setString(sb.toString());
}
progress.setToolTipText(null);
return progress;
case DownloadTreeTableModel.COL_STATUS:
co=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
this.statuspanel.setBackground(co.getBackground());
statuspanel.setPainter(((JRendererLabel)co).getPainter());
if (fp.isFinished()) {
statuspanel.left.setText("String_Node_Str");
}
 else if (fp.getTotalDownloadSpeed() > 0) {
clearSB();
sb.append('[').append(fp.getLinksInProgress()).append('/').append(fp.size()).append("String_Node_Str");
sb.append(strETA).append(' ').append(Formatter.formatSeconds(fp.getETA())).append("String_Node_Str").append(Formatter.formatReadable(fp.getTotalDownloadSpeed())).append("String_Node_Str");
statuspanel.left.setText(sb.toString());
}
 else if (fp.getLinksInProgress() > 0) {
clearSB();
sb.append(fp.getLinksInProgress()).append('/').append(fp.size()).append(' ').append(strDownloadLinkActive);
statuspanel.left.setText(sb.toString());
}
 else {
statuspanel.left.setText("String_Node_Str");
}
counter=0;
clearSB();
if (fp.isFinished()) {
statuspanel.rights[counter].setIcon(this.imgFinished);
counter++;
}
 else if (JDController.getInstance().getWatchdog() != null && JDController.getInstance().getWatchdog().isStopMark(value)) {
statuspanel.rights[counter].setIcon(imgStopMark);
if (counter > 0) sb.append("String_Node_Str");
counter++;
sb.append(strTTStopMark);
}
 else if (fp.getTotalDownloadSpeed() > 0) {
}
 else if (fp.getLinksInProgress() > 0) {
}
 else {
}
statuspanel.clearIcons(counter);
statuspanel.setToolTipText(sb.toString());
statuspanel.setBorder(null);
return statuspanel;
}
co=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
((JRendererLabel)co).setBorder(null);
((JComponent)co).setToolTipText(null);
return co;
}

Fixed version (ground truth):
private Component getFilePackageCell(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
  fp=(FilePackage)value;
switch (column) {
case DownloadTreeTableModel.COL_PART:
    co=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
  ((JRendererLabel)co).setText(fp.getName());
if (fp.getLinksFailed() > 0) {
  ((JRendererLabel)co).setIcon(!fp.getBooleanProperty(DownloadTreeTable.PROPERTY_EXPANDED,false) ? icon_fp_closed_error : icon_fp_open_error);
}
 else {
  ((JRendererLabel)co).setIcon(!fp.getBooleanProperty(DownloadTreeTable.PROPERTY_EXPANDED,false) ? icon_fp_closed : icon_fp_open);
}
((JRendererLabel)co).setBorder(null);
((JComponent)co).setToolTipText(null);
return co;
case DownloadTreeTableModel.COL_HOSTER:
value=fp.getHoster();
break;
case DownloadTreeTableModel.COL_PROGRESS:
if (fp.isFinished()) {
progress.setMaximum(100);
progress.setValue(100);
clearSB();
col=this.table.getCols()[column];
if (col.getWidth() < 40) {
}
 else if (col.getWidth() < 170) {
sb.append("String_Node_Str");
}
 else {
sb.append("String_Node_Str").append(Formatter.formatReadable(Math.max(0,fp.getTotalEstimatedPackageSize()))).append(')');
}
progress.setString(sb.toString());
}
 else {
progress.setMaximum(Math.max(1,fp.getTotalEstimatedPackageSize()));
progress.setValue(fp.getTotalKBLoaded());
clearSB();
col=this.table.getCols()[column];
if (col.getWidth() < 40) {
}
 else if (col.getWidth() < 170) {
sb.append(c.format(fp.getPercent())).append('%');
}
 else {
sb.append(c.format(fp.getPercent())).append("String_Node_Str").append(Formatter.formatReadable(progress.getRealValue())).append('/').append(Formatter.formatReadable(Math.max(0,progress.getRealMax()))).append(')');
}
progress.setString(sb.toString());
}
progress.setToolTipText(null);
progress.setForeground(null);
return progress;
case DownloadTreeTableModel.COL_STATUS:
co=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
this.statuspanel.setBackground(co.getBackground());
statuspanel.setPainter(((JRendererLabel)co).getPainter());
if (fp.isFinished()) {
statuspanel.left.setText("String_Node_Str");
}
 else if (fp.getTotalDownloadSpeed() > 0) {
clearSB();
sb.append('[').append(fp.getLinksInProgress()).append('/').append(fp.size()).append("String_Node_Str");
sb.append(strETA).append(' ').append(Formatter.formatSeconds(fp.getETA())).append("String_Node_Str").append(Formatter.formatReadable(fp.getTotalDownloadSpeed())).append("String_Node_Str");
statuspanel.left.setText(sb.toString());
}
 else if (fp.getLinksInProgress() > 0) {
clearSB();
sb.append(fp.getLinksInProgress()).append('/').append(fp.size()).append(' ').append(strDownloadLinkActive);
statuspanel.left.setText(sb.toString());
}
 else {
statuspanel.left.setText("String_Node_Str");
}
counter=0;
clearSB();
if (fp.isFinished()) {
statuspanel.rights[counter].setIcon(this.imgFinished);
counter++;
}
 else if (JDController.getInstance().getWatchdog() != null && JDController.getInstance().getWatchdog().isStopMark(value)) {
statuspanel.rights[counter].setIcon(imgStopMark);
if (counter > 0) sb.append("String_Node_Str");
counter++;
sb.append(strTTStopMark);
}
 else if (fp.getTotalDownloadSpeed() > 0) {
}
 else if (fp.getLinksInProgress() > 0) {
}
 else {
}
statuspanel.clearIcons(counter);
statuspanel.setToolTipText(sb.toString());
statuspanel.setBorder(null);
return statuspanel;
}
co=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
((JRendererLabel)co).setBorder(null);
((JComponent)co).setToolTipText(null);
return co;
}