Skip to content

Points and guidelines occasionally stop appearing for all players when doing //bcpos clearall #40

@Frumple

Description

@Frumple

Description

We've noticed after using the plugin for a bit that the //bcpos clearall occasionally causes a NullPointerException in console, and then all points and guidelines stop appearing in game for all players. We've seen two different NullPointerExceptions so far:

[20:21:09 INFO]: FredTheTimeLord issued server command: //bcpos clearall
[20:21:09 WARN]: Exception in thread "Timer-1" java.lang.NullPointerException: Cannot invoke "java.util.Map$Entry.getKey()" because the return value of "java.util.NavigableMap.lastEntry()" is null
[20:21:09 WARN]:        at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.sendParticlePlayer(SendParticles.java:75)
[20:21:09 WARN]:        at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.send(SendParticles.java:62)
[20:21:09 WARN]:        at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.run(SendParticles.java:54)
[20:21:09 WARN]:        at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
[20:21:09 WARN]:        at java.base/java.util.TimerThread.run(Timer.java:516)
[20:33:42] [Server thread/INFO]: FredTheTimeLord issued server command: //bcpos clearall
[20:33:42] [Timer-1/WARN]: Exception in thread "Timer-1" java.lang.NullPointerException
[20:33:42] [Timer-1/WARN]:     at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:904)
[20:33:42] [Timer-1/WARN]:     at worldedit-bukkit-7.3.10.jar//com.sk89q.worldedit.bukkit.BukkitAdapter.adapt(BukkitAdapter.java:203)
[20:33:42] [Timer-1/WARN]:     at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.getLocation(SendParticles.java:250)
[20:33:42] [Timer-1/WARN]:     at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.sendLine(SendParticles.java:195)
[20:33:42] [Timer-1/WARN]:     at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.sendParticlePlayer(SendParticles.java:92)
[20:33:42] [Timer-1/WARN]:     at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.send(SendParticles.java:62)
[20:33:42] [Timer-1/WARN]:     at curvebuilding-bukkit-0.6.3.jar//me.kous500.curvebuilding.bukkit.SendParticles.run(SendParticles.java:54)
[20:33:42] [Timer-1/WARN]:     at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
[20:33:42] [Timer-1/WARN]:     at java.base/java.util.TimerThread.run(Timer.java:516)

Players can still set points using //bcpos afterwards, but the visualization of these points no longer works.

When we do /curvebuilding reload or restart the server afterwards, the visualization comes back, at least until the next time this bug occurs.

Software Used

  • Paper 1.21.4 build 147
  • WorldEdit 7.3.10
  • CurveBuilding 0.6.3

Steps to Reproduce

We're not sure if there are any conditions to make this bug happen, or if it just happens randomly.

  1. Set some points with //bcpos.
  2. Clear the points with //bcpos clearall.

Expected Behaviour

All points selected by the player should be cleared.

Actual Behaviour

Occasionally, all points and guidelines stop appearing for all players. A NullPointerException appears in console. Players can still select points using //bcpos but the visualization of them no longer works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions