Program: 151300
Project: 151300
Buggy source:
protected void updatePermissions(Player player){
  if (player == null) {
    return;
  }
  if (!this.attachments.containsKey(player)) {
    this.attachments.put(player,player.addAttachment(plugin));
  }
  PermissionAttachment attachment=this.attachments.get(player);
  PermissionUser user=PermissionsEx.getPermissionManager().getUser(player);
  String permissions[]=user.getPermissions(player.getWorld().getName());
  for (  String permission : attachment.getPermissions().keySet()) {
    attachment.unsetPermission(permission);
  }
  if (dumpMatchedPermissions) {
    for (    Permission permission : registeredPermissions) {
      String matchingExpression=user.getMatchingExpression(permissions,permission.getName());
      boolean permissionValue=PermissionEntity.explainExpression(matchingExpression);
      if (!disableByDefault && matchingExpression == null) {
        continue;
      }
      attachment.setPermission(permission,permissionValue);
    }
  }
  if (dumpAllPermissions) {
    for (    String permission : permissions) {
      Boolean value=true;
      if (permission.startsWith("String_Node_Str")) {
        permission=permission.substring(1);
        value=false;
      }
      if (!attachment.getPermissions().containsKey(permission)) {
        attachment.setPermission(permission,value);
      }
    }
  }
  player.recalculatePermissions();
  if (PermissionsEx.getPermissionManager().isDebug()) {
    PermissionsEx.logger.info("String_Node_Str" + player.getName() + "String_Node_Str");
  }
}

Fixed version (ground truth):
protected void updatePermissions(Player player,String world){
  if (player == null) {
    return;
  }
  if (!this.attachments.containsKey(player)) {
    this.attachments.put(player,player.addAttachment(plugin));
  }
  if (world == null) {
    world=player.getWorld().getName();
  }
  PermissionAttachment attachment=this.attachments.get(player);
  PermissionUser user=PermissionsEx.getPermissionManager().getUser(player);
  String permissions[]=user.getPermissions(world);
  for (  String permission : attachment.getPermissions().keySet()) {
    attachment.unsetPermission(permission);
  }
  if (dumpMatchedPermissions) {
    for (    Permission permission : registeredPermissions) {
      String matchingExpression=user.getMatchingExpression(permissions,permission.getName());
      boolean permissionValue=PermissionEntity.explainExpression(matchingExpression);
      if (!disableByDefault && matchingExpression == null) {
        continue;
      }
      attachment.setPermission(permission,permissionValue);
    }
  }
  if (dumpAllPermissions) {
    for (    String permission : permissions) {
      Boolean value=true;
      if (permission.startsWith("String_Node_Str")) {
        permission=permission.substring(1);
        value=false;
      }
      if (!attachment.getPermissions().containsKey(permission)) {
        attachment.setPermission(permission,value);
      }
    }
  }
  player.recalculatePermissions();
  if (PermissionsEx.getPermissionManager().isDebug()) {
    PermissionsEx.logger.info("String_Node_Str" + player.getName() + "String_Node_Str"+ player.getWorld().getName()+ "String_Node_Str");
  }
}