Program: 151279
Project: 151279
Buggy source:
public PermissionCheckResult performCheck(String permission,String worldName){
  try {
    PermissionUser user=PermissionsEx.getUser(this.player);
    String expression=user.getMatchingExpression(permission.toLowerCase(),worldName);
    if (expression != null || this.strictMode) {
      if (user.isDebug()) {
        Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str"+ (expression == null ? "String_Node_Str" : "String_Node_Str" + expression + "String_Node_Str"));
      }
      return PermissionCheckResult.fromBoolean(user.explainExpression(expression));
    }
    if (this.bridge.isEnableParentNodes()) {
      Map<String,Boolean> parentNodes=this.bridge.getChildPermissions().get(permission.toLowerCase());
      if (parentNodes != null) {
        for (        String parentPermission : parentNodes.keySet()) {
          PermissionCheckResult result=this.checkPermission(parentPermission);
          if (result == PermissionCheckResult.UNDEFINED) {
            continue;
          }
          PermissionCheckResult anwser=PermissionCheckResult.fromBoolean(parentNodes.get(parentPermission).booleanValue() ^ !result.toBoolean());
          if (user.isDebug()) {
            Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str"+ anwser+ "String_Node_Str"+ parentPermission+ "String_Node_Str");
          }
          return anwser;
        }
      }
    }
    if (super.hasPermission(permission)) {
      if (user.isDebug()) {
        Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str");
      }
      return PermissionCheckResult.TRUE;
    }
    if (user.isDebug()) {
      Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str");
    }
  }
 catch (  Throwable e) {
    e.printStackTrace();
  }
  return PermissionCheckResult.UNDEFINED;
}

Fixed version (ground truth):
public PermissionCheckResult performCheck(String permission,String worldName){
  try {
    PermissionUser user=PermissionsEx.getUser(this.player);
    String expression=user.getMatchingExpression(permission.toLowerCase(),worldName);
    if (expression != null || this.strictMode) {
      if (user.isDebug()) {
        Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str"+ (expression == null ? "String_Node_Str" : "String_Node_Str" + expression + "String_Node_Str"));
      }
      return PermissionCheckResult.fromBoolean(user.explainExpression(expression));
    }
    if (super.hasPermission(permission)) {
      if (user.isDebug()) {
        Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str");
      }
      return PermissionCheckResult.TRUE;
    }
    if (this.bridge.isEnableParentNodes()) {
      Map<String,Boolean> parentNodes=this.bridge.getChildPermissions().get(permission.toLowerCase());
      if (parentNodes != null) {
        for (        String parentPermission : parentNodes.keySet()) {
          PermissionCheckResult result=this.checkPermission(parentPermission);
          if (result == PermissionCheckResult.UNDEFINED) {
            continue;
          }
          PermissionCheckResult anwser=PermissionCheckResult.fromBoolean(parentNodes.get(parentPermission).booleanValue() ^ !result.toBoolean());
          if (user.isDebug()) {
            Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str"+ anwser+ "String_Node_Str"+ parentPermission+ "String_Node_Str");
          }
          return anwser;
        }
      }
    }
    if (user.isDebug()) {
      Logger.getLogger("String_Node_Str").info("String_Node_Str" + user.getName() + "String_Node_Str"+ permission+ "String_Node_Str");
    }
  }
 catch (  Throwable e) {
    e.printStackTrace();
  }
  return PermissionCheckResult.UNDEFINED;
}