Program: 19018
Project: 19018
Buggy source:
@Override public void onEnable(){
  description=this.getDescription();
  setInstance(this);
  PluginManager pm=getServer().getPluginManager();
  if (!validateVersions(description.getVersion(),getServer().getVersion())) {
    pm.disablePlugin(this);
    return;
  }
  Plugin spout=pm.getPlugin("String_Node_Str");
  if (spout != null && spout.isEnabled()) {
    spoutEnabled=true;
    MiscUtil.log(Level.INFO,"String_Node_Str" + spout.getDescription().getVersion());
  }
  PermissionsUtils.setup();
  SMSPersistence.init();
  SMSConfig.init(this);
  pm.registerEvent(Event.Type.PLAYER_INTERACT,playerListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.PLAYER_ITEM_HELD,playerListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.BLOCK_DAMAGE,blockListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.BLOCK_BREAK,blockListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.BLOCK_PHYSICS,blockListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.ENTITY_EXPLODE,entityListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.PLAYER_DROP_ITEM,playerListener,Event.Priority.Normal,this);
  if (spoutEnabled) {
    spoutKeyListener=new SMSSpoutKeyListener();
    pm.registerEvent(Event.Type.CUSTOM_EVENT,spoutKeyListener,Event.Priority.Normal,this);
  }
  registerCommands();
  MessagePager.setPageCmd("String_Node_Str");
  if (getServer().getScheduler().scheduleSyncDelayedTask(this,new Runnable(){
    @Override public void run(){
      loadPersistedData();
      setupEconomy();
    }
  }
) == -1) {
    MiscUtil.log(Level.WARNING,"String_Node_Str");
    loadPersistedData();
    setupEconomy();
  }
  MiscUtil.log(Level.INFO,description.getName() + "String_Node_Str" + description.getVersion()+ "String_Node_Str");
}

Fixed version (ground truth):
@Override public void onEnable(){
  setInstance(this);
  PluginManager pm=getServer().getPluginManager();
  if (!validateVersions(getDescription().getVersion(),getServer().getVersion())) {
    pm.disablePlugin(this);
    return;
  }
  Plugin spout=pm.getPlugin("String_Node_Str");
  if (spout != null && spout.isEnabled()) {
    spoutEnabled=true;
    MiscUtil.log(Level.INFO,"String_Node_Str" + spout.getDescription().getVersion());
  }
  PermissionsUtils.setup();
  SMSConfig.init(this);
  pm.registerEvent(Event.Type.PLAYER_INTERACT,playerListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.PLAYER_ITEM_HELD,playerListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.BLOCK_DAMAGE,blockListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.BLOCK_BREAK,blockListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.BLOCK_PHYSICS,blockListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.ENTITY_EXPLODE,entityListener,Event.Priority.Normal,this);
  pm.registerEvent(Event.Type.PLAYER_DROP_ITEM,playerListener,Event.Priority.Normal,this);
  if (spoutEnabled) {
    spoutKeyListener=new SMSSpoutKeyListener();
    pm.registerEvent(Event.Type.CUSTOM_EVENT,spoutKeyListener,Event.Priority.Normal,this);
  }
  registerCommands();
  MessagePager.setPageCmd("String_Node_Str");
  if (getServer().getScheduler().scheduleSyncDelayedTask(this,new Runnable(){
    @Override public void run(){
      loadPersistedData();
      setupEconomy();
    }
  }
) == -1) {
    MiscUtil.log(Level.WARNING,"String_Node_Str");
    loadPersistedData();
    setupEconomy();
  }
  MiscUtil.log(Level.INFO,getDescription().getName() + "String_Node_Str" + getDescription().getVersion()+ "String_Node_Str");
}