OK, I get it now.  I am just worried about making people change things
twice - first to a method that takes Duration rather than long and then to
another one that does the same thing but now has a different name.  How
about leaving the 2.x names as is, not adding new methods with the same
signatures but different names, keeping the old deprecated millis ones
marked deprecated and make the change to more easily disambiguate names in
3.x?  Otherwise, the 2.x code gets very cluttered and it also forces us to
finalize the 3.0 names now.  We made a bunch of name changes in 2.0 and I
think it is fair to do some of that in 3.0 as well.

On Thu, Jul 20, 2023 at 4:51 PM Gary Gregory <garydgreg...@gmail.com> wrote:

> Hi Phil,
>
> There can get some ambiguity for me when I read code like (unless you know
> the API inside and out and use it on the daily):
>
> somePoolThing.getFooTime()
>
> Some of our methods return a Duration and others an Instant, so there, I
> think the type in the method name makes sense. Then, for a bit of symmetry,
> it's nice if the setter and getter names are the same (minus the set/get
> prefix obv).
>
> Gary
>
>
> On Tue, Jul 18, 2023, 17:38 Phil Steitz <phil.ste...@gmail.com> wrote:
>
> > I like changing the arguments to be Duration, but that has already been
> > done.   What I am talking about is the method names, which is a second
> > change that I don't think is necessary.  For example, unless I am missing
> > something, before this commit, we had setTimeBetweenEvctionRuns(Duration)
> > and that is being deprecated and changed to
> > setDurationBetweenEvictionRuns(Duration).   I actually think the first
> name
> > is better.  It is natural English and it is not a good practice to put
> type
> > names in method names, IMO.  But more importantly, anyone who started
> using
> > this will have to change - in my mind needlessly.  Am I misreading the
> > diff?
> >
> > I would move to at least Java 11 for 3.0 and I would not keep JMX, but it
> > would be good to ask on the user list if anyone is depending on it /
> would
> > be seriously harmed if it goes away.  I think the Tomcat JMX may depend
> on
> > it, but I am not sure what the state of play there is vis a vis JMX.
> >
> > Phil
> >
> > On Tue, Jul 18, 2023 at 2:16 PM Gary Gregory <garydgreg...@gmail.com>
> > wrote:
> >
> > > This will make it smoother to port to 3.0 where there will be no long
> > time
> > > APIs, the Duration type is used throughout (unless Instant is
> > appropriate).
> > > I have most of the deprecated methods removed locally and will push in
> a
> > > day or two.
> > >
> > > What remains:
> > > - do we want to keep the JMX code?
> > > - should 3.0 use Java 11 or 17?
> > >
> > > Gary
> > >
> > > On Tue, Jul 18, 2023, 16:41 Phil Steitz <phil.ste...@gmail.com> wrote:
> > >
> > > > Why exactly do we need to s/Time/Duration in all of the method names?
> > > > Duration is a measure of time.  I don't get why this is necessary and
> > it
> > > > will force people to change (eventually).  I was +1 to get rid of the
> > > > "millis" in the names, but this change seems needless to me.  Also,
> > there
> > > > are still quite a few places where the text of the javadoc refers to
> > > > milliseconds.  Was this discussed before and I missed it?
> > > >
> > > > Phil
> > > >
> > > > On Tue, Jul 18, 2023 at 7:25 AM <ggreg...@apache.org> wrote:
> > > >
> > > > > This is an automated email from the ASF dual-hosted git repository.
> > > > >
> > > > > ggregory pushed a commit to branch POOL_2_X
> > > > > in repository https://gitbox.apache.org/repos/asf/commons-pool.git
> > > > >
> > > > >
> > > > > The following commit(s) were added to refs/heads/POOL_2_X by this
> > push:
> > > > >      new 9d2f4af1 Add Duration named APIs and deprecate old APIs.
> > > > > 9d2f4af1 is described below
> > > > >
> > > > > commit 9d2f4af14dde121271c1bb862d4b1f236072eb2a
> > > > > Author: Gary Gregory <garydgreg...@gmail.com>
> > > > > AuthorDate: Tue Jul 18 10:25:03 2023 -0400
> > > > >
> > > > >     Add Duration named APIs and
> > > > >     deprecate old APIs.
> > > > >
> > > > >     Eases migration to 3.0.0
> > > > > ---
> > > > >  .../commons/pool2/impl/BaseGenericObjectPool.java  | 102
> > > > > +++++++++++++++++----
> > > > >  .../commons/pool2/impl/BaseObjectPoolConfig.java   |  32 ++++++-
> > > > >  .../commons/pool2/impl/GenericKeyedObjectPool.java |   2 +-
> > > > >  .../commons/pool2/impl/GenericObjectPool.java      |   2 +-
> > > > >  .../apache/commons/pool2/ObjectPoolIssue326.java   |   2 +
> > > > >  .../java/org/apache/commons/pool2/PoolTest.java    |   2 +-
> > > > >  .../pool2/impl/TestAbandonedKeyedObjectPool.java   |   2 +-
> > > > >  .../pool2/impl/TestAbandonedObjectPool.java        |   2 +-
> > > > >  .../pool2/impl/TestGenericKeyedObjectPool.java     |   5 +-
> > > > >  .../commons/pool2/impl/TestGenericObjectPool.java  |   6 +-
> > > > >  .../impl/TestGenericObjectPoolClassLoaders.java    |   4 +-
> > > > >  .../TestGenericObjectPoolFactoryCreateFailure.java |   3 +-
> > > > >  12 files changed, 131 insertions(+), 33 deletions(-)
> > > > >
> > > > > diff --git
> > > > >
> > >
> a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
> > > > >
> > >
> b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
> > > > > index 4277ce86..fc95ba32 100644
> > > > > ---
> > > > >
> > >
> a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
> > > > > +++
> > > > >
> > >
> b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
> > > > > @@ -867,7 +867,7 @@ public abstract class BaseGenericObjectPool<T>
> > > > extends
> > > > > BaseObject implements Aut
> > > > >      /**
> > > > >       * Gets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}). When
> > > > > non-positive,
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}).
> When
> > > > > non-positive,
> > > > >       * no objects will be evicted from the pool due to idle time
> > > alone.
> > > > >       *
> > > > >       * @return minimum amount of time an object may sit idle in
> the
> > > pool
> > > > > before
> > > > > @@ -884,7 +884,7 @@ public abstract class BaseGenericObjectPool<T>
> > > > extends
> > > > > BaseObject implements Aut
> > > > >      /**
> > > > >       * Gets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}). When
> > > > > non-positive,
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}).
> When
> > > > > non-positive,
> > > > >       * no objects will be evicted from the pool due to idle time
> > > alone.
> > > > >       *
> > > > >       * @return minimum amount of time an object may sit idle in
> the
> > > pool
> > > > > before
> > > > > @@ -1017,7 +1017,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Gets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}),
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}),
> > > > >       * with the extra condition that at least {@code minIdle}
> object
> > > > >       * instances remain in the pool. This setting is overridden by
> > > > >       * {@link #getMinEvictableIdleTime} (that is, if
> > > > > @@ -1027,7 +1027,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       * @return minimum amount of time an object may sit idle in
> the
> > > pool
> > > > > before
> > > > >       *         it is eligible for eviction if minIdle instances
> are
> > > > > available
> > > > >       *
> > > > > -     * @see #setSoftMinEvictableIdle(Duration)
> > > > > +     * @see #setSoftMinEvictableIdleDuration(Duration)
> > > > >       * @since 2.11.0
> > > > >       */
> > > > >      public final Duration getSoftMinEvictableIdleDuration() {
> > > > > @@ -1037,7 +1037,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Gets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}),
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}),
> > > > >       * with the extra condition that at least {@code minIdle}
> object
> > > > >       * instances remain in the pool. This setting is overridden by
> > > > >       * {@link #getMinEvictableIdleTime} (that is, if
> > > > > @@ -1047,7 +1047,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       * @return minimum amount of time an object may sit idle in
> the
> > > pool
> > > > > before
> > > > >       *         it is eligible for eviction if minIdle instances
> are
> > > > > available
> > > > >       *
> > > > > -     * @see #setSoftMinEvictableIdle(Duration)
> > > > > +     * @see #setSoftMinEvictableIdleDuration(Duration)
> > > > >       * @since 2.10.0
> > > > >       * @deprecated Use {@link #getSoftMinEvictableIdleDuration}.
> > > > >       */
> > > > > @@ -1175,7 +1175,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Gets whether objects sitting idle in the pool will be
> > validated
> > > > by
> > > > > the
> > > > >       * idle object evictor (if any - see
> > > > > -     * {@link #setTimeBetweenEvictionRuns(Duration)}). Validation
> is
> > > > > performed
> > > > > +     * {@link #setDurationBetweenEvictionRuns(Duration)}).
> > Validation
> > > is
> > > > > performed
> > > > >       * by the {@code validateObject()} method of the factory
> > > associated
> > > > >       * with the pool. If the object fails to validate, it will be
> > > > removed
> > > > > from
> > > > >       * the pool and destroyed.
> > > > > @@ -1369,9 +1369,9 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >          setTestOnReturn(config.getTestOnReturn());
> > > > >          setTestWhileIdle(config.getTestWhileIdle());
> > > > >
> > setNumTestsPerEvictionRun(config.getNumTestsPerEvictionRun());
> > > > > -        setMinEvictableIdle(config.getMinEvictableIdleDuration());
> > > > > -
> > > > >
> setTimeBetweenEvictionRuns(config.getDurationBetweenEvictionRuns());
> > > > > -
> > > > setSoftMinEvictableIdle(config.getSoftMinEvictableIdleDuration());
> > > > > +
> > > > setMinEvictableIdleDuration(config.getMinEvictableIdleDuration());
> > > > > +
> > > > >
> > >
> setDurationBetweenEvictionRuns(config.getDurationBetweenEvictionRuns());
> > > > > +
> > > > >
> > > >
> > >
> >
> setSoftMinEvictableIdleDuration(config.getSoftMinEvictableIdleDuration());
> > > > >          final EvictionPolicy<T> policy =
> config.getEvictionPolicy();
> > > > >          if (policy == null) {
> > > > >              // Use the class name (pre-2.6.0 compatible)
> > > > > @@ -1383,6 +1383,24 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >
> > > > >
> > setEvictorShutdownTimeout(config.getEvictorShutdownTimeoutDuration());
> > > > >      }
> > > > >
> > > > > +    /**
> > > > > +     * Sets the number of milliseconds to sleep between runs of
> the
> > > idle
> > > > > object evictor thread.
> > > > > +     * <ul>
> > > > > +     * <li>When positive, the idle object evictor thread
> > starts.</li>
> > > > > +     * <li>When non-positive, no idle object evictor thread
> > runs.</li>
> > > > > +     * </ul>
> > > > > +     *
> > > > > +     * @param timeBetweenEvictionRuns
> > > > > +     *            duration to sleep between evictor runs
> > > > > +     *
> > > > > +     * @see #getDurationBetweenEvictionRuns()
> > > > > +     * @since 2.12.0
> > > > > +     */
> > > > > +    public final void setDurationBetweenEvictionRuns(final
> Duration
> > > > > timeBetweenEvictionRuns) {
> > > > > +        this.durationBetweenEvictionRuns =
> > > > > PoolImplUtils.nonNull(timeBetweenEvictionRuns,
> > > > > BaseObjectPoolConfig.DEFAULT_DURATION_BETWEEN_EVICTION_RUNS);
> > > > > +        startEvictor(this.durationBetweenEvictionRuns);
> > > > > +    }
> > > > > +
> > > > >      /**
> > > > >       * Sets the eviction policy for this pool.
> > > > >       *
> > > > > @@ -1585,7 +1603,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Sets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}). When
> > > > > non-positive,
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}).
> When
> > > > > non-positive,
> > > > >       * no objects will be evicted from the pool due to idle time
> > > alone.
> > > > >       *
> > > > >       * @param minEvictableIdleTime
> > > > > @@ -1595,7 +1613,9 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       * @see #getMinEvictableIdleTime
> > > > >       * @see #setTimeBetweenEvictionRuns
> > > > >       * @since 2.11.0
> > > > > +     * @deprecated Use {@link
> > #setMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > > +    @Deprecated
> > > > >      public final void setMinEvictableIdle(final Duration
> > > > > minEvictableIdleTime) {
> > > > >          this.minEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(minEvictableIdleTime,
> > > > > BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_DURATION);
> > > > >      }
> > > > > @@ -1603,7 +1623,25 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Sets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}). When
> > > > > non-positive,
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}).
> When
> > > > > non-positive,
> > > > > +     * no objects will be evicted from the pool due to idle time
> > > alone.
> > > > > +     *
> > > > > +     * @param minEvictableIdleTime
> > > > > +     *            minimum amount of time an object may sit idle in
> > the
> > > > > pool
> > > > > +     *            before it is eligible for eviction
> > > > > +     *
> > > > > +     * @see #getMinEvictableIdleTime
> > > > > +     * @see #setTimeBetweenEvictionRuns
> > > > > +     * @since 2.12.0
> > > > > +     */
> > > > > +    public final void setMinEvictableIdleDuration(final Duration
> > > > > minEvictableIdleTime) {
> > > > > +        this.minEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(minEvictableIdleTime,
> > > > > BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_DURATION);
> > > > > +    }
> > > > > +
> > > > > +    /**
> > > > > +     * Sets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > > +     * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}).
> When
> > > > > non-positive,
> > > > >       * no objects will be evicted from the pool due to idle time
> > > alone.
> > > > >       *
> > > > >       * @param minEvictableIdleTime
> > > > > @@ -1613,7 +1651,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       * @see #getMinEvictableIdleTime
> > > > >       * @see #setTimeBetweenEvictionRuns
> > > > >       * @since 2.10.0
> > > > > -     * @deprecated Use {@link #setMinEvictableIdle(Duration)}.
> > > > > +     * @deprecated Use {@link
> > #setMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > >      @Deprecated
> > > > >      public final void setMinEvictableIdleTime(final Duration
> > > > > minEvictableIdleTime) {
> > > > > @@ -1662,7 +1700,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Sets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}),
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}),
> > > > >       * with the extra condition that at least {@code minIdle}
> object
> > > > >       * instances remain in the pool. This setting is overridden by
> > > > >       * {@link #getMinEvictableIdleTime} (that is, if
> > > > > @@ -1676,7 +1714,9 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       *
> > > > >       * @see #getSoftMinEvictableIdleTimeMillis
> > > > >       * @since 2.11.0
> > > > > +     * @deprecated Use {@link
> > > > #setSoftMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > > +    @Deprecated
> > > > >      public final void setSoftMinEvictableIdle(final Duration
> > > > > softMinEvictableIdleTime) {
> > > > >          this.softMinEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(softMinEvictableIdleTime,
> > > > > BaseObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_DURATION);
> > > > >      }
> > > > > @@ -1684,7 +1724,29 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Sets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > >       * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > -     * see {@link #setTimeBetweenEvictionRuns(Duration)}),
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}),
> > > > > +     * with the extra condition that at least {@code minIdle}
> object
> > > > > +     * instances remain in the pool. This setting is overridden by
> > > > > +     * {@link #getMinEvictableIdleTime} (that is, if
> > > > > +     * {@link #getMinEvictableIdleTime} is positive, then
> > > > > +     * {@link #getSoftMinEvictableIdleTime} is ignored).
> > > > > +     *
> > > > > +     * @param softMinEvictableIdleTime
> > > > > +     *            minimum amount of time an object may sit idle in
> > the
> > > > > pool
> > > > > +     *            before it is eligible for eviction if minIdle
> > > > instances
> > > > > are
> > > > > +     *            available
> > > > > +     *
> > > > > +     * @see #getSoftMinEvictableIdleTimeMillis
> > > > > +     * @since 2.12.0
> > > > > +     */
> > > > > +    public final void setSoftMinEvictableIdleDuration(final
> Duration
> > > > > softMinEvictableIdleTime) {
> > > > > +        this.softMinEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(softMinEvictableIdleTime,
> > > > > BaseObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_DURATION);
> > > > > +    }
> > > > > +
> > > > > +    /**
> > > > > +     * Sets the minimum amount of time an object may sit idle in
> the
> > > > pool
> > > > > +     * before it is eligible for eviction by the idle object
> evictor
> > > (if
> > > > > any -
> > > > > +     * see {@link #setDurationBetweenEvictionRuns(Duration)}),
> > > > >       * with the extra condition that at least {@code minIdle}
> object
> > > > >       * instances remain in the pool. This setting is overridden by
> > > > >       * {@link #getMinEvictableIdleTime} (that is, if
> > > > > @@ -1698,7 +1760,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       *
> > > > >       * @see #getSoftMinEvictableIdleTimeMillis
> > > > >       * @since 2.10.0
> > > > > -     * @deprecated Use {@link #setSoftMinEvictableIdle(Duration)}.
> > > > > +     * @deprecated Use {@link
> > > > #setSoftMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > >      @Deprecated
> > > > >      public final void setSoftMinEvictableIdleTime(final Duration
> > > > > softMinEvictableIdleTime) {
> > > > > @@ -1721,7 +1783,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       *            available
> > > > >       *
> > > > >       * @see #getSoftMinEvictableIdleTimeMillis
> > > > > -     * @deprecated Use {@link #setSoftMinEvictableIdle(Duration)}.
> > > > > +     * @deprecated Use {@link
> > > > #setSoftMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > >      @Deprecated
> > > > >      public final void setSoftMinEvictableIdleTimeMillis(final long
> > > > > softMinEvictableIdleTimeMillis) {
> > > > > @@ -1797,7 +1859,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >      /**
> > > > >       * Sets whether objects sitting idle in the pool will be
> > validated
> > > > by
> > > > > the
> > > > >       * idle object evictor (if any - see
> > > > > -     * {@link #setTimeBetweenEvictionRuns(Duration)}). Validation
> is
> > > > > performed
> > > > > +     * {@link #setDurationBetweenEvictionRuns(Duration)}).
> > Validation
> > > is
> > > > > performed
> > > > >       * by the {@code validateObject()} method of the factory
> > > associated
> > > > >       * with the pool. If the object fails to validate, it will be
> > > > removed
> > > > > from
> > > > >       * the pool and destroyed.  Note that setting this property
> has
> > no
> > > > > effect
> > > > > @@ -1826,7 +1888,9 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       *
> > > > >       * @see #getDurationBetweenEvictionRuns()
> > > > >       * @since 2.10.0
> > > > > +     * @deprecated Use {@link
> > > > #setDurationBetweenEvictionRuns(Duration)}.
> > > > >       */
> > > > > +    @Deprecated
> > > > >      public final void setTimeBetweenEvictionRuns(final Duration
> > > > > timeBetweenEvictionRuns) {
> > > > >          this.durationBetweenEvictionRuns =
> > > > > PoolImplUtils.nonNull(timeBetweenEvictionRuns,
> > > > > BaseObjectPoolConfig.DEFAULT_DURATION_BETWEEN_EVICTION_RUNS);
> > > > >          startEvictor(this.durationBetweenEvictionRuns);
> > > > > @@ -1843,7 +1907,7 @@ public abstract class
> BaseGenericObjectPool<T>
> > > > > extends BaseObject implements Aut
> > > > >       *            number of milliseconds to sleep between evictor
> > runs
> > > > >       *
> > > > >       * @see #getDurationBetweenEvictionRuns()
> > > > > -     * @deprecated Use {@link
> > #setTimeBetweenEvictionRuns(Duration)}.
> > > > > +     * @deprecated Use {@link
> > > > #setDurationBetweenEvictionRuns(Duration)}.
> > > > >       */
> > > > >      @Deprecated
> > > > >      public final void setTimeBetweenEvictionRunsMillis(final long
> > > > > timeBetweenEvictionRunsMillis) {
> > > > > diff --git
> > > > >
> > a/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
> > > > >
> > b/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
> > > > > index 101e17e9..7c72fa26 100644
> > > > > ---
> > > >
> a/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
> > > > > +++
> > > >
> b/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
> > > > > @@ -762,6 +762,18 @@ public abstract class BaseObjectPoolConfig<T>
> > > > extends
> > > > > BaseObject implements Clon
> > > > >          setMaxWait(Duration.ofMillis(maxWaitMillis));
> > > > >      }
> > > > >
> > > > > +    /**
> > > > > +     * Sets the value for the {@code minEvictableIdleTime}
> > > configuration
> > > > > attribute for pools created with this configuration instance.
> > > > > +     *
> > > > > +     * @param minEvictableIdleTime The new setting of {@code
> > > > > minEvictableIdleTime} for this configuration instance
> > > > > +     * @see GenericObjectPool#getMinEvictableIdleDuration()
> > > > > +     * @see GenericKeyedObjectPool#getMinEvictableIdleDuration()
> > > > > +     * @since 2.12.0
> > > > > +     */
> > > > > +    public void setMinEvictableIdleDuration(final Duration
> > > > > minEvictableIdleTime) {
> > > > > +        this.minEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(minEvictableIdleTime,
> > > > > DEFAULT_MIN_EVICTABLE_IDLE_TIME);
> > > > > +    }
> > > > > +
> > > > >      /**
> > > > >       * Sets the value for the {@code minEvictableIdleTime}
> > > configuration
> > > > > attribute for pools created with this configuration instance.
> > > > >       *
> > > > > @@ -769,7 +781,9 @@ public abstract class BaseObjectPoolConfig<T>
> > > extends
> > > > > BaseObject implements Clon
> > > > >       * @see GenericObjectPool#getMinEvictableIdleDuration()
> > > > >       * @see GenericKeyedObjectPool#getMinEvictableIdleDuration()
> > > > >       * @since 2.10.0
> > > > > +     * @deprecated Use {@link
> > #setMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > > +    @Deprecated
> > > > >      public void setMinEvictableIdleTime(final Duration
> > > > > minEvictableIdleTime) {
> > > > >          this.minEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(minEvictableIdleTime,
> > > > > DEFAULT_MIN_EVICTABLE_IDLE_TIME);
> > > > >      }
> > > > > @@ -780,7 +794,7 @@ public abstract class BaseObjectPoolConfig<T>
> > > extends
> > > > > BaseObject implements Clon
> > > > >       * @param minEvictableIdleTimeMillis The new setting of {@code
> > > > > minEvictableIdleTime} for this configuration instance
> > > > >       * @see GenericObjectPool#getMinEvictableIdleDuration()
> > > > >       * @see GenericKeyedObjectPool#getMinEvictableIdleDuration()
> > > > > -     * @deprecated Use {@link #setMinEvictableIdleTime(Duration)}.
> > > > > +     * @deprecated Use {@link
> > #setMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > >      @Deprecated
> > > > >      public void setMinEvictableIdleTimeMillis(final long
> > > > > minEvictableIdleTimeMillis) {
> > > > > @@ -798,6 +812,18 @@ public abstract class BaseObjectPoolConfig<T>
> > > > extends
> > > > > BaseObject implements Clon
> > > > >          this.numTestsPerEvictionRun = numTestsPerEvictionRun;
> > > > >      }
> > > > >
> > > > > +    /**
> > > > > +     * Sets the value for the {@code softMinEvictableIdleTime}
> > > > > configuration attribute for pools created with this configuration
> > > > instance.
> > > > > +     *
> > > > > +     * @param softMinEvictableIdleTime The new setting of {@code
> > > > > softMinEvictableIdleTime} for this configuration instance
> > > > > +     * @see GenericObjectPool#getSoftMinEvictableIdleDuration()
> > > > > +     * @see
> GenericKeyedObjectPool#getSoftMinEvictableIdleDuration()
> > > > > +     * @since 2.12.0
> > > > > +     */
> > > > > +    public void setSoftMinEvictableIdleDuration(final Duration
> > > > > softMinEvictableIdleTime) {
> > > > > +        this.softMinEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(softMinEvictableIdleTime,
> > > > > DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME);
> > > > > +    }
> > > > > +
> > > > >      /**
> > > > >       * Sets the value for the {@code softMinEvictableIdleTime}
> > > > > configuration attribute for pools created with this configuration
> > > > instance.
> > > > >       *
> > > > > @@ -805,7 +831,9 @@ public abstract class BaseObjectPoolConfig<T>
> > > extends
> > > > > BaseObject implements Clon
> > > > >       * @see GenericObjectPool#getSoftMinEvictableIdleDuration()
> > > > >       * @see
> GenericKeyedObjectPool#getSoftMinEvictableIdleDuration()
> > > > >       * @since 2.10.0
> > > > > +     * @deprecated Use {@link
> > > > #setSoftMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > > +    @Deprecated
> > > > >      public void setSoftMinEvictableIdleTime(final Duration
> > > > > softMinEvictableIdleTime) {
> > > > >          this.softMinEvictableIdleDuration =
> > > > > PoolImplUtils.nonNull(softMinEvictableIdleTime,
> > > > > DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME);
> > > > >      }
> > > > > @@ -816,7 +844,7 @@ public abstract class BaseObjectPoolConfig<T>
> > > extends
> > > > > BaseObject implements Clon
> > > > >       * @param softMinEvictableIdleTimeMillis The new setting of
> > {@code
> > > > > softMinEvictableIdleTime} for this configuration instance
> > > > >       * @see GenericObjectPool#getSoftMinEvictableIdleDuration()
> > > > >       * @see
> GenericKeyedObjectPool#getSoftMinEvictableIdleDuration()
> > > > > -     * @deprecated Use {@link
> > #setSoftMinEvictableIdleTime(Duration)}.
> > > > > +     * @deprecated Use {@link
> > > > #setSoftMinEvictableIdleDuration(Duration)}.
> > > > >       */
> > > > >      @Deprecated
> > > > >      public void setSoftMinEvictableIdleTimeMillis(final long
> > > > > softMinEvictableIdleTimeMillis) {
> > > > > diff --git
> > > > >
> > >
> a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
> > > > >
> > >
> b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
> > > > > index eb1b24c9..2ceea0f5 100644
> > > > > ---
> > > > >
> > >
> a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
> > > > > +++
> > > > >
> > >
> b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
> > > > > @@ -1678,7 +1678,7 @@ public class GenericKeyedObjectPool<K, T>
> > extends
> > > > > BaseGenericObjectPool<T>
> > > > >       *
> > > > >       * @see #getMinIdlePerKey()
> > > > >       * @see #getMaxIdlePerKey()
> > > > > -     * @see #setTimeBetweenEvictionRuns(Duration)
> > > > > +     * @see #setDurationBetweenEvictionRuns(Duration)
> > > > >       */
> > > > >      public void setMinIdlePerKey(final int minIdlePerKey) {
> > > > >          this.minIdlePerKey = minIdlePerKey;
> > > > > diff --git
> > > > >
> a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
> > > > >
> b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
> > > > > index 2de037e8..b638da77 100644
> > > > > ---
> > > a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
> > > > > +++
> > > b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
> > > > > @@ -858,7 +858,7 @@ public class GenericObjectPool<T> extends
> > > > > BaseGenericObjectPool<T>
> > > > >       *
> > > > >       * @see #setMinIdle(int)
> > > > >       * @see #setMaxIdle(int)
> > > > > -     * @see #setTimeBetweenEvictionRuns(Duration)
> > > > > +     * @see #setDurationBetweenEvictionRuns(Duration)
> > > > >       */
> > > > >      @Override
> > > > >      public int getMinIdle() {
> > > > > diff --git
> > > > > a/src/test/java/org/apache/commons/pool2/ObjectPoolIssue326.java
> > > > > b/src/test/java/org/apache/commons/pool2/ObjectPoolIssue326.java
> > > > > index d49e3ce2..cf864617 100644
> > > > > ---
> a/src/test/java/org/apache/commons/pool2/ObjectPoolIssue326.java
> > > > > +++
> b/src/test/java/org/apache/commons/pool2/ObjectPoolIssue326.java
> > > > > @@ -118,7 +118,9 @@ public final class ObjectPoolIssue326 {
> > > > >          poolConfig.setLifo(true);
> > > > >          poolConfig.setFairness(true);
> > > > >          poolConfig.setMaxWait(Duration.ofSeconds(30));
> > > > > +
> > poolConfig.setMinEvictableIdleDuration(Duration.ofMillis(-1));
> > > > >          poolConfig.setMinEvictableIdleTime(Duration.ofMillis(-1));
> > > > > +
> > > > poolConfig.setSoftMinEvictableIdleDuration(Duration.ofMillis(-1));
> > > > >
> > poolConfig.setSoftMinEvictableIdleTime(Duration.ofMillis(-1));
> > > > >          poolConfig.setNumTestsPerEvictionRun(1);
> > > > >          poolConfig.setTestOnCreate(false);
> > > > > diff --git a/src/test/java/org/apache/commons/pool2/PoolTest.java
> > > > > b/src/test/java/org/apache/commons/pool2/PoolTest.java
> > > > > index 973dbc58..7ecfcd18 100644
> > > > > --- a/src/test/java/org/apache/commons/pool2/PoolTest.java
> > > > > +++ b/src/test/java/org/apache/commons/pool2/PoolTest.java
> > > > > @@ -79,7 +79,7 @@ public class PoolTest {
> > > > >
> > > > >  pool.setTimeBetweenEvictionRunsMillis(EVICTION_PERIOD_IN_MILLIS);
> > > > >              assertEquals(EVICTION_PERIOD_IN_MILLIS,
> > > > > pool.getDurationBetweenEvictionRuns().toMillis());
> > > > >              assertEquals(EVICTION_PERIOD_IN_MILLIS,
> > > > > pool.getTimeBetweenEvictionRuns().toMillis());
> > > > > -
> > > > >
> > > >
> > >
> >
> pool.setTimeBetweenEvictionRuns(Duration.ofMillis(EVICTION_PERIOD_IN_MILLIS));
> > > > > +
> > > > >
> > > >
> > >
> >
> pool.setDurationBetweenEvictionRuns(Duration.ofMillis(EVICTION_PERIOD_IN_MILLIS));
> > > > >              assertEquals(EVICTION_PERIOD_IN_MILLIS,
> > > > > pool.getTimeBetweenEvictionRuns().toMillis());
> > > > >              pool.addObject();
> > > > >              try {
> > > > > diff --git
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedKeyedObjectPool.java
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedKeyedObjectPool.java
> > > > > index fb343f45..aa09ffb2 100644
> > > > > ---
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedKeyedObjectPool.java
> > > > > +++
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedKeyedObjectPool.java
> > > > > @@ -205,7 +205,7 @@ public class TestAbandonedKeyedObjectPool {
> > > > >          final int n = 10;
> > > > >          pool.setMaxTotal(n);
> > > > >          pool.setBlockWhenExhausted(false);
> > > > > -        pool.setTimeBetweenEvictionRuns(Duration.ofMillis(250));
> > > > > +
> pool.setDurationBetweenEvictionRuns(Duration.ofMillis(250));
> > > > >          PooledTestObject pooledObj = null;
> > > > >          final Integer key = 0;
> > > > >          for (int i = 0; i < 5; i++) {
> > > > > diff --git
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
> > > > > index 4fee6142..1f13de22 100644
> > > > > ---
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
> > > > > +++
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
> > > > > @@ -286,7 +286,7 @@ public class TestAbandonedObjectPool {
> > > > >          final int n = 10;
> > > > >          pool.setMaxTotal(n);
> > > > >          pool.setBlockWhenExhausted(false);
> > > > > -        pool.setTimeBetweenEvictionRuns(Duration.ofMillis(500));
> > > > > +
> pool.setDurationBetweenEvictionRuns(Duration.ofMillis(500));
> > > > >          PooledTestObject obj = null;
> > > > >          for (int i = 0; i < 5; i++) {
> > > > >              obj = pool.borrowObject();
> > > > > diff --git
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
> > > > > index 23dc741f..ff24933a 100644
> > > > > ---
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
> > > > > +++
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
> > > > > @@ -1426,6 +1426,7 @@ public class TestGenericKeyedObjectPool
> extends
> > > > > AbstractTestKeyedObjectPool {
> > > > >          config.setMinIdlePerKey(minIdle);
> > > > >          config.setMaxTotal(maxTotal);
> > > > >          config.setMaxWait(maxWaitDuration);
> > > > > +
> > > > >
> > > >
> > >
> >
> config.setMinEvictableIdleDuration(Duration.ofMillis(minEvictableIdleTimeMillis));
> > > > >
> > > > >
> > > >
> > >
> >
> config.setMinEvictableIdleTime(Duration.ofMillis(minEvictableIdleTimeMillis));
> > > > >          config.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
> > > > >          config.setTestOnBorrow(testOnBorrow);
> > > > > @@ -1463,7 +1464,7 @@ public class TestGenericKeyedObjectPool
> extends
> > > > > AbstractTestKeyedObjectPool {
> > > > >      public void testContructorEvictionConfig() throws Exception {
> > > > >          final GenericKeyedObjectPoolConfig<String> config = new
> > > > > GenericKeyedObjectPoolConfig<>();
> > > > >          config.setTimeBetweenEvictionRuns(Duration.ofMillis(500));
> > > > > -        config.setMinEvictableIdleTime(Duration.ofMillis(50));
> > > > > +        config.setMinEvictableIdleDuration(Duration.ofMillis(50));
> > > > >          config.setNumTestsPerEvictionRun(5);
> > > > >          try (final GenericKeyedObjectPool<String, String> p = new
> > > > > GenericKeyedObjectPool<>(simpleFactory, config)) {
> > > > >              for (int i = 0; i < 5; i++) {
> > > > > @@ -1501,7 +1502,7 @@ public class TestGenericKeyedObjectPool
> extends
> > > > > AbstractTestKeyedObjectPool {
> > > > >          gkoPool.setMaxTotalPerKey(500);
> > > > >          gkoPool.setNumTestsPerEvictionRun(100);
> > > > >          gkoPool.setMinEvictableIdleTime(Duration.ofMillis(250));
> > > > > -
> gkoPool.setTimeBetweenEvictionRuns(Duration.ofMillis(500));
> > > > > +
> > > gkoPool.setDurationBetweenEvictionRuns(Duration.ofMillis(500));
> > > > >
> > > > >          final String[] active = new String[500];
> > > > >          for(int i=0;i<500;i++) {
> > > > > diff --git
> > > > >
> > >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
> > > > >
> > >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
> > > > > index 01a1945b..521d7c54 100644
> > > > > ---
> > > > >
> > >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
> > > > > +++
> > > > >
> > >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
> > > > > @@ -648,6 +648,7 @@ public class TestGenericObjectPool extends
> > > > > TestBaseObjectPool {
> > > > >
> > > > >      private void checkEvict(final boolean lifo) throws Exception {
> > > > >          // yea this is hairy but it tests all the code paths in
> > > > > GOP.evict()
> > > > > +
> > > > >
> > >
> genericObjectPool.setSoftMinEvictableIdleDuration(Duration.ofMillis(10));
> > > > >
> > > > genericObjectPool.setSoftMinEvictableIdle(Duration.ofMillis(10));
> > > > >
> > > > >
> > genericObjectPool.setSoftMinEvictableIdleTime(Duration.ofMillis(10));
> > > > >          genericObjectPool.setMinIdle(2);
> > > > > @@ -978,7 +979,7 @@ public class TestGenericObjectPool extends
> > > > > TestBaseObjectPool {
> > > > >          final GenericObjectPoolConfig<String> config = new
> > > > > GenericObjectPoolConfig<>();
> > > > >          config.setJmxEnabled(false);
> > > > >          GenericObjectPool<String> abandoned = new
> > > > > GenericObjectPool<>(simpleFactory, config);
> > > > > -
> > abandoned.setTimeBetweenEvictionRuns(Duration.ofMillis(100));
> > > //
> > > > > Starts evictor
> > > > > +
> > > > abandoned.setDurationBetweenEvictionRuns(Duration.ofMillis(100));
> > > > > // Starts evictor
> > > > >          assertEquals(abandoned.getRemoveAbandonedTimeout(),
> > > > > abandoned.getRemoveAbandonedTimeoutDuration().getSeconds());
> > > > >
> > > > >          // This is ugly, but forces GC to hit the pool
> > > > > @@ -1687,6 +1688,7 @@ public class TestGenericObjectPool extends
> > > > > TestBaseObjectPool {
> > > > >              timePool.setMaxIdle(5);
> > > > >              timePool.setMaxTotal(5);
> > > > >              timePool.setNumTestsPerEvictionRun(5);
> > > > > +
> > > timePool.setMinEvictableIdleDuration(Duration.ofSeconds(3));
> > > > >              timePool.setMinEvictableIdle(Duration.ofSeconds(3));
> > > > >
> timePool.setMinEvictableIdleTime(Duration.ofSeconds(3));
> > > > >
> > > > >
> > >
> timePool.setSoftMinEvictableIdleTime(TestConstants.ONE_SECOND_DURATION);
> > > > > @@ -2703,7 +2705,7 @@ public class TestGenericObjectPool extends
> > > > > TestBaseObjectPool {
> > > > >          expected.setMaxTotal(2);
> > > > >          expected.setMaxIdle(3);
> > > > >          expected.setMaxWait(Duration.ofMillis(5));
> > > > > -        expected.setMinEvictableIdleTime(Duration.ofMillis(7L));
> > > > > +
> expected.setMinEvictableIdleDuration(Duration.ofMillis(7L));
> > > > >          expected.setNumTestsPerEvictionRun(9);
> > > > >          expected.setTestOnCreate(true);
> > > > >          expected.setTestOnBorrow(true);
> > > > > diff --git
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
> > > > > index 4e40b358..851b741b 100644
> > > > > ---
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
> > > > > +++
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
> > > > > @@ -83,7 +83,7 @@ public class TestGenericObjectPoolClassLoaders {
> > > > >              final CustomClassLoaderObjectFactory factory1 = new
> > > > > CustomClassLoaderObjectFactory(1);
> > > > >              try (final GenericObjectPool<URL> pool1 = new
> > > > > GenericObjectPool<>(factory1)) {
> > > > >                  pool1.setMinIdle(1);
> > > > > -
> > > > pool1.setTimeBetweenEvictionRuns(Duration.ofMillis(100));
> > > > > +
> > > > > pool1.setDurationBetweenEvictionRuns(Duration.ofMillis(100));
> > > > >                  int counter = 0;
> > > > >                  while (counter < 50 && pool1.getNumIdle() != 1) {
> > > > >                      Thread.sleep(100);
> > > > > @@ -101,7 +101,7 @@ public class TestGenericObjectPoolClassLoaders
> {
> > > > >                          assertEquals(1, pool2.getNumIdle(), "Wrong
> > > > number
> > > > > of idle objects in pool2");
> > > > >                          pool2.clear();
> > > > >
> > > > > -
> > > > > pool2.setTimeBetweenEvictionRuns(Duration.ofMillis(100));
> > > > > +
> > > > > pool2.setDurationBetweenEvictionRuns(Duration.ofMillis(100));
> > > > >
> > > > >                          counter = 0;
> > > > >                          while (counter < 50 && pool2.getNumIdle()
> !=
> > > 1)
> > > > {
> > > > > diff --git
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolFactoryCreateFailure.java
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolFactoryCreateFailure.java
> > > > > index 6bb1b6f4..6d965414 100644
> > > > > ---
> > > > >
> > > >
> > >
> >
> a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolFactoryCreateFailure.java
> > > > > +++
> > > > >
> > > >
> > >
> >
> b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolFactoryCreateFailure.java
> > > > > @@ -110,7 +110,8 @@ public class
> > > > TestGenericObjectPoolFactoryCreateFailure
> > > > > {
> > > > >          config.setTestWhileIdle(false);
> > > > >          config.setTimeBetweenEvictionRuns(NEG_ONE_DURATION);
> > > > >          config.setMinEvictableIdleTime(NEG_ONE_DURATION);
> > > > > -        config.setSoftMinEvictableIdleTime(NEG_ONE_DURATION);
> > > > > +        config.setMinEvictableIdleDuration(NEG_ONE_DURATION);
> > > > > +        config.setSoftMinEvictableIdleDuration(NEG_ONE_DURATION);
> > > > >
> > > > >          config.setMaxWait(NEG_ONE_DURATION);
> > > > >          try (GenericObjectPool<Object> pool = new
> > > > > GenericObjectPool<>(factory, config)) {
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to