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

readYaml error reading textfile with emoji with java.lang.IndexOutOfBoundsException

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • rhel8, jenkins 2.462.2, pipeline-utility-steps 2.17.0, snakeyaml-api 2.3-123.v13484c65210a_

      When reading by readYAML() from file with 4-byte symbol (emoji) on 1024 position, throws error

      Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 8c2fe0e9-9682-43a5-a507-6f4b8c8754d9
      java.lang.IndexOutOfBoundsException: Range [1024, 1024 + 1) out of bounds for length 1024
      	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
      	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromIndexSize(Preconditions.java:82)
      	at java.base/jdk.internal.util.Preconditions.checkFromIndexSize(Preconditions.java:361)
      	at java.base/java.util.Objects.checkFromIndexSize(Objects.java:413)
      	at java.base/java.io.StringReader.read(StringReader.java:98)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:184)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.reader.StreamReader.ensureEnoughData(StreamReader.java:171)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.reader.StreamReader.peek(StreamReader.java:131)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalarNonSpaces(ScannerImpl.java:1903)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalar(ScannerImpl.java:1885)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.scanner.ScannerImpl.fetchFlowScalar(ScannerImpl.java:1057)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.scanner.ScannerImpl.fetchDouble(ScannerImpl.java:1039)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:427)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:238)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:669)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:57)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:43)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:136)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:116)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:249)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:214)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeKeyNode(Composer.java:386)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:357)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:329)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:218)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:396)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:361)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:329)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:218)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:141)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:162)
      	at PluginClassLoader for snakeyaml-api//org.yaml.snakeyaml.Yaml$1.next(Yaml.java:529)
      	at PluginClassLoader for pipeline-utility-steps//org.jenkinsci.plugins.pipeline.utility.steps.conf.ReadYamlStep$Execution.doRun(ReadYamlStep.java:263)
      	at PluginClassLoader for pipeline-utility-steps//org.jenkinsci.plugins.pipeline.utility.steps.AbstractFileOrTextStepExecution.run(AbstractFileOrTextStepExecution.java:29)
      	at PluginClassLoader for workflow-step-api//org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      	at java.base/java.lang.Thread.run(Thread.java:833)
      Finished: FAILURE 

      bugs on snakeyaml

      https://bitbucket.org/snakeyaml/snakeyaml/issues/1100/parsing-big-yaml-with-emoji-doesnt-work ,

      https://bitbucket.org/snakeyaml/snakeyaml/issues/1098/openapi-file-that-crashes-snakeyaml-when

      seems to be fixed in snakeyaml 2.4, but current plugin snakeyaml-api contains 2.3

            rsandell rsandell
            alexanderu Alexander Ukhanov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: