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

IndexOutOfBoundsException in MarkupText caused by (Model)HyperlinkNote

    XMLWordPrintable

Details

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

    Description

      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)
              ...
      

      Attachments

        Issue Links

          Activity

            People

              dnusbaum Devin Nusbaum
              dnusbaum Devin Nusbaum
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: