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

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

XMLWordPrintable

      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

            Assignee:
            rsandell
            Reporter:
            Alexander Ukhanov
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: