-
Enhancement
-
Resolution: Won't Fix
-
P4
-
None
-
19
-
generic
-
generic
A DESCRIPTION OF THE PROBLEM :
Its name strongly suggests that the task or action represented by the Future is in progress. That might often be the case for tasks that are submitted to a pool that runs them right away, but it isn’t a guarantee. Even more so, it is completely wrong for Futures for tasks that are scheduled via ScheduledExecutorService to start at a future time and for CompletableFutures for actions that must not start until the stage(s) that they depend upon have finished. The authors of the JavaDoc (https://download.java.net/java/early_access/jdk19/docs/api/java.base/java/util/concurrent/Future.State.html#RUNNING) must have understood this because they wrote their description of RUNNING as, “The task has not completed”. However, that description does not in any way match up with what it means in the real world to state that something is running. By that definition, you could claim that something is running because it didn’t ever start, which is nonsense. This will cause confusion and unnecessary customer service cases if left as is.
Please correct this prior to inclusion in a long-term supported release of Java SE. The simplest way to fix it would just be to rename the state to INCOMPLETE, which naturally encompasses what hasn’t started at all along with what is still in progress, as well as what was started but is currently suspended in favor of higher priority work.
Its name strongly suggests that the task or action represented by the Future is in progress. That might often be the case for tasks that are submitted to a pool that runs them right away, but it isn’t a guarantee. Even more so, it is completely wrong for Futures for tasks that are scheduled via ScheduledExecutorService to start at a future time and for CompletableFutures for actions that must not start until the stage(s) that they depend upon have finished. The authors of the JavaDoc (https://download.java.net/java/early_access/jdk19/docs/api/java.base/java/util/concurrent/Future.State.html#RUNNING) must have understood this because they wrote their description of RUNNING as, “The task has not completed”. However, that description does not in any way match up with what it means in the real world to state that something is running. By that definition, you could claim that something is running because it didn’t ever start, which is nonsense. This will cause confusion and unnecessary customer service cases if left as is.
Please correct this prior to inclusion in a long-term supported release of Java SE. The simplest way to fix it would just be to rename the state to INCOMPLETE, which naturally encompasses what hasn’t started at all along with what is still in progress, as well as what was started but is currently suspended in favor of higher priority work.