Program: 187569
Project: 187569
Buggy source:
public static void main(String[] args){
  String path="String_Node_Str";
  try {
    path=GuiMain.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
  }
 catch (  URISyntaxException e) {
    e.printStackTrace();
  }
  path=path.replace("String_Node_Str",File.separator);
  path=path.replaceAll(String.format("String_Node_Str",File.separator,File.separator),"String_Node_Str");
  path=path.substring(1);
  File pluginDirFile=new File(path);
  configPath=pluginDirFile.getAbsolutePath() + File.separator + "String_Node_Str"+ File.separator;
  try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  }
 catch (  Exception ignored) {
  }
  Image logoImage=new ImageIcon(ClassLoader.getSystemResource("String_Node_Str")).getImage();
  if (!canFindBukkit()) {
    String[] buttons={"String_Node_Str","String_Node_Str","String_Node_Str"};
    int result=JOptionPane.showOptionDialog(null,"String_Node_Str" + "String_Node_Str" + "String_Node_Str" + pluginDirFile.getAbsolutePath() + File.separator+ "String_Node_Str"+ File.separator+ "String_Node_Str"+ pluginDirFile.getAbsolutePath()+ File.separator+ "String_Node_Str"+ pluginDirFile.getParent()+ File.separator,"String_Node_Str",JOptionPane.ERROR_MESSAGE,0,null,buttons,buttons[1]);
    if (result == 0) {
      System.exit(0);
    }
 else     if (result == 1) {
      bukkitDownloader=new BukkitDownloader();
      JFrame bukkitDownloaderFrame=bukkitDownloader.getFrame();
      bukkitDownloaderFrame.setContentPane(bukkitDownloader.getMainPanel());
      bukkitDownloaderFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      bukkitDownloaderFrame.setIconImage(logoImage);
      bukkitDownloaderFrame.pack();
      bukkitDownloaderFrame.setVisible(true);
      bukkitDownloaderFrame.setLocationRelativeTo(null);
      bukkitDownloader.startDownload();
    }
 else     if (result == 2) {
      JFileChooser fileChooser=new JFileChooser(new File(path));
      fileChooser.setAcceptAllFileFilterUsed(false);
      fileChooser.setFileFilter(new FileFilter(){
        @Override public boolean accept(        File f){
          return f.isDirectory() || f.getName().matches("String_Node_Str");
        }
        @Override public String getDescription(){
          return "String_Node_Str";
        }
      }
);
      if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
        try {
          Runtime.getRuntime().exec("String_Node_Str" + fileChooser.getSelectedFile().getAbsolutePath() + "String_Node_Str"+ System.getProperties().getProperty("String_Node_Str")+ "String_Node_Str"+ (SkilltreeCreator.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath())+ "String_Node_Str");
        }
 catch (        Exception e1) {
          e1.printStackTrace();
        }
      }
      System.exit(0);
    }
    return;
  }
  MyPetPlugin.registerSkills();
  new File(configPath + "String_Node_Str" + File.separator).mkdirs();
  MyPetSkillTreeLoaderNBT.getSkilltreeLoader().loadSkillTrees(configPath + "String_Node_Str",false);
  MyPetSkillTreeLoaderJSON.getSkilltreeLoader().loadSkillTrees(configPath + "String_Node_Str",false);
  skilltreeCreator=new SkilltreeCreator();
  final JFrame skilltreeCreatorFrame=skilltreeCreator.getFrame();
  skilltreeCreatorFrame.setContentPane(skilltreeCreator.getMainPanel());
  skilltreeCreatorFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  skilltreeCreatorFrame.setIconImage(logoImage);
  skilltreeCreatorFrame.pack();
  skilltreeCreatorFrame.setVisible(true);
  skilltreeCreatorFrame.setLocationRelativeTo(null);
  skilltreeCreatorFrame.addWindowListener(new WindowListener(){
    public void windowOpened(    WindowEvent e){
    }
    public void windowClosing(    WindowEvent e){
      int result=JOptionPane.showConfirmDialog(skilltreeCreatorFrame,"String_Node_Str","String_Node_Str",JOptionPane.OK_CANCEL_OPTION);
      if (result == 0) {
        System.exit(0);
      }
    }
    public void windowClosed(    WindowEvent e){
    }
    public void windowIconified(    WindowEvent e){
    }
    public void windowDeiconified(    WindowEvent e){
    }
    public void windowActivated(    WindowEvent e){
    }
    public void windowDeactivated(    WindowEvent e){
    }
  }
);
  levelCreator=new LevelCreator();
  final JFrame levelCreatorFrame=levelCreator.getFrame();
  levelCreatorFrame.setContentPane(levelCreator.getMainPanel());
  levelCreatorFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
  levelCreatorFrame.setIconImage(logoImage);
  levelCreatorFrame.pack();
  levelCreatorFrame.setLocationRelativeTo(null);
  levelCreatorFrame.addWindowListener(new WindowListener(){
    public void windowOpened(    WindowEvent e){
    }
    public void windowClosing(    WindowEvent e){
      skilltreeCreatorFrame.setEnabled(true);
    }
    public void windowClosed(    WindowEvent e){
    }
    public void windowIconified(    WindowEvent e){
    }
    public void windowDeiconified(    WindowEvent e){
    }
    public void windowActivated(    WindowEvent e){
    }
    public void windowDeactivated(    WindowEvent e){
    }
  }
);
  skillPropertyEditor=new SkillPropertyEditor();
  final JFrame skillPropertyEditorFrame=skillPropertyEditor.getFrame();
  skillPropertyEditorFrame.setContentPane(skillPropertyEditor.getMainPanel());
  skillPropertyEditorFrame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
  skillPropertyEditorFrame.setIconImage(logoImage);
  skillPropertyEditorFrame.pack();
  skillPropertyEditorFrame.setLocationRelativeTo(null);
  skillPropertyEditorFrame.addWindowListener(new WindowListener(){
    public void windowOpened(    WindowEvent e){
    }
    public void windowClosing(    WindowEvent e){
      levelCreatorFrame.setEnabled(true);
    }
    public void windowClosed(    WindowEvent e){
    }
    public void windowIconified(    WindowEvent e){
    }
    public void windowDeiconified(    WindowEvent e){
    }
    public void windowActivated(    WindowEvent e){
    }
    public void windowDeactivated(    WindowEvent e){
    }
  }
);
}

Fixed version (ground truth):
public static void main(String[] args){
  String path="String_Node_Str";
  try {
    path=GuiMain.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
  }
 catch (  URISyntaxException e) {
    e.printStackTrace();
  }
  path=path.replace("String_Node_Str",File.separator);
  path=path.replaceAll(String.format("String_Node_Str",File.separator,File.separator),"String_Node_Str");
  File pluginDirFile=new File(path);
  configPath=pluginDirFile.getAbsolutePath() + File.separator + "String_Node_Str"+ File.separator;
  try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  }
 catch (  Exception ignored) {
  }
  Image logoImage=new ImageIcon(ClassLoader.getSystemResource("String_Node_Str")).getImage();
  if (!canFindBukkit()) {
    String[] buttons={"String_Node_Str","String_Node_Str","String_Node_Str"};
    int result=JOptionPane.showOptionDialog(null,"String_Node_Str" + "String_Node_Str" + "String_Node_Str" + pluginDirFile.getAbsolutePath() + File.separator+ "String_Node_Str"+ File.separator+ "String_Node_Str"+ pluginDirFile.getAbsolutePath()+ File.separator+ "String_Node_Str"+ pluginDirFile.getParent()+ File.separator,"String_Node_Str",JOptionPane.ERROR_MESSAGE,0,null,buttons,buttons[1]);
    if (result == 0) {
      System.exit(0);
    }
 else     if (result == 1) {
      bukkitDownloader=new BukkitDownloader();
      JFrame bukkitDownloaderFrame=bukkitDownloader.getFrame();
      bukkitDownloaderFrame.setContentPane(bukkitDownloader.getMainPanel());
      bukkitDownloaderFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      bukkitDownloaderFrame.setIconImage(logoImage);
      bukkitDownloaderFrame.pack();
      bukkitDownloaderFrame.setVisible(true);
      bukkitDownloaderFrame.setLocationRelativeTo(null);
      bukkitDownloader.startDownload();
    }
 else     if (result == 2) {
      JFileChooser fileChooser=new JFileChooser(new File(path));
      fileChooser.setAcceptAllFileFilterUsed(false);
      fileChooser.setFileFilter(new FileFilter(){
        @Override public boolean accept(        File f){
          return f.isDirectory() || f.getName().matches("String_Node_Str");
        }
        @Override public String getDescription(){
          return "String_Node_Str";
        }
      }
);
      if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
        try {
          Runtime.getRuntime().exec("String_Node_Str" + fileChooser.getSelectedFile().getAbsolutePath() + "String_Node_Str"+ System.getProperties().getProperty("String_Node_Str")+ "String_Node_Str"+ (SkilltreeCreator.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath())+ "String_Node_Str");
        }
 catch (        Exception e1) {
          e1.printStackTrace();
        }
      }
      System.exit(0);
    }
    return;
  }
  MyPetPlugin.registerSkills();
  new File(configPath + "String_Node_Str" + File.separator).mkdirs();
  MyPetSkillTreeLoaderNBT.getSkilltreeLoader().loadSkillTrees(configPath + "String_Node_Str",false);
  MyPetSkillTreeLoaderJSON.getSkilltreeLoader().loadSkillTrees(configPath + "String_Node_Str",false);
  skilltreeCreator=new SkilltreeCreator();
  final JFrame skilltreeCreatorFrame=skilltreeCreator.getFrame();
  skilltreeCreatorFrame.setContentPane(skilltreeCreator.getMainPanel());
  skilltreeCreatorFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  skilltreeCreatorFrame.setIconImage(logoImage);
  skilltreeCreatorFrame.pack();
  skilltreeCreatorFrame.setVisible(true);
  skilltreeCreatorFrame.setLocationRelativeTo(null);
  skilltreeCreatorFrame.addWindowListener(new WindowListener(){
    public void windowOpened(    WindowEvent e){
    }
    public void windowClosing(    WindowEvent e){
      int result=JOptionPane.showConfirmDialog(skilltreeCreatorFrame,"String_Node_Str","String_Node_Str",JOptionPane.OK_CANCEL_OPTION);
      if (result == 0) {
        System.exit(0);
      }
    }
    public void windowClosed(    WindowEvent e){
    }
    public void windowIconified(    WindowEvent e){
    }
    public void windowDeiconified(    WindowEvent e){
    }
    public void windowActivated(    WindowEvent e){
    }
    public void windowDeactivated(    WindowEvent e){
    }
  }
);
  levelCreator=new LevelCreator();
  final JFrame levelCreatorFrame=levelCreator.getFrame();
  levelCreatorFrame.setContentPane(levelCreator.getMainPanel());
  levelCreatorFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
  levelCreatorFrame.setIconImage(logoImage);
  levelCreatorFrame.pack();
  levelCreatorFrame.setLocationRelativeTo(null);
  levelCreatorFrame.addWindowListener(new WindowListener(){
    public void windowOpened(    WindowEvent e){
    }
    public void windowClosing(    WindowEvent e){
      skilltreeCreatorFrame.setEnabled(true);
    }
    public void windowClosed(    WindowEvent e){
    }
    public void windowIconified(    WindowEvent e){
    }
    public void windowDeiconified(    WindowEvent e){
    }
    public void windowActivated(    WindowEvent e){
    }
    public void windowDeactivated(    WindowEvent e){
    }
  }
);
  skillPropertyEditor=new SkillPropertyEditor();
  final JFrame skillPropertyEditorFrame=skillPropertyEditor.getFrame();
  skillPropertyEditorFrame.setContentPane(skillPropertyEditor.getMainPanel());
  skillPropertyEditorFrame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
  skillPropertyEditorFrame.setIconImage(logoImage);
  skillPropertyEditorFrame.pack();
  skillPropertyEditorFrame.setLocationRelativeTo(null);
  skillPropertyEditorFrame.addWindowListener(new WindowListener(){
    public void windowOpened(    WindowEvent e){
    }
    public void windowClosing(    WindowEvent e){
      levelCreatorFrame.setEnabled(true);
    }
    public void windowClosed(    WindowEvent e){
    }
    public void windowIconified(    WindowEvent e){
    }
    public void windowDeiconified(    WindowEvent e){
    }
    public void windowActivated(    WindowEvent e){
    }
    public void windowDeactivated(    WindowEvent e){
    }
  }
);
}