diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java b/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java index 4f93ce7da..510861f1c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2022 the original author or authors. + * Copyright 2006-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -246,18 +246,19 @@ public class ExitStatus implements Serializable, Comparable { * description. */ public ExitStatus addExitDescription(String description) { - StringBuilder buffer = new StringBuilder(); - boolean changed = StringUtils.hasText(description) && !exitDescription.equals(description); if (StringUtils.hasText(exitDescription)) { - buffer.append(exitDescription); - if (changed) { + if (StringUtils.hasText(description) && !exitDescription.equals(description)) { + StringBuilder buffer = new StringBuilder(description.length() + 2 + exitDescription.length()); + buffer.append(exitDescription); buffer.append("; "); + buffer.append(description); + return new ExitStatus(exitCode, buffer.toString()); } + return this; } - if (changed) { - buffer.append(description); + else { + return new ExitStatus(exitCode, description); } - return new ExitStatus(exitCode, buffer.toString()); } /**