This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push: new 7604f87 Limited back-port changes to Commons Pool. 7604f87 is described below commit 7604f87140be5fe7c8d8932f4d79e75f2a613615 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Sep 2 16:50:57 2021 +0100 Limited back-port changes to Commons Pool. As of mid-Feb 2021 the Pool 2 code started to make extensive use of the java.time.* package which is not available in Java 7. Therefore the code in 8.5.x has not been updated past this point. --- MERGE.txt | 6 +++- .../dbcp/pool2/impl/DefaultPooledObject.java | 32 +++++++++++----------- .../dbcp/pool2/impl/GenericKeyedObjectPool.java | 4 +-- .../tomcat/dbcp/pool2/impl/GenericObjectPool.java | 14 +++++----- .../dbcp/pool2/impl/SecurityManagerCallStack.java | 4 +-- .../tomcat/dbcp/pool2/impl/ThrowableCallStack.java | 4 +-- webapps/docs/changelog.xml | 4 +++ 7 files changed, 38 insertions(+), 30 deletions(-) diff --git a/MERGE.txt b/MERGE.txt index 73ecd41..ca9839a 100644 --- a/MERGE.txt +++ b/MERGE.txt @@ -62,7 +62,11 @@ Pool2 Sub-tree src/main/java/org/apache/commons/pool2 The SHA1 ID / tag for the most recent commit to be merged to Tomcat is: -a38c52529beb04bf0815b7d95fb4a393ea110dee +0da5c540983485565f08711bf986e1ea43b162f3 (2021-02-02) +Note: Commits after this point started to make extensive use of the java.time.* + package which is not available in Java 7. It is anticipated that further + changes to the Pool 2 fork in Tomcat 8.5.x will be limited to on-demand + back-port of bug fixes. DBCP2 Sub-tree diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java b/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java index 1883041..36cb0df 100644 --- a/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java +++ b/java/org/apache/tomcat/dbcp/pool2/impl/DefaultPooledObject.java @@ -38,10 +38,10 @@ public class DefaultPooledObject<T> implements PooledObject<T> { private final T object; private PooledObjectState state = PooledObjectState.IDLE; // @GuardedBy("this") to ensure transitions are valid - private final long createTime = System.currentTimeMillis(); - private volatile long lastBorrowTime = createTime; - private volatile long lastUseTime = createTime; - private volatile long lastReturnTime = createTime; + private final long createTimeMillis = System.currentTimeMillis(); + private volatile long lastBorrowTimeMillis = createTimeMillis; + private volatile long lastUseTimeMillis = createTimeMillis; + private volatile long lastReturnTimeMillis = createTimeMillis; private volatile boolean logAbandoned = false; private volatile CallStack borrowedBy = NoOpCallStack.INSTANCE; private volatile CallStack usedBy = NoOpCallStack.INSTANCE; @@ -64,14 +64,14 @@ public class DefaultPooledObject<T> implements PooledObject<T> { @Override public long getCreateTime() { - return createTime; + return createTimeMillis; } @Override public long getActiveTimeMillis() { // Take copies to avoid threading issues - final long rTime = lastReturnTime; - final long bTime = lastBorrowTime; + final long rTime = lastReturnTimeMillis; + final long bTime = lastBorrowTimeMillis; if (rTime > bTime) { return rTime - bTime; @@ -81,7 +81,7 @@ public class DefaultPooledObject<T> implements PooledObject<T> { @Override public long getIdleTimeMillis() { - final long elapsed = System.currentTimeMillis() - lastReturnTime; + final long elapsed = System.currentTimeMillis() - lastReturnTimeMillis; // elapsed may be negative if: // - another thread updates lastReturnTime during the calculation window // - System.currentTimeMillis() is not monotonic (e.g. system time is set back) @@ -90,12 +90,12 @@ public class DefaultPooledObject<T> implements PooledObject<T> { @Override public long getLastBorrowTime() { - return lastBorrowTime; + return lastBorrowTimeMillis; } @Override public long getLastReturnTime() { - return lastReturnTime; + return lastReturnTimeMillis; } /** @@ -120,9 +120,9 @@ public class DefaultPooledObject<T> implements PooledObject<T> { @Override public long getLastUsedTime() { if (object instanceof TrackedUse) { - return Math.max(((TrackedUse) object).getLastUsed(), lastUseTime); + return Math.max(((TrackedUse) object).getLastUsed(), lastUseTimeMillis); } - return lastUseTime; + return lastUseTimeMillis; } @Override @@ -187,8 +187,8 @@ public class DefaultPooledObject<T> implements PooledObject<T> { public synchronized boolean allocate() { if (state == PooledObjectState.IDLE) { state = PooledObjectState.ALLOCATED; - lastBorrowTime = System.currentTimeMillis(); - lastUseTime = lastBorrowTime; + lastBorrowTimeMillis = System.currentTimeMillis(); + lastUseTimeMillis = lastBorrowTimeMillis; borrowedCount++; if (logAbandoned) { borrowedBy.fillInStackTrace(); @@ -217,7 +217,7 @@ public class DefaultPooledObject<T> implements PooledObject<T> { if (state == PooledObjectState.ALLOCATED || state == PooledObjectState.RETURNING) { state = PooledObjectState.IDLE; - lastReturnTime = System.currentTimeMillis(); + lastReturnTimeMillis = System.currentTimeMillis(); borrowedBy.clear(); return true; } @@ -235,7 +235,7 @@ public class DefaultPooledObject<T> implements PooledObject<T> { @Override public void use() { - lastUseTime = System.currentTimeMillis(); + lastUseTimeMillis = System.currentTimeMillis(); usedBy.fillInStackTrace(); } diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java b/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java index 180b129..5490901 100644 --- a/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java +++ b/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java @@ -337,7 +337,7 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T> final boolean blockWhenExhausted = getBlockWhenExhausted(); boolean create; - final long waitTime = System.currentTimeMillis(); + final long waitTimeMillis = System.currentTimeMillis(); final ObjectDeque<T> objectDeque = register(key); try { @@ -420,7 +420,7 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T> deregister(key); } - updateStatsBorrow(p, System.currentTimeMillis() - waitTime); + updateStatsBorrow(p, System.currentTimeMillis() - waitTimeMillis); return p.getObject(); } diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java b/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java index ca250a1..d096d1e 100644 --- a/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java +++ b/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java @@ -419,7 +419,7 @@ public class GenericObjectPool<T> extends BaseGenericObjectPool<T> final boolean blockWhenExhausted = getBlockWhenExhausted(); boolean create; - final long waitTime = System.currentTimeMillis(); + final long waitTimeMillis = System.currentTimeMillis(); while (p == null) { create = false; @@ -497,7 +497,7 @@ public class GenericObjectPool<T> extends BaseGenericObjectPool<T> } } - updateStatsBorrow(p, System.currentTimeMillis() - waitTime); + updateStatsBorrow(p, System.currentTimeMillis() - waitTimeMillis); return p.getObject(); } @@ -737,7 +737,7 @@ public class GenericObjectPool<T> extends BaseGenericObjectPool<T> public void evict() throws Exception { assertOpen(); - if (idleObjects.size() > 0) { + if (!idleObjects.isEmpty()) { PooledObject<T> underTest = null; final EvictionPolicy<T> evictionPolicy = getEvictionPolicy(); @@ -1083,14 +1083,14 @@ public class GenericObjectPool<T> extends BaseGenericObjectPool<T> */ private void removeAbandoned(final AbandonedConfig abandonedConfig) { // Generate a list of abandoned objects to remove - final long now = System.currentTimeMillis(); - final long timeout = - now - (abandonedConfig.getRemoveAbandonedTimeout() * 1000L); + final long nowMillis = System.currentTimeMillis(); + final long timeoutMillis = + nowMillis - (abandonedConfig.getRemoveAbandonedTimeout() * 1000L); final ArrayList<PooledObject<T>> remove = new ArrayList<>(); for (PooledObject<T> pooledObject : allObjects.values()) { synchronized (pooledObject) { if (pooledObject.getState() == PooledObjectState.ALLOCATED && - pooledObject.getLastUsedTime() <= timeout) { + pooledObject.getLastUsedTime() <= timeoutMillis) { pooledObject.markAbandoned(); remove.add(pooledObject); } diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/SecurityManagerCallStack.java b/java/org/apache/tomcat/dbcp/pool2/impl/SecurityManagerCallStack.java index 032a558..32aa2a2 100644 --- a/java/org/apache/tomcat/dbcp/pool2/impl/SecurityManagerCallStack.java +++ b/java/org/apache/tomcat/dbcp/pool2/impl/SecurityManagerCallStack.java @@ -71,7 +71,7 @@ public class SecurityManagerCallStack implements CallStack { message = messageFormat; } else { synchronized (dateFormat) { - message = dateFormat.format(Long.valueOf(snapshotRef.timestamp)); + message = dateFormat.format(Long.valueOf(snapshotRef.timestampMillis)); } } writer.println(message); @@ -114,7 +114,7 @@ public class SecurityManagerCallStack implements CallStack { * A snapshot of a class stack. */ private static class Snapshot { - private final long timestamp = System.currentTimeMillis(); + private final long timestampMillis = System.currentTimeMillis(); private final List<WeakReference<Class<?>>> stack; /** diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/ThrowableCallStack.java b/java/org/apache/tomcat/dbcp/pool2/impl/ThrowableCallStack.java index 393a479..849e757 100644 --- a/java/org/apache/tomcat/dbcp/pool2/impl/ThrowableCallStack.java +++ b/java/org/apache/tomcat/dbcp/pool2/impl/ThrowableCallStack.java @@ -58,7 +58,7 @@ public class ThrowableCallStack implements CallStack { message = messageFormat; } else { synchronized (dateFormat) { - message = dateFormat.format(Long.valueOf(snapshotRef.timestamp)); + message = dateFormat.format(Long.valueOf(snapshotRef.timestampMillis)); } } writer.println(message); @@ -81,6 +81,6 @@ public class ThrowableCallStack implements CallStack { */ private static class Snapshot extends Throwable { private static final long serialVersionUID = 1L; - private final long timestamp = System.currentTimeMillis(); + private final long timestampMillis = System.currentTimeMillis(); } } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7ef9058..1dc44cb 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -196,6 +196,10 @@ Update the internal fork of Apache Commons FileUpload to 33d2d79 (2021-09-01, 2.0-SNAPSHOT). Refactoring and code clean-up. (markt) </add> + <add> + Update the internal fork of Apache Commons Pool to 0da5c54 + (2021-02-02, 2.9.1-SNAPSHOT). Refactoring and code clean-up. (markt) + </add> </changelog> </subsection> </section> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org