RFR: 8347491: IllegalArgumentationException thrown by ThreadPoolExecutor doesn't have a useful message
    Viktor Klang 
    vklang at openjdk.org
       
    Wed Feb 12 14:19:18 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/ThreadPoolExecutor.java line 1264:
> 1262:             throw new IllegalArgumentException("maximumPoolSize must be positive, but got " + maximumPoolSize);
> 1263:         } else if (maximumPoolSize < corePoolSize) {
> 1264:             throw new IllegalArgumentException("maximumPoolSize must >= corePoolSize , " + "but got maximumPoolSize:" + maximumPoolSize + " corePoolSize :" + corePoolSize);
Too many different formulations of messages for me ("can't" vs "must be" vs "must >=")
I'd recommend using "must be" as in "must be non-negative", "must be positive", "must be greater-or-equal to"
test/jdk/java/util/concurrent/tck/ThreadPoolExecutorTest.java line 309:
> 307:                 shouldThrow();
> 308:             } catch (NullPointerException success) {
> 309:                 Assert.assertNotNull(success.getMessage());
Should assert the expected message.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23050#discussion_r1952735674
PR Review Comment: https://git.openjdk.org/jdk/pull/23050#discussion_r1952737822
    
    
More information about the core-libs-dev
mailing list