Merge pull request #4821 from jbescos/jdkDeadLock
Jdk connector dead lock
diff --git a/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/DestinationConnectionPool.java b/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/DestinationConnectionPool.java
index 2ef9b9c..a23cd98 100644
--- a/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/DestinationConnectionPool.java
+++ b/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/DestinationConnectionPool.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -195,12 +195,11 @@
throw new IllegalStateException("Illegal state transition, old state: " + oldState + " new state: " + newState);
}
- private synchronized void removeAllPendingWithError(Throwable t) {
- for (RequestRecord requestRecord : pendingRequests) {
+ private void removeAllPendingWithError(Throwable t) {
+ RequestRecord requestRecord = null;
+ while ((requestRecord = pendingRequests.poll()) != null) {
requestRecord.completionHandler.failed(t);
}
-
- pendingRequests.clear();
}
private class ConnectionStateListener implements HttpConnection.StateChangeListener {