IndexOutOfBoundsException in MarkupText caused by (Model)HyperlinkNote

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      Very similar to JENKINS-23697, but caused by creating a hyperlink note where the link text contains newline characters. When the note is encoded, the newlines count towards the length, but when the note is being read back via ConsoleAnnotationOutputStream, the data is split at each newline, so the length encoded in the note does not match what the stream sees, causing the IndexOutOfBoundsException.

      One way this could happen is if a build's display name is edited by a user to contain newlines, and then that build is passed to ModelHyperlinkNote#encodeTo. A workaround in that case would be to remove the newlines from the build's display name.

      Here is an example stack trace of the problem:

      java.lang.IndexOutOfBoundsException
      	at hudson.MarkupText.rangeCheck(MarkupText.java:276)
      	at hudson.MarkupText.addMarkup(MarkupText.java:259)
      	at hudson.console.HyperlinkNote.annotate(HyperlinkNote.java:69)
      	at hudson.console.ConsoleAnnotationOutputStream$1.annotate(ConsoleAnnotationOutputStream.java:115)
      	at hudson.console.ConsoleAnnotationOutputStream.eol(ConsoleAnnotationOutputStream.java:145)
      	at hudson.console.LineTransformationOutputStream.eol(LineTransformationOutputStream.java:60)
      	at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:56)
      	at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:74)
              ...
      

            Assignee:
            Devin Nusbaum
            Reporter:
            Devin Nusbaum
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: