Program: 88915
Project: 88915
Buggy source:
public void initGUILogin(){
  quitButton=new JButton(Strings.QUIT);
  quitButton.setBounds(245,189,65,25);
  quitButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent event){
      setVisible(false);
      isRunning=false;
    }
  }
);
  optionsButton=new JButton(Strings.OPTIONS);
  optionsButton.setBounds(8,189,76,25);
  optionsButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent event){
      options.setVisible(true);
      options.repaint();
    }
  }
);
  this.addKeyListener(new KeyListener(){
    @Override public void keyTyped(    KeyEvent event){
    }
    @Override public void keyPressed(    KeyEvent event){
      if (event.getKeyCode() == KeyEvent.VK_CONTROL)       setControl(true);
    }
    @Override public void keyReleased(    KeyEvent event){
      if (event.getKeyCode() == KeyEvent.VK_CONTROL)       setControl(false);
    }
  }
);
  launchButton=new JButton(Strings.LAUNCH_UPDATE);
  if (!hasInternet)   launchButton.setText(Strings.LAUNCH_ONLY);
  launchButton.setBounds(90,189,149,25);
  launchButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent event){
      if (validateLaunch()) {
        quitButton.setEnabled(false);
        launchButton.setEnabled(false);
        loginLabel.setText(Strings.PROGRESS + "String_Node_Str");
        loginLabel.setBounds(10,162,70,15);
        panel.remove(loginField);
        String password="String_Node_Str";
        if (passwordField != null) {
          password=new String(passwordField.getPassword());
          panel.remove(passwordLabel);
          panel.remove(passwordField);
        }
        Utils.saveStringToFile(launcher.directory + "String_Node_Str",loginField.getText());
        if (hasInternet)         options.saveSelectedOptions(options.filename);
        panel.add(progressBar);
        statusLabel.setText(Strings.START_UPDATE);
        repaint();
        LauncherThread thread=new LauncherThread(launcher,options,loginField.getText(),password,hasInternet && !controlDown);
        thread.start();
      }
 else {
        statusLabel.setText(Strings.INVALID_LOGIN);
        repaint();
      }
    }
  }
);
  statusLabel=new JLabel(Strings.READY + "String_Node_Str" + Strings.VERSION+ "String_Node_Str"+ AsieLauncher.VERSION_STRING+ "String_Node_Str");
  statusLabel.setBounds(6,219,300,15);
  loginLabel=new JLabel(Strings.LOGIN + "String_Node_Str");
  loginField=new JTextField();
  loginField.setText(Utils.loadStringFromFile(launcher.directory + "String_Node_Str"));
  if (launcher.askForPassword()) {
    passwordLabel=new JLabel(Strings.PASSWORD + "String_Node_Str");
    passwordField=new JPasswordField();
    passwordLabel.setBounds(10,160,70,15);
    passwordField.setBounds(80,156,231,24);
    loginLabel.setBounds(10,134,50,15);
    loginField.setBounds(80,130,231,24);
    panel.add(passwordLabel);
    panel.add(passwordField);
  }
 else {
    loginLabel.setBounds(10,160,50,15);
    loginField.setBounds(60,156,251,24);
  }
  progressBar=new JProgressBar();
  progressBar.setBounds(86,160,224,20);
  panel.add(launchButton);
  panel.add(optionsButton);
  panel.add(quitButton);
  panel.add(statusLabel);
  panel.add(loginLabel);
  panel.add(loginField);
  repaint();
}

Fixed version (ground truth):
public void initGUILogin(){
  quitButton=new JButton(Strings.QUIT);
  quitButton.setBounds(245,189,65,25);
  quitButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent event){
      setVisible(false);
      isRunning=false;
    }
  }
);
  optionsButton=new JButton(Strings.OPTIONS);
  optionsButton.setBounds(8,189,76,25);
  optionsButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent event){
      options.setVisible(true);
      options.repaint();
    }
  }
);
  this.addKeyListener(new KeyListener(){
    @Override public void keyTyped(    KeyEvent event){
    }
    @Override public void keyPressed(    KeyEvent event){
      if (event.getKeyCode() == KeyEvent.VK_CONTROL)       setControl(true);
    }
    @Override public void keyReleased(    KeyEvent event){
      if (event.getKeyCode() == KeyEvent.VK_CONTROL)       setControl(false);
    }
  }
);
  launchButton=new JButton(Strings.LAUNCH_UPDATE);
  if (!hasInternet)   launchButton.setText(Strings.LAUNCH_ONLY);
  launchButton.setBounds(90,189,149,25);
  launchButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent event){
      if (validateLaunch()) {
        quitButton.setEnabled(false);
        launchButton.setEnabled(false);
        loginLabel.setText(Strings.PROGRESS + "String_Node_Str");
        loginLabel.setBounds(10,162,70,15);
        panel.remove(loginField);
        String password="String_Node_Str";
        if (passwordField != null) {
          password=new String(passwordField.getPassword());
          panel.remove(passwordLabel);
          panel.remove(passwordField);
        }
        if (options.loginCheckbox.isSelected())         launcher.setKeepPassword(true);
        Utils.saveStringToFile(launcher.directory + "String_Node_Str",loginField.getText());
        if (hasInternet)         options.saveSelectedOptions(options.filename);
        panel.add(progressBar);
        statusLabel.setText(Strings.START_UPDATE);
        repaint();
        LauncherThread thread=new LauncherThread(launcher,options,loginField.getText(),password,hasInternet && !controlDown);
        thread.start();
      }
 else {
        statusLabel.setText(Strings.INVALID_LOGIN);
        repaint();
      }
    }
  }
);
  statusLabel=new JLabel(Strings.READY + "String_Node_Str" + Strings.VERSION+ "String_Node_Str"+ AsieLauncher.VERSION_STRING+ "String_Node_Str");
  statusLabel.setBounds(6,219,300,15);
  loginLabel=new JLabel(Strings.LOGIN + "String_Node_Str");
  loginField=new JTextField();
  loginField.setText(Utils.loadStringFromFile(launcher.directory + "String_Node_Str"));
  if (launcher.askForPassword()) {
    passwordLabel=new JLabel(Strings.PASSWORD + "String_Node_Str");
    passwordField=new JPasswordField();
    passwordLabel.setBounds(10,160,70,15);
    passwordField.setBounds(80,156,231,24);
    loginLabel.setBounds(10,134,50,15);
    loginField.setBounds(80,130,231,24);
    panel.add(passwordLabel);
    panel.add(passwordField);
  }
 else {
    loginLabel.setBounds(10,160,50,15);
    loginField.setBounds(60,156,251,24);
  }
  progressBar=new JProgressBar();
  progressBar.setBounds(86,160,224,20);
  panel.add(launchButton);
  panel.add(optionsButton);
  panel.add(quitButton);
  panel.add(statusLabel);
  panel.add(loginLabel);
  panel.add(loginField);
  repaint();
}