Michael Osipov created POOL-271: ----------------------------------- Summary: Make standard use of NullPoinerException instead of IllegalArgumentException Key: POOL-271 URL: https://issues.apache.org/jira/browse/POOL-271 Project: Commons Pool Issue Type: Improvement Affects Versions: 2.2 Reporter: Michael Osipov
{{IllegalArgumentException}} is abused in several spots where a {{NullPointerException}} is appropriate as per Java convention: {noformat} $ grep -r "throw new IllegalArgumentException" . ./org/apache/commons/pool2/impl/BaseGenericObjectPool.java: throw new IllegalArgumentException( ./org/apache/commons/pool2/impl/BaseGenericObjectPool.java: throw new IllegalArgumentException( ./org/apache/commons/pool2/impl/BaseGenericObjectPool.java: throw new IllegalArgumentException( ./org/apache/commons/pool2/impl/LinkedBlockingDeque.java: if (capacity <= 0) throw new IllegalArgumentException(); ./org/apache/commons/pool2/impl/LinkedBlockingDeque.java: throw new IllegalArgumentException(); ./org/apache/commons/pool2/impl/LinkedBlockingDeque.java:// throw new IllegalArgumentException(); ./org/apache/commons/pool2/impl/GenericKeyedObjectPool.java: throw new IllegalArgumentException("factory may not be null"); ./org/apache/commons/pool2/impl/GenericObjectPool.java: throw new IllegalArgumentException("factory may not be null"); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("keyedPool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("minIdle must be non-negative."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("keyedPool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("key must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("minIdle must be non-negative."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("keys must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("pool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("keyedPool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("key must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("keys must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("pool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("pool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("factor must be positive."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("keyedPool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("factor must be positive."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("pool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException( ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("pool must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException( ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException("factory must not be null."); ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException( ./org/apache/commons/pool2/PoolUtils.java: throw new IllegalArgumentException( {noformat} Most of the hits apply and should throw a {{NullPointerException}}. There is a similar issue with Commons Lang. Alternatively, the {{ValidationUtils}} from Commons Lang should be privately imported (shaded) which do the right thing. -- This message was sent by Atlassian JIRA (v6.2#6252)