RFR: 8347491: IllegalArgumentationException thrown by ThreadPoolExecutor doesn't have a useful message

Per Minborg pminborg at openjdk.org
Tue Feb 11 08:43:13 UTC 2025


On Sat, 11 Jan 2025 07:10:53 GMT, He-Pin(kerr) <duke at openjdk.org> wrote:

> Motivation:
> When a user passes a wrong parameter, the current implementation throws an IllegalArgumentException with an error message `null`, which is not helpful.
> 
> Modification:
> Add detail error messages.
> 
> Result:
> Helpful messages.

src/java.base/share/classes/java/util/concurrent/AbstractExecutorService.java line 122:

> 120:     @Override
> 121:     public Future<?> submit(Runnable task) {
> 122:         if (task == null) throw new NullPointerException("task can't be null");

Why not use `Objects.requireNonNull()` and break out the repeated code into a common method?

test/jdk/java/util/concurrent/tck/ThreadPoolExecutorTest.java line 758:

> 756:                                    new ArrayBlockingQueue<Runnable>(10));
> 757:             shouldThrow();
> 758:         } catch (IllegalArgumentException success) {

We could test the actual message here.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/23050#discussion_r1950433862
PR Review Comment: https://git.openjdk.org/jdk/pull/23050#discussion_r1950435392


More information about the core-libs-dev mailing list