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 edaa4986eb..d8161c56e5 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-2023 the original author or authors. + * Copyright 2006-2025 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. @@ -28,6 +28,7 @@ * * @author Dave Syer * @author Mahmoud Ben Hassine + * @author JiWon Seo * */ public class ExitStatus implements Serializable, Comparable { @@ -230,7 +231,7 @@ public ExitStatus replaceExitCode(String code) { * @return {@code true} if the exit code is {@code EXECUTING} or {@code UNKNOWN}. */ public boolean isRunning() { - return "EXECUTING".equals(this.exitCode) || "UNKNOWN".equals(this.exitCode); + return EXECUTING.exitCode.equals(this.exitCode) || UNKNOWN.exitCode.equals(this.exitCode); } /** diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/ExitStatusTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/ExitStatusTests.java index 907ea62ff8..66293ed64f 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/ExitStatusTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/ExitStatusTests.java @@ -33,10 +33,10 @@ /** * @author Dave Syer * @author Mahmoud Ben Hassine + * @author JiWon Seo * */ class ExitStatusTests { - @Test void testExitStatusNullDescription() { ExitStatus status = new ExitStatus("10", null); @@ -153,7 +153,7 @@ void testAddExitDescription() { } @Test - void testAddExitDescriptionWIthStacktrace() { + void testAddExitDescriptionWithStacktrace() { ExitStatus status = ExitStatus.EXECUTING.addExitDescription(new RuntimeException("Foo")); assertNotSame(ExitStatus.EXECUTING, status); String description = status.getExitDescription(); @@ -182,10 +182,19 @@ void testAddExitCodeWithDescription() { } @Test - void testUnknownIsRunning() { + void testIsRunningForExecutingAndUnknown() { + assertTrue(ExitStatus.EXECUTING.isRunning()); assertTrue(ExitStatus.UNKNOWN.isRunning()); } + @Test + void testIsRunningForCompletedStoppedFailedNoop() { + assertFalse(ExitStatus.COMPLETED.isRunning()); + assertFalse(ExitStatus.FAILED.isRunning()); + assertFalse(ExitStatus.STOPPED.isRunning()); + assertFalse(ExitStatus.NOOP.isRunning()); + } + @Test void testSerializable() { ExitStatus status = ExitStatus.EXECUTING.replaceExitCode("FOO"); @@ -217,5 +226,4 @@ private static Stream provideCustomExitStatuses() { return Stream.of(Arguments.of(new ExitStatus("CUSTOM")), Arguments.of(new ExitStatus("SUCCESS")), Arguments.of(new ExitStatus("DONE"))); } - }