Program: 43931
Project: 43931
Buggy source:
public void onEnable(){
  log.info("String_Node_Str");
  log.addHandler(new Handler(){
    public void publish(    LogRecord logRecord){
      String mystring=logRecord.getMessage();
      if (mystring.contains("String_Node_Str")) {
        String myarray[]=mystring.split("String_Node_Str");
        if (myarray.length == 4) {
          String PlrQuitName=myarray[0];
          String DisconnectMessage=myarray[3];
          getPCC(PlrQuitName).setDisconnectType(DisconnectMessage);
        }
      }
    }
    public void flush(){
    }
    public void close(){
    }
  }
);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_JOIN,playerListener,Event.Priority.Low,this);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT,playerListener,Event.Priority.Low,this);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_KICK,playerListener,Event.Priority.Normal,this);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_RESPAWN,playerListener,Event.Priority.Low,this);
  getServer().getPluginManager().registerEvent(Event.Type.ENTITY_DAMAGE,(Listener)entityListener,Event.Priority.Monitor,this);
  new File(mainDirectory).mkdir();
  if (!CONFIG.exists()) {
    updateprop();
    log.info("String_Node_Str");
  }
  if (!PVPLOG.exists()) {
    try {
      PVPLOG.createNewFile();
      FileOutputStream badplayers=new FileOutputStream(PVPLOG);
      pvploggers.store(badplayers,"String_Node_Str");
      badplayers.flush();
      badplayers.close();
      log.info("String_Node_Str");
    }
 catch (    IOException ex) {
      log.warning("String_Node_Str" + ex.getMessage());
    }
    log.info("String_Node_Str" + getDescription().getVersion() + "String_Node_Str");
  }
 else {
    log.info("String_Node_Str" + getDescription().getVersion() + "String_Node_Str");
    loadProcedure();
    logit("String_Node_Str");
  }
  loadplayers();
}

Fixed version (ground truth):
public void onEnable(){
  log.info("String_Node_Str");
  log.addHandler(new Handler(){
    public void publish(    LogRecord logRecord){
      if (logRecord == null) {
        logit("String_Node_Str");
        return;
      }
 else       if (logRecord.getMessage() == null) {
        logit("String_Node_Str");
        return;
      }
 else {
        try {
          String mystring=logRecord.getMessage();
          if (mystring.contains("String_Node_Str")) {
            String myarray[]=mystring.split("String_Node_Str");
            if (!(myarray == null)) {
              logit("String_Node_Str");
              if (myarray.length == 4) {
                String PlrQuitName=myarray[0];
                String DisconnectMessage=myarray[3];
                getPCC(PlrQuitName).setDisconnectType(DisconnectMessage);
              }
            }
 else {
              logit("String_Node_Str");
            }
          }
          return;
        }
 catch (        NullPointerException e) {
          log.info("String_Node_Str");
        }
      }
    }
    public void flush(){
    }
    public void close(){
    }
  }
);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_JOIN,playerListener,Event.Priority.Low,this);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT,playerListener,Event.Priority.Low,this);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_KICK,playerListener,Event.Priority.Normal,this);
  getServer().getPluginManager().registerEvent(Event.Type.PLAYER_RESPAWN,playerListener,Event.Priority.Low,this);
  getServer().getPluginManager().registerEvent(Event.Type.ENTITY_DAMAGE,(Listener)entityListener,Event.Priority.Monitor,this);
  new File(mainDirectory).mkdir();
  if (!CONFIG.exists()) {
    updateprop();
    log.info("String_Node_Str");
  }
  if (!PVPLOG.exists()) {
    try {
      PVPLOG.createNewFile();
      FileOutputStream badplayers=new FileOutputStream(PVPLOG);
      pvploggers.store(badplayers,"String_Node_Str");
      badplayers.flush();
      badplayers.close();
      log.info("String_Node_Str");
    }
 catch (    IOException ex) {
      log.warning("String_Node_Str" + ex.getMessage());
    }
    log.info("String_Node_Str" + getDescription().getVersion() + "String_Node_Str");
  }
 else {
    log.info("String_Node_Str" + getDescription().getVersion() + "String_Node_Str");
    loadProcedure();
    logit("String_Node_Str");
  }
  loadplayers();
}