You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2018/10/16 14:06:45 UTC
[cxf] branch 3.2.x-fixes updated: fix: handle
connectionRequestTimeout in ClientPolicyCalculator
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch 3.2.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.2.x-fixes by this push:
new 2b782a1 fix: handle connectionRequestTimeout in ClientPolicyCalculator
2b782a1 is described below
commit 2b782a1d562a2d62843dbb03d23e407c8f674bb2
Author: gyoetam <gy...@users.noreply.github.com>
AuthorDate: Tue Oct 16 14:30:00 2018 +0200
fix: handle connectionRequestTimeout in ClientPolicyCalculator
(cherry picked from commit a117bdaee1ba025ba71fc3b12f610c39c2cda79b)
---
.../http/policy/impl/ClientPolicyCalculator.java | 6 ++++++
.../http/policy/ClientPolicyCalculatorTest.java | 20 ++++++++++++++++++--
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/impl/ClientPolicyCalculator.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/impl/ClientPolicyCalculator.java
index 629bcac..b934dc5 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/impl/ClientPolicyCalculator.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/impl/ClientPolicyCalculator.java
@@ -67,6 +67,7 @@ public class ClientPolicyCalculator implements PolicyCalculator<HTTPClientPolicy
&& (p1.isSetProxyServerPort() ? p1.getProxyServerPort() == p2.getProxyServerPort() : !p2
.isSetProxyServerPort())
&& p1.getProxyServerType().value().equals(p2.getProxyServerType().value())
+ && (p1.getConnectionRequestTimeout() == p2.getConnectionRequestTimeout())
&& (p1.getReceiveTimeout() == p2.getReceiveTimeout())
&& StringUtils.equals(p1.getReferer(), p2.getReferer());
@@ -141,6 +142,11 @@ public class ClientPolicyCalculator implements PolicyCalculator<HTTPClientPolicy
} else if (p2.isSetConnectionTimeout()) {
p.setConnectionTimeout(p2.getConnectionTimeout());
}
+ if (p1.isSetConnectionRequestTimeout()) {
+ p.setConnectionRequestTimeout(p1.getConnectionRequestTimeout());
+ } else if (p2.isSetConnectionRequestTimeout()) {
+ p.setConnectionRequestTimeout(p2.getConnectionRequestTimeout());
+ }
if (p1.isSetReceiveTimeout()) {
p.setReceiveTimeout(p1.getReceiveTimeout());
} else if (p2.isSetReceiveTimeout()) {
diff --git a/rt/transports/http/src/test/java/org/apache/cxf/transport/http/policy/ClientPolicyCalculatorTest.java b/rt/transports/http/src/test/java/org/apache/cxf/transport/http/policy/ClientPolicyCalculatorTest.java
index af7d68b..348eddf 100644
--- a/rt/transports/http/src/test/java/org/apache/cxf/transport/http/policy/ClientPolicyCalculatorTest.java
+++ b/rt/transports/http/src/test/java/org/apache/cxf/transport/http/policy/ClientPolicyCalculatorTest.java
@@ -18,6 +18,8 @@
*/
package org.apache.cxf.transport.http.policy;
+import java.util.concurrent.ThreadLocalRandom;
+
import org.apache.cxf.transport.http.policy.impl.ClientPolicyCalculator;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
@@ -46,6 +48,7 @@ public class ClientPolicyCalculatorTest extends Assert {
@Test
public void testIntersectClientPolicies() {
+ ThreadLocalRandom random = ThreadLocalRandom.current();
ClientPolicyCalculator calc = new ClientPolicyCalculator();
HTTPClientPolicy p1 = new HTTPClientPolicy();
HTTPClientPolicy p2 = new HTTPClientPolicy();
@@ -55,9 +58,22 @@ public class ClientPolicyCalculatorTest extends Assert {
p = calc.intersect(p1, p2);
assertEquals("browser", p.getBrowserType());
p1.setBrowserType(null);
- p1.setConnectionTimeout(10000L);
+
+ long connectionRequestTimeout = random.nextLong(0, 10000);
+ p1.setConnectionRequestTimeout(connectionRequestTimeout);
+ p = calc.intersect(p1, p2);
+ assertEquals(connectionRequestTimeout, p.getConnectionRequestTimeout());
+
+ long receiveTimeout = random.nextLong(0, 10000);
+ p1.setReceiveTimeout(receiveTimeout);
p = calc.intersect(p1, p2);
- assertEquals(10000L, p.getConnectionTimeout());
+ assertEquals(receiveTimeout, p.getReceiveTimeout());
+
+ long connectionTimeout = random.nextLong(0, 10000);
+ p1.setConnectionTimeout(connectionTimeout);
+ p = calc.intersect(p1, p2);
+ assertEquals(connectionTimeout, p.getConnectionTimeout());
+
p1.setAllowChunking(false);
p2.setAllowChunking(false);
p = calc.intersect(p1, p2);