IntellectualSites / IntellectualSites/FastAsyncWorldEdit
LinBus fails to deserialize BaseItem using BaseItemAdapter
Open
Nobody has claimed this yet.
Bug
- Dominant language
- Java
- Stars
- 806
- Forks
- 394
- Avg merge
- 22h 19m
- Merged PRs (30d)
- 14
Description
Server Implementation
Paper
Server Version
1.21.3
Describe the bug
Most likely since the LinBus introduction?
To Reproduce
session data (in sessions folder):
{"selector":"CUBOID","useServerCUI":false,"wandItem":{"itemType":{"id":"minecraft:wooden_axe"},"nbt":"{}"},"navWandItem":{"itemType":{"id":"minecraft:compass"}}}
Expected behaviour
Screenshots / Videos
No response
Error log (if applicable)
No response
Fawe Debugpaste
Fawe Version
Checklist
- I have included a Fawe debugpaste.
- I am using the newest build from https://ci.athion.net/job/FastAsyncWorldEdit/ and the issue still persists.
Anything else?
Caused by: org.enginehub.linbus.stream.exception.NbtParseException: At character index 1: Unexpected token: '}', expected Text
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/org.enginehub.linbus.format.snbt.impl.reader.LinSnbtReader.unexpectedTokenSpecificError(LinSnbtReader.java:165) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/org.enginehub.linbus.format.snbt.impl.reader.LinSnbtReader.readName(LinSnbtReader.java:256) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/org.enginehub.linbus.format.snbt.impl.reader.LinSnbtReader.fillTokenStack(LinSnbtReader.java:187) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/org.enginehub.linbus.format.snbt.impl.reader.LinSnbtReader.nextOrNull(LinSnbtReader.java:176) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/org.enginehub.linbus.stream.impl.OptionalInfoCalculator.nextOrNull(OptionalInfoCalculator.java:68) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/org.enginehub.linbus.tree.impl.LinTagReader.readCompound(LinTagReader.java:93) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/org.enginehub.linbus.tree.LinCompoundTag.readFrom(LinCompoundTag.java:257) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/com.fastasyncworldedit.core.util.gson.BaseItemAdapter.deserialize(BaseItemAdapter.java:42) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/com.fastasyncworldedit.core.util.gson.BaseItemAdapter.deserialize(BaseItemAdapter.java:21) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:76) ~[gson-2.10.1.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.readIntoField(ReflectiveTypeAdapterFactory.java:212) ~[gson-2.10.1.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:433) ~[gson-2.10.1.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:393) ~[gson-2.10.1.jar:?]
at com.google.gson.Gson.fromJson(Gson.java:1227) ~[gson-2.10.1.jar:?]
at com.google.gson.Gson.fromJson(Gson.java:1137) ~[gson-2.10.1.jar:?]
at com.google.gson.Gson.fromJson(Gson.java:1075) ~[gson-2.10.1.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/com.sk89q.worldedit.session.storage.JsonFileSessionStore.load(JsonFileSessionStore.java:104) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/com.sk89q.worldedit.session.SessionManager.get(SessionManager.java:160) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/com.sk89q.worldedit.extension.platform.PlatformManager.handleBlockInteract(PlatformManager.java:393) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/com.sk89q.worldedit.util.eventbus.MethodHandleEventHandler.dispatch(MethodHandleEventHandler.java:51) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]
at FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar/com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(EventHandler.java:73) ~[FastAsyncWorldEdit-Bukkit-2.12.1-SNAPSHOT-965.jar:?]```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with com.fastasyncworldedit.core.util.gson.BaseItemAdapter.deserialize and the failing path through LinCompoundTag.readFrom and LinSnbtReader.readName. Reproduce loading the session JSON containing an empty "nbt":"{}" value, then inspect the relevant LinBus parsing behavior. Done means the BaseItem data deserializes without the reported NbtParseException and the regression is covered by an appropriate test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100