You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2021/09/02 15:51:09 UTC
[tomcat] branch 8.5.x updated: Limited back-port changes to Commons
Pool.
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org