Program: 189801
Project: 189801
Buggy source:
public void setup(EqualNumberFilter f){
  this.filter=f;
  new Thread(new Runnable(){
    public void run(){
      setToolTipText(filter.getName() + "String_Node_Str" + filter.getColumn().getTitle()+ "String_Node_Str");
      Number match=filter.getMatch();
      Number stepSize=null;
      final Comparable min=(Comparable)filter.getMinimun();
      final Comparable max=(Comparable)filter.getMaximum();
switch (filter.getColumn().getType()) {
case DOUBLE:
        match=(match != null ? match : new Double((Double)min));
      stepSize=new Double(.1);
    break;
case FLOAT:
  match=(match != null ? match : new Float((Float)min));
stepSize=new Float(.1f);
break;
case LONG:
match=(match != null ? match : new Long((Long)min));
stepSize=new Long(1l);
break;
case INT:
match=(match != null ? match : new Integer((Integer)min));
stepSize=1;
break;
default :
throw new IllegalArgumentException("String_Node_Str");
}
Number minNumber=(Number)min;
Number maxNumber=(Number)max;
if (match.doubleValue() < minNumber.doubleValue()) {
match=minNumber;
filter.getProperties()[1].setValue(minNumber);
}
 else if (match.doubleValue() > maxNumber.doubleValue()) {
match=maxNumber;
filter.getProperties()[1].setValue(maxNumber);
}
final SpinnerNumberModel model=new SpinnerNumberModel(match,min,max,stepSize);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
if (min.equals(Double.NEGATIVE_INFINITY) || min.equals(Integer.MIN_VALUE)) {
minLabel.setText("String_Node_Str");
maxLabel.setText("String_Node_Str");
}
 else {
DecimalFormat df=new DecimalFormat();
df.setMaximumFractionDigits(5);
minLabel.setText(df.format(min));
maxLabel.setText(df.format(max));
}
valueSpinner.setModel(model);
model.addChangeListener(WeakListeners.change(EqualNumberPanel.this,model));
}
}
);
}
}
).start();
}

Fixed version (ground truth):
public void setup(EqualNumberFilter f){
  this.filter=f;
  new Thread(new Runnable(){
    public void run(){
      setToolTipText(filter.getName() + "String_Node_Str" + filter.getColumn().getTitle()+ "String_Node_Str");
      Number match=filter.getMatch();
      Number stepSize=null;
      final Comparable min=(Comparable)filter.getRange().getMinimum();
      final Comparable max=(Comparable)filter.getRange().getMaximum();
switch (filter.getColumn().getType()) {
case DOUBLE:
        match=(match != null ? match : new Double((Double)min));
      stepSize=new Double(.1);
    break;
case FLOAT:
  match=(match != null ? match : new Float((Float)min));
stepSize=new Float(.1f);
break;
case LONG:
match=(match != null ? match : new Long((Long)min));
stepSize=new Long(1l);
break;
case INT:
match=(match != null ? match : new Integer((Integer)min));
stepSize=1;
break;
default :
throw new IllegalArgumentException("String_Node_Str");
}
Number minNumber=(Number)min;
Number maxNumber=(Number)max;
if (match.doubleValue() < minNumber.doubleValue()) {
match=minNumber;
filter.getProperties()[1].setValue(minNumber);
}
 else if (match.doubleValue() > maxNumber.doubleValue()) {
match=maxNumber;
filter.getProperties()[1].setValue(maxNumber);
}
final SpinnerNumberModel model=new SpinnerNumberModel(match,min,max,stepSize);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
if (min.equals(Double.NEGATIVE_INFINITY) || min.equals(Integer.MIN_VALUE)) {
minLabel.setText("String_Node_Str");
maxLabel.setText("String_Node_Str");
}
 else {
DecimalFormat df=new DecimalFormat();
df.setMaximumFractionDigits(5);
minLabel.setText(df.format(min));
maxLabel.setText(df.format(max));
}
valueSpinner.setModel(model);
model.addChangeListener(WeakListeners.change(EqualNumberPanel.this,model));
}
}
);
}
}
).start();
}