Skip to content

NullPointerException when setting flag to "none" in RegionCommands.setFlag #2305

Description

@Bzvzn

WorldEdit Version

7.4.5+7590-b8dc4c1

WorldGuard Version

7.0.18+2392-fa605e6

Platform Version

Purpur 26.2-2627-HEAD@f284e3d

Confirmations

  • I am using the most recent Minecraft release.
  • I am using a version of WorldEdit compatible with my Minecraft version.
  • I am using a version of WorldGuard compatible with my Minecraft version.
  • I am using the latest or recommended version of my platform software.
  • I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
  • I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

Bug Description

When setting a WorldGuard flag to none to remove it, the plugin successfully clears the flag and saves the data in the background, but throws a NullPointerException in the server console/chat. This happens because the command framework attempts to invoke .toString() on the null value returned by RegionCommands.setFlag(...) to build the console/chat feedback.

Copy from the log:

[20:25:40] [Server thread/INFO]: Cannot invoke "Object.toString()" because the return value of "com.sk89q.worldguard.commands.region.RegionCommands.setFlag(com.sk89q.worldguard.protection.regions.ProtectedRegion, com.sk89q.worldguard.protection.flags.Flag, com.sk89q.worldedit.extension.platform.Actor, String)" is null --   | [20:25:44] [WorldGuard Region I/O/INFO]: [WorldGuard] Region data changes made in 'world' have been background saved

Expected Behavior

The plugin should successfully clear the flag, gracefully handle the null return value from the cleared state, and send a standard confirmation message without throwing any errors in the console.

Reproduction Steps

  1. Create a region and assign a flag to a specific value (e.g., /rg flag testregion exit deny).
  2. Attempt to remove the flag by setting it to none (e.g., /rg flag testregion exit none).
  3. Check the server console to observe the Cannot invoke "Object.toString()" ... is null error, followed by the background save message.

Optional WorldGuard-Report

No response

Anything Else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:pendingPending acceptance or closure.type:bugIncorrect behavior, not working as intended

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions