You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[16:31:41] [Async Tab Complete Thread - #0/ERROR]: Caught previously unhandled exception :
[16:31:41] [Async Tab Complete Thread - #0/ERROR]: Async Tab Complete Thread - #0
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.base/java.util.TimSort.mergeHi(TimSort.java:903) ~[?:?]
at java.base/java.util.TimSort.mergeAt(TimSort.java:520) ~[?:?]
at java.base/java.util.TimSort.mergeCollapse(TimSort.java:448) ~[?:?]
at java.base/java.util.TimSort.sort(TimSort.java:245) ~[?:?]
at java.base/java.util.Arrays.sort(Arrays.java:1308) ~[?:?]
at java.base/java.util.ArrayList.sort(ArrayList.java:1804) ~[?:?]
at com.mojang.brigadier.suggestion.Suggestions.create(Suggestions.java:99) ~[brigadier-1.3.10.jar:?]
at com.mojang.brigadier.suggestion.SuggestionsBuilder.build(SuggestionsBuilder.java:51) ~[brigadier-1.3.10.jar:?]
at com.mojang.brigadier.suggestion.SuggestionsBuilder.buildFuture(SuggestionsBuilder.java:55) ~[brigadier-1.3.10.jar:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCustomCommandSuggestions0(ServerGamePacketListenerImpl.java:844) ~[paper-1.21.1.jar:1.21.1-DEV-d348cb8]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleCustomCommandSuggestions$1(ServerGamePacketListenerImpl.java:811) ~[paper-1.21.1.jar:1.21.1-DEV-d348cb8]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
The error is in brigadier, I opened an issue a few months back but they don't seem interested in fixing it, is it possible we can fix this from paper?
TLDR: string and integer types are mixed in the comparator which causes weird behaviour to be detected by Tim sort i.e. a < b, b < c but a < c which causes an error to be thrown.
Stack trace
The error is in brigadier, I opened an issue a few months back but they don't seem interested in fixing it, is it possible we can fix this from paper?
TLDR: string and integer types are mixed in the comparator which causes weird behaviour to be detected by Tim sort i.e. a < b, b < c but a < c which causes an error to be thrown.
Issue link and tech explanation here: Mojang/brigadier#154
Plugin and Datapack List
N/A
Actions to reproduce (if known)
This error can only happen if we are using paper AsyncTabCompleteEvent, doesn't happen with normal bukkit tab completers.
This code can replicate it, its very flaky though, you need to tab complete different commands a few times to trigger the error:
Paper version
1.21.1 b48403b
99% sure issue still exists in 1.21.4 as brigadier version is the same in both and issue is inside brigadier.
Other
No response
The text was updated successfully, but these errors were encountered: