From 1b3098a7a1339ed6dc2dceb69fda5155db6b8b4a Mon Sep 17 00:00:00 2001 From: sjiwon Date: Sat, 15 Mar 2025 16:13:20 +0900 Subject: [PATCH 1/6] refactor: use type-safe constants in `ExitStatus.isRunning` Signed-off-by: sjiwon --- .../main/java/org/springframework/batch/core/ExitStatus.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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..e3bbbc21e6 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 @@ -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); } /** From d465c1d92919343f8af6840b7c8abdff702f0618 Mon Sep 17 00:00:00 2001 From: sjiwon Date: Sat, 15 Mar 2025 16:16:33 +0900 Subject: [PATCH 2/6] test: optimize codes Signed-off-by: sjiwon --- .../java/org/springframework/batch/core/ExitStatusTests.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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..e76a71b164 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(); @@ -217,5 +217,4 @@ private static Stream provideCustomExitStatuses() { return Stream.of(Arguments.of(new ExitStatus("CUSTOM")), Arguments.of(new ExitStatus("SUCCESS")), Arguments.of(new ExitStatus("DONE"))); } - } From 62f5c3a83312f3cfea135f6aa0539ea8ae7cf7bb Mon Sep 17 00:00:00 2001 From: sjiwon Date: Sat, 15 Mar 2025 16:18:19 +0900 Subject: [PATCH 3/6] test: add test for `ExitStatus.isRunning` Signed-off-by: sjiwon --- .../springframework/batch/core/ExitStatusTests.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 e76a71b164..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 @@ -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"); From c8d27553c41a5d042674a5c92c956ab2c9c9e89f Mon Sep 17 00:00:00 2001 From: sjiwon Date: Sat, 15 Mar 2025 21:18:03 +0900 Subject: [PATCH 4/6] chore: update date range in the Apache license header Signed-off-by: sjiwon --- .../main/java/org/springframework/batch/core/ExitStatus.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e3bbbc21e6..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. From 849727bf807eeffcdc66ffafd640882d3c340b17 Mon Sep 17 00:00:00 2001 From: sjiwon Date: Sat, 15 Mar 2025 21:33:17 +0900 Subject: [PATCH 5/6] refactor: simplify ExitStatus#isRunning using instance equality Signed-off-by: sjiwon --- .../main/java/org/springframework/batch/core/ExitStatus.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 d8161c56e5..e33405ee25 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 @@ -228,10 +228,10 @@ public ExitStatus replaceExitCode(String code) { /** * Check if this status represents a running process. - * @return {@code true} if the exit code is {@code EXECUTING} or {@code UNKNOWN}. + * @return {@code true} if this status is {@code EXECUTING} or {@code UNKNOWN}. */ public boolean isRunning() { - return EXECUTING.exitCode.equals(this.exitCode) || UNKNOWN.exitCode.equals(this.exitCode); + return this == EXECUTING || this == UNKNOWN; } /** From 4455410102d7586adb646d69056e01c85f84cf9d Mon Sep 17 00:00:00 2001 From: sjiwon Date: Thu, 20 Mar 2025 17:33:43 +0900 Subject: [PATCH 6/6] refactor: revert ExitStatus#isRunning to use exitCode comparison Signed-off-by: sjiwon --- .../main/java/org/springframework/batch/core/ExitStatus.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 e33405ee25..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 @@ -228,10 +228,10 @@ public ExitStatus replaceExitCode(String code) { /** * Check if this status represents a running process. - * @return {@code true} if this status is {@code EXECUTING} or {@code UNKNOWN}. + * @return {@code true} if the exit code is {@code EXECUTING} or {@code UNKNOWN}. */ public boolean isRunning() { - return this == EXECUTING || this == UNKNOWN; + return EXECUTING.exitCode.equals(this.exitCode) || UNKNOWN.exitCode.equals(this.exitCode); } /**