Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-53016

IndexOutOfBoundsException in MarkupText caused by (Model)HyperlinkNote


    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • None

      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:

      	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)

            dnusbaum Devin Nusbaum
            dnusbaum Devin Nusbaum
            0 Vote for this issue
            3 Start watching this issue