diff --git a/src/main/java/org/vibur/objectpool/ConcurrentPool.java b/src/main/java/org/vibur/objectpool/ConcurrentPool.java index 72a37eb..eb21a03 100644 --- a/src/main/java/org/vibur/objectpool/ConcurrentPool.java +++ b/src/main/java/org/vibur/objectpool/ConcurrentPool.java @@ -115,10 +115,11 @@ public ConcurrentPool(ConcurrentCollection available, PoolObjectFactory po */ public ConcurrentPool(ConcurrentCollection available, PoolObjectFactory poolObjectFactory, int initialSize, int maxSize, boolean fair, Listener listener) { - forbidIllegalArgument(initialSize < 0); - forbidIllegalArgument(maxSize < 1 || maxSize < initialSize || maxSize > MAX_ALLOWED_SIZE); - int availableSize = available.size(); - forbidIllegalArgument(availableSize != 0 && availableSize != initialSize); + forbidIllegalArgument(initialSize < 0, String.format("Initial size %s should be >= 0", initialSize)); + forbidIllegalArgument(maxSize < 1 || maxSize < initialSize || maxSize > MAX_ALLOWED_SIZE, String.format( + "maxSize %s should be between %s %s this is now not the case", maxSize, MAX_ALLOWED_SIZE, initialSize)); + int availableSize = available.size(); + forbidIllegalArgument(availableSize != 0 && availableSize != initialSize, String.format("availableSize == initialSize (%s != %s)", availableSize, initialSize)); this.available = requireNonNull(available); this.poolObjectFactory = requireNonNull(poolObjectFactory); @@ -396,7 +397,7 @@ public int maxSize() { @Override public int reduceCreatedBy(int reduceBy, boolean ignoreInitialSize) { - forbidIllegalArgument(reduceBy < 0); + forbidIllegalArgument(reduceBy < 0, String.format("reduceBy %s should be >= 0", reduceBy)); for (int cnt = 0; cnt < reduceBy; cnt++) { if (!reduceByOne(ignoreInitialSize)) { @@ -408,7 +409,7 @@ public int reduceCreatedBy(int reduceBy, boolean ignoreInitialSize) { @Override public int reduceCreatedTo(int reduceTo, boolean ignoreInitialSize) { - forbidIllegalArgument(reduceTo < 0); + forbidIllegalArgument(reduceTo < 0,String.format("reduceTo %s should be >= 0", reduceTo)); int cnt; for (cnt = 0; createdTotal() > reduceTo; cnt++) { diff --git a/src/main/java/org/vibur/objectpool/util/ArgumentValidation.java b/src/main/java/org/vibur/objectpool/util/ArgumentValidation.java index 7066515..48f7c66 100644 --- a/src/main/java/org/vibur/objectpool/util/ArgumentValidation.java +++ b/src/main/java/org/vibur/objectpool/util/ArgumentValidation.java @@ -23,9 +23,9 @@ public final class ArgumentValidation { private ArgumentValidation() { } - public static void forbidIllegalArgument(boolean condition) { + public static void forbidIllegalArgument(boolean condition, String msg) { if (condition) { - throw new IllegalArgumentException(); + throw new IllegalArgumentException(msg); } } } diff --git a/src/main/java/org/vibur/objectpool/util/SamplingPoolReducer.java b/src/main/java/org/vibur/objectpool/util/SamplingPoolReducer.java index 55e9cca..2ac7574 100644 --- a/src/main/java/org/vibur/objectpool/util/SamplingPoolReducer.java +++ b/src/main/java/org/vibur/objectpool/util/SamplingPoolReducer.java @@ -72,11 +72,11 @@ public class SamplingPoolReducer implements ThreadedPoolReducer { * {@code pool == null || unit == null} */ public SamplingPoolReducer(BasePool pool, long timeInterval, TimeUnit unit, int samples) { - forbidIllegalArgument(timeInterval <= 0); - forbidIllegalArgument(samples <= 0); + forbidIllegalArgument(timeInterval <= 0, String.format("timeInterval %s should be > 0", timeInterval)); + forbidIllegalArgument(samples <= 0, String.format("samples %s should be > 0", samples)); this.sleepNanoTime = unit.toNanos(timeInterval) / samples; - forbidIllegalArgument(sleepNanoTime == 0); + forbidIllegalArgument(sleepNanoTime == 0, String.format("sleepNanoTime %s should be > 0", sleepNanoTime)); this.pool = requireNonNull(pool); this.samples = samples;