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);