[Bug]: NPE when onCampaignLoad creates Lib:Token

Open
#5,969 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
java
Domain
backend

Research direction

Reproduce the issue using the supplied onCampaignLoad macro, then trace the server-side token creation path reached by createToken and the first-connect handling that produces the NPE. The report names no source files or tests, so locate the relevant code and tests from those entry points; done means the first connection reports a meaningful error for a real failure or no error for a false positive.

Written by the indexing model from the issue text.

Description

bug
Describe the Bug

When you create a library token through onCampaignLoad, you can produce the attached NPE error on the server when the player connects for the first time. Subsequent reconnects do not produce the error. To reproduce a second time you have to delete the Lib:token that was created, and close the MapTool server session, open MapTool, load the campaign, start server, issue should repeat

Image
To Reproduce

On an existing Library token, create an onCampaignLoad macro.
This code:

[h: tokenImage = getTokenImage("",findToken(getMacroLocation()))]
[h: tokenTemplate = json.set("{}", 
	"name", tokenName,
	"tokenImage", tokenImage,
	"size","medium",
	"layer","token",
	"gmName","",
	"relativeto", "map",
	"x", 0,
	"y", 0
)]
[h: tokenID = createToken(tokenTemplate)]
Expected Behaviour

A meaningful error if it is a real failure or "" if it's a false/positive

If true/positive I'd expect it to be somehow mitigated (not exactly sure how yet though)

Screenshots
MapTool Info

v1.18.6

Desktop

Win 11

Additional Context

No response

Dominant language
Java
Stars
927
Forks
286
Avg merge
3d 17h
Merged PRs (30d)
94

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from RPTools/maptool

All issues in RPTools/maptool

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.