Program: 10439
Project: 10439
Buggy source:
@Override public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {
  Action action=(Action)scriptEntry.getObject("String_Node_Str");
  Player player=(Player)scriptEntry.getObject("String_Node_Str");
  String permission=String.valueOf(scriptEntry.getObject("String_Node_Str"));
  String group=String.valueOf(scriptEntry.getObject("String_Node_Str"));
  String world=String.valueOf(scriptEntry.getObject("String_Node_Str"));
  dB.report(getName(),aH.debugObj("String_Node_Str",action.toString()) + aH.debugObj("String_Node_Str",player.getName()) + aH.debugObj("String_Node_Str",permission)+ aH.debugObj("String_Node_Str",group)+ aH.debugObj("String_Node_Str",world));
switch (action) {
case ADD:
    if (group != null) {
      if (Depends.permissions.groupHas(world,group,permission)) {
        dB.echoDebug("String_Node_Str" + group + "String_Node_Str"+ permission);
      }
 else       Depends.permissions.groupAdd(world,group,permission);
    }
 else {
      if (Depends.permissions.has(player,permission)) {
        dB.echoDebug("String_Node_Str" + player.getName() + "String_Node_Str"+ permission);
      }
 else       Depends.permissions.playerAdd(player,permission);
    }
  return;
case REMOVE:
if (group != null) {
  if (!Depends.permissions.groupHas(world,group,permission)) {
    dB.echoDebug("String_Node_Str" + group + "String_Node_Str"+ permission);
  }
 else   Depends.permissions.groupRemove(world,group,permission);
}
 else {
  if (!Depends.permissions.has(player,permission)) {
    dB.echoDebug("String_Node_Str" + player.getName() + "String_Node_Str"+ permission);
  }
 else   Depends.permissions.playerRemove(world,player.getName(),permission);
}
return;
}
}

Fixed version (ground truth):
@Override public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {
  Action action=(Action)scriptEntry.getObject("String_Node_Str");
  Player player=(Player)scriptEntry.getObject("String_Node_Str");
  String permission=String.valueOf(scriptEntry.getObject("String_Node_Str"));
  String group=String.valueOf(scriptEntry.getObject("String_Node_Str"));
  String world=String.valueOf(scriptEntry.getObject("String_Node_Str"));
  dB.report(getName(),aH.debugObj("String_Node_Str",action.toString()) + aH.debugObj("String_Node_Str",player.getName()) + aH.debugObj("String_Node_Str",permission)+ aH.debugObj("String_Node_Str",group)+ aH.debugObj("String_Node_Str",world));
switch (action) {
case ADD:
    if (group != null && !group.equals("String_Node_Str")) {
      if (Depends.permissions.groupHas(world,group,permission)) {
        dB.echoDebug("String_Node_Str" + group + "String_Node_Str"+ permission);
      }
 else       Depends.permissions.groupAdd(world,group,permission);
    }
 else {
      if (Depends.permissions.has(player,permission)) {
        dB.echoDebug("String_Node_Str" + player.getName() + "String_Node_Str"+ permission);
      }
 else       Depends.permissions.playerAdd(player,permission);
    }
  return;
case REMOVE:
if (group != null && !group.equals("String_Node_Str")) {
  if (!Depends.permissions.groupHas(world,group,permission)) {
    dB.echoDebug("String_Node_Str" + group + "String_Node_Str"+ permission);
  }
 else   Depends.permissions.groupRemove(world,group,permission);
}
 else {
  if (!Depends.permissions.has(player,permission)) {
    dB.echoDebug("String_Node_Str" + player.getName() + "String_Node_Str"+ permission);
  }
 else   Depends.permissions.playerRemove(world,player.getName(),permission);
}
return;
}
}