The documentation states that MiniMessage::deserialize should never throw by default, but when a double quote is left unclosed in the argument list of a tag (e.g. <hover:show_text_:">), a StringIndexOutOfBoundsException is thrown.
Here is the relevant stacktrace:
at java.base/java.lang.String.substring(String.java:2709)
at net.kyori.adventure.text.minimessage.internal.parser.TokenParser.unescape(TokenParser.java:620)
at net.kyori.adventure.text.minimessage.internal.parser.node.TagPart.unquoteAndEscape(TagPart.java:109)
at net.kyori.adventure.text.minimessage.internal.parser.node.TagPart.<init>(TagPart.java:53)
at net.kyori.adventure.text.minimessage.internal.parser.match.StringResolvingMatchedTokenConsumer.accept(StringResolvingMatchedTokenConsumer.java:90)
at net.kyori.adventure.text.minimessage.internal.parser.TokenParser.parseString(TokenParser.java:247)
at net.kyori.adventure.text.minimessage.internal.parser.TokenParser.resolvePreProcessTags(TokenParser.java:112)
at net.kyori.adventure.text.minimessage.MiniMessageParser.parseToTree(MiniMessageParser.java:195)
The documentation states that
MiniMessage::deserialize
should never throw by default, but when a double quote is left unclosed in the argument list of a tag (e.g.<hover:show_text_:">
), aStringIndexOutOfBoundsException
is thrown.Here is the relevant stacktrace: