There was a line in our console output with timestamp only (and no whitespace after)
[2025-07-23T16:46:19.778Z]
This caused StringIndexOutOfBoundsException
10:22:52 Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 0f98af8e-a673-4ce3-a230-58c082ac2516
10:22:52 java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 26
10:22:52 at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Unknown Source)
10:22:52 at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)
10:22:52 at java.base/java.lang.String.substring(Unknown Source)
10:22:52 at java.base/java.lang.String.substring(Unknown Source)
10:22:52 at PluginClassLoader for timestamper//hudson.plugins.timestamper.accessor.TimestampLogFileLineAccessor.readLine(TimestampLogFileLineAccessor.java:108)
10:22:52 at PluginClassLoader for timestamper//hudson.plugins.timestamper.action.TimestampsActionOutput$1.readNextLine(TimestampsActionOutput.java:156)
10:22:52 at PluginClassLoader for timestamper//hudson.plugins.timestamper.action.TimestampsActionOutput$1.read(TimestampsActionOutput.java:119)
10:22:52 at java.base/java.io.BufferedReader.fill(Unknown Source)
10:22:52 at java.base/java.io.BufferedReader.implReadLine(Unknown Source)
10:22:52 at java.base/java.io.BufferedReader.readLine(Unknown Source)
10:22:52 at java.base/java.io.BufferedReader.readLine(Unknown Source)
10:22:52 at PluginClassLoader for log-parser//hudson.plugins.logparser.LogParserParser.parseLogBody(LogParserParser.java:366)
10:22:52 at PluginClassLoader for log-parser//hudson.plugins.logparser.LogParserParser.parseLog(LogParserParser.java:161)
10:22:52 at PluginClassLoader for log-parser//hudson.plugins.logparser.LogParserPublisher.perform(LogParserPublisher.java:120)
10:22:52 at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
10:22:52 at PluginClassLoader for workflow-basic-steps//org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:101)
10:22:52 at PluginClassLoader for workflow-basic-steps//org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:71)
10:22:52 at PluginClassLoader for workflow-step-api//org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:49)
10:22:52 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
10:22:52 at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
10:22:52 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
10:22:52 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
10:22:52 at java.base/java.lang.Thread.run(Unknown Source)
Code expected string of length 27 or more
https://github.com/jenkinsci/timestamper-plugin/blob/master/src/main/java/hudson/plugins/timestamper/accessor/TimestampLogFileLineAccessor.java#L108
103: timestamp = GlobalAnnotator.parseTimestamp(logFileLine, build.getStartTimeInMillis())
104: .orElse(null);
105: if (timestamp != null) {
106: // If we succeeded, then the log file was decorated by GlobalDecorator. Strip the
107: // timestamp decoration from the front of the line.
108: logFileLine = logFileLine.substring(27);
Originally reported by jenkins8, imported from: StringIndexOutOfBoundsException on timestamp only line
- status: Open
- priority: Minor
- component(s): timestamper-plugin
- resolution: Unresolved
- votes: 0
- watchers: 2
- imported: 20251218-075729
Raw content of original issue
There was a line in our console output with timestamp only (and no whitespace after)
[2025-07-23T16:46:19.778Z]
This caused StringIndexOutOfBoundsException
10:22:52 Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 0f98af8e-a673-4ce3-a230-58c082ac2516
10:22:52 java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 26
10:22:52 at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Unknown Source)
10:22:52 at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Unknown Source)
10:22:52 at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)
10:22:52 at java.base/java.lang.String.substring(Unknown Source)
10:22:52 at java.base/java.lang.String.substring(Unknown Source)
10:22:52 at PluginClassLoader for timestamper//hudson.plugins.timestamper.accessor.TimestampLogFileLineAccessor.readLine(TimestampLogFileLineAccessor.java:108)
10:22:52 at PluginClassLoader for timestamper//hudson.plugins.timestamper.action.TimestampsActionOutput$1.readNextLine(TimestampsActionOutput.java:156)
10:22:52 at PluginClassLoader for timestamper//hudson.plugins.timestamper.action.TimestampsActionOutput$1.read(TimestampsActionOutput.java:119)
10:22:52 at java.base/java.io.BufferedReader.fill(Unknown Source)
10:22:52 at java.base/java.io.BufferedReader.implReadLine(Unknown Source)
10:22:52 at java.base/java.io.BufferedReader.readLine(Unknown Source)
10:22:52 at java.base/java.io.BufferedReader.readLine(Unknown Source)
10:22:52 at PluginClassLoader for log-parser//hudson.plugins.logparser.LogParserParser.parseLogBody(LogParserParser.java:366)
10:22:52 at PluginClassLoader for log-parser//hudson.plugins.logparser.LogParserParser.parseLog(LogParserParser.java:161)
10:22:52 at PluginClassLoader for log-parser//hudson.plugins.logparser.LogParserPublisher.perform(LogParserPublisher.java:120)
10:22:52 at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
10:22:52 at PluginClassLoader for workflow-basic-steps//org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:101)
10:22:52 at PluginClassLoader for workflow-basic-steps//org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:71)
10:22:52 at PluginClassLoader for workflow-step-api//org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:49)
10:22:52 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
10:22:52 at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
10:22:52 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
10:22:52 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
10:22:52 at java.base/java.lang.Thread.run(Unknown Source)
Code expected string of length 27 or more
https://github.com/jenkinsci/timestamper-plugin/blob/master/src/main/java/hudson/plugins/timestamper/accessor/TimestampLogFileLineAccessor.java#L108
103: timestamp = GlobalAnnotator.parseTimestamp(logFileLine, build.getStartTimeInMillis())
104: .orElse(null);
105: if (timestamp != null) {
106: // If we succeeded, then the log file was decorated by GlobalDecorator. Strip the
107: // timestamp decoration from the front of the line.
108: logFileLine = logFileLine.substring(27);
- environment:
timestamper 1.30
There was a line in our console output with timestamp only (and no whitespace after)
This caused StringIndexOutOfBoundsException
Code expected string of length 27 or more
https://github.com/jenkinsci/timestamper-plugin/blob/master/src/main/java/hudson/plugins/timestamper/accessor/TimestampLogFileLineAccessor.java#L108
Originally reported by jenkins8, imported from: StringIndexOutOfBoundsException on timestamp only line
Raw content of original issue
timestamper 1.30