Program: 39149
Project: 39149
Buggy source:
/** 
 * Constructor - all sliders are added here and mouse listening is enabled for hovering over the buttons
 * @throws IllegalAccessException
 */
public AnimationBreederTask(boolean justAnimationBreeder) throws IllegalAccessException {
  super();
  if (justAnimationBreeder) {
    animationLength=new JSlider(JSlider.HORIZONTAL,Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"));
    Hashtable<Integer,JLabel> animationLabels=new Hashtable<>();
    animationLength.setMinorTickSpacing(20);
    animationLength.setPaintTicks(true);
    animationLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    animationLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    animationLength.setLabelTable(animationLabels);
    animationLength.setPaintLabels(true);
    animationLength.setPreferredSize(new Dimension(150,40));
    animationLength.addChangeListener(new ChangeListener(){
      @Override public void stateChanged(      ChangeEvent e){
        JSlider source=(JSlider)e.getSource();
        if (!source.getValueIsAdjusting()) {
          int newLength=(int)source.getValue();
          Parameters.parameters.setInteger("String_Node_Str",newLength);
          resetButtons();
        }
      }
    }
);
    pauseLength=new JSlider(JSlider.HORIZONTAL,Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"));
    Hashtable<Integer,JLabel> pauseLabels=new Hashtable<>();
    pauseLength.setMinorTickSpacing(75);
    pauseLength.setPaintTicks(true);
    pauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    pauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    pauseLength.setLabelTable(pauseLabels);
    pauseLength.setPaintLabels(true);
    pauseLength.setPreferredSize(new Dimension(100,40));
    pauseLength.addChangeListener(new ChangeListener(){
      @Override public void stateChanged(      ChangeEvent e){
        JSlider source=(JSlider)e.getSource();
        if (!source.getValueIsAdjusting()) {
          int newLength=(int)source.getValue();
          Parameters.parameters.setInteger("String_Node_Str",newLength);
          resetButtons();
        }
      }
    }
);
    JPanel animation=new JPanel();
    animation.setLayout(new BoxLayout(animation,BoxLayout.Y_AXIS));
    JLabel animationLabel=new JLabel();
    animationLabel.setText("String_Node_Str");
    animation.add(animationLabel);
    animation.add(animationLength);
    JPanel pause=new JPanel();
    pause.setLayout(new BoxLayout(pause,BoxLayout.Y_AXIS));
    JLabel pauseLabel=new JLabel();
    pauseLabel.setText("String_Node_Str");
    pause.add(pauseLabel);
    pause.add(pauseLength);
    top.add(animation);
    top.add(pause);
  }
  pauseLengthBetweenFrames=new JSlider(JSlider.HORIZONTAL,Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"));
  Hashtable<Integer,JLabel> framePauseLabels=new Hashtable<>();
  pauseLengthBetweenFrames.setMinorTickSpacing(75);
  pauseLengthBetweenFrames.setPaintTicks(true);
  framePauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
  framePauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
  pauseLengthBetweenFrames.setLabelTable(framePauseLabels);
  pauseLengthBetweenFrames.setPaintLabels(true);
  pauseLengthBetweenFrames.setPreferredSize(new Dimension(100,40));
  pauseLengthBetweenFrames.addChangeListener(new ChangeListener(){
    @Override public void stateChanged(    ChangeEvent e){
      JSlider source=(JSlider)e.getSource();
      if (!source.getValueIsAdjusting()) {
        int newLength=(int)source.getValue();
        Parameters.parameters.setInteger("String_Node_Str",newLength);
        resetButtons();
      }
    }
  }
);
  JPanel framePause=new JPanel();
  framePause.setLayout(new BoxLayout(framePause,BoxLayout.Y_AXIS));
  JLabel framePauseLabel=new JLabel();
  framePauseLabel.setText("String_Node_Str");
  framePause.add(framePauseLabel);
  framePause.add(pauseLengthBetweenFrames);
  if (!simplifiedInteractiveInterface) {
    top.add(framePause);
  }
  for (  JButton button : buttons) {
    button.addMouseListener(new MouseListener(){
      AnimationThread animation;
      @Override public void mouseClicked(      MouseEvent e){
      }
      @Override public void mousePressed(      MouseEvent e){
      }
      @Override public void mouseReleased(      MouseEvent e){
      }
      @Override public void mouseEntered(      MouseEvent e){
        Scanner id=new Scanner(e.toString());
        id.next();
        id.next();
        animation=new AnimationThread(id.nextInt());
        id.close();
        animation.start();
      }
      @Override public void mouseExited(      MouseEvent e){
        animation.stopAnimation();
      }
    }
);
  }
}

Fixed version (ground truth):
/** 
 * Constructor - all sliders are added here and mouse listening is enabled for hovering over the buttons
 * @throws IllegalAccessException
 */
public AnimationBreederTask(boolean justAnimationBreeder) throws IllegalAccessException {
  super();
  if (justAnimationBreeder) {
    animationLength=new JSlider(JSlider.HORIZONTAL,Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"));
    Hashtable<Integer,JLabel> animationLabels=new Hashtable<>();
    animationLength.setMinorTickSpacing(20);
    animationLength.setPaintTicks(true);
    animationLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    animationLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    animationLength.setLabelTable(animationLabels);
    animationLength.setPaintLabels(true);
    animationLength.setPreferredSize(new Dimension(150,40));
    animationLength.addChangeListener(new ChangeListener(){
      @Override public void stateChanged(      ChangeEvent e){
        JSlider source=(JSlider)e.getSource();
        if (!source.getValueIsAdjusting()) {
          int newLength=(int)source.getValue();
          Parameters.parameters.setInteger("String_Node_Str",newLength);
          resetButtons();
        }
      }
    }
);
    pauseLength=new JSlider(JSlider.HORIZONTAL,Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"));
    Hashtable<Integer,JLabel> pauseLabels=new Hashtable<>();
    pauseLength.setMinorTickSpacing(75);
    pauseLength.setPaintTicks(true);
    pauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    pauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
    pauseLength.setLabelTable(pauseLabels);
    pauseLength.setPaintLabels(true);
    pauseLength.setPreferredSize(new Dimension(100,40));
    pauseLength.addChangeListener(new ChangeListener(){
      @Override public void stateChanged(      ChangeEvent e){
        JSlider source=(JSlider)e.getSource();
        if (!source.getValueIsAdjusting()) {
          int newLength=(int)source.getValue();
          Parameters.parameters.setInteger("String_Node_Str",newLength);
          resetButtons();
        }
      }
    }
);
    JPanel animation=new JPanel();
    animation.setLayout(new BoxLayout(animation,BoxLayout.Y_AXIS));
    JLabel animationLabel=new JLabel();
    animationLabel.setText("String_Node_Str");
    animation.add(animationLabel);
    animation.add(animationLength);
    JPanel pause=new JPanel();
    pause.setLayout(new BoxLayout(pause,BoxLayout.Y_AXIS));
    JLabel pauseLabel=new JLabel();
    pauseLabel.setText("String_Node_Str");
    pause.add(pauseLabel);
    pause.add(pauseLength);
    top.add(animation);
    top.add(pause);
  }
  pauseLengthBetweenFrames=new JSlider(JSlider.HORIZONTAL,Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"),Parameters.parameters.integerParameter("String_Node_Str"));
  Hashtable<Integer,JLabel> framePauseLabels=new Hashtable<>();
  pauseLengthBetweenFrames.setMinorTickSpacing(75);
  pauseLengthBetweenFrames.setPaintTicks(true);
  framePauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
  framePauseLabels.put(Parameters.parameters.integerParameter("String_Node_Str"),new JLabel("String_Node_Str"));
  pauseLengthBetweenFrames.setLabelTable(framePauseLabels);
  pauseLengthBetweenFrames.setPaintLabels(true);
  pauseLengthBetweenFrames.setPreferredSize(new Dimension(100,40));
  pauseLengthBetweenFrames.addChangeListener(new ChangeListener(){
    @Override public void stateChanged(    ChangeEvent e){
      JSlider source=(JSlider)e.getSource();
      if (!source.getValueIsAdjusting()) {
        int newLength=(int)source.getValue();
        Parameters.parameters.setInteger("String_Node_Str",newLength);
        resetButtons();
      }
    }
  }
);
  JPanel framePause=new JPanel();
  framePause.setLayout(new BoxLayout(framePause,BoxLayout.Y_AXIS));
  JLabel framePauseLabel=new JLabel();
  framePauseLabel.setText("String_Node_Str");
  framePause.add(framePauseLabel);
  framePause.add(pauseLengthBetweenFrames);
  if (!simplifiedInteractiveInterface) {
    top.add(framePause);
  }
  if (!alwaysAnimate) {
    for (    JButton button : buttons) {
      button.addMouseListener(new MouseListener(){
        AnimationThread animation;
        @Override public void mouseClicked(        MouseEvent e){
        }
        @Override public void mousePressed(        MouseEvent e){
        }
        @Override public void mouseReleased(        MouseEvent e){
        }
        @Override public void mouseEntered(        MouseEvent e){
          Scanner id=new Scanner(e.toString());
          id.next();
          id.next();
          animation=new AnimationThread(id.nextInt());
          id.close();
          animation.start();
        }
        @Override public void mouseExited(        MouseEvent e){
          animation.stopAnimation();
        }
      }
);
    }
  }
}