vsch / flexmark-java

CommonMark/Markdown Java parser with source level AST. CommonMark 0.28, emulation of: pegdown, kramdown, markdown.pl, MultiMarkdown. With HTML to MD, MD to PDF, MD to DOCX conversion modules.
BSD 2-Clause "Simplified" License
2.26k stars 269 forks source link

Certain phrase causing StringIndexOutOfBoundsException #537

Open fiveoaksmn opened 1 year ago

fiveoaksmn commented 1 year ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce

When I attempt to parse the below markdown phrase:

Hello **World**!

I get the following exception:

java.lang.StringIndexOutOfBoundsException: String index: 16 out of range: [0, 16)
    com.vladsch.flexmark.util.sequence.SequenceUtils.validateIndex(SequenceUtils.java:1143)
    com.vladsch.flexmark.util.sequence.SubSequence.charAt(SubSequence.java:113)
    com.vladsch.flexmark.ext.resizable.image.internal.ResizableImageInlineParserExtension.parse(ResizableImageInlineParserExtension.java:33)
    com.vladsch.flexmark.parser.internal.InlineParserImpl.parseInline(InlineParserImpl.java:368)
    com.vladsch.flexmark.parser.internal.InlineParserImpl.parse(InlineParserImpl.java:169)
    com.vladsch.flexmark.parser.core.ParagraphParser.parseInlines(ParagraphParser.java:64)
    com.vladsch.flexmark.parser.internal.DocumentParser.processInlines(DocumentParser.java:750)
    com.vladsch.flexmark.parser.internal.DocumentParser.finalizeAndProcess(DocumentParser.java:1005)
    com.vladsch.flexmark.parser.internal.DocumentParser.parse(DocumentParser.java:312)
    com.vladsch.flexmark.parser.Parser.parse(Parser.java:388)

The code I am running that produces this is:

Node document = parser.parse( input );

If I remove the ! at the end of the string, it works. Having the ! at the end should be valid.