jmeter-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pmoua...@apache.org
Subject svn commit: r1743429 - /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
Date Wed, 11 May 2016 21:09:00 GMT
Author: pmouawad
Date: Wed May 11 21:09:00 2016
New Revision: 1743429

URL: http://svn.apache.org/viewvc?rev=1743429&view=rev
Log:
Bug 59489 - Regression in JMeter 3.0 : Compressed responses break keepalive management 
Bugzilla Id: 59489

Modified:
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1743429&r1=1743428&r2=1743429&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
(original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
Wed May 11 21:09:00 2016
@@ -186,10 +186,6 @@ public class HTTPHC4Impl extends HTTPHCA
         }
     };
 
-    /**
-     * Attribute name used to store headers in {@link BasicHttpContext}
-     */
-    private static final String JMETER_RESPONSE_BACKUP_HEADERS = "__jmeter.RESPONSE_BACKUP_HEADERS";
 
     /**
      * Headers to save
@@ -209,8 +205,8 @@ public class HTTPHC4Impl extends HTTPHCA
         @Override
         public void process(HttpResponse response, HttpContext context)
                 throws HttpException, IOException {
+            ArrayList<Header[]> headersToSave = new ArrayList<>(3);
             
-            context.removeAttribute(JMETER_RESPONSE_BACKUP_HEADERS);
             final HttpEntity entity = response.getEntity();
             final HttpClientContext clientContext = HttpClientContext.adapt(context);
             final RequestConfig requestConfig = clientContext.getRequestConfig();
@@ -218,17 +214,21 @@ public class HTTPHC4Impl extends HTTPHCA
             if (requestConfig.isContentCompressionEnabled() && entity != null &&
entity.getContentLength() != 0) {
                 final Header ceheader = entity.getContentEncoding();
                 if (ceheader != null) {
-                    ArrayList<Header[]> headersToSave = new ArrayList<>(3);
                     for(String name : HEADERS_TO_SAVE) {
                         Header[] hdr = response.getHeaders(name); // empty if none
                         headersToSave.add(hdr);
                     }
-                   context.setAttribute(JMETER_RESPONSE_BACKUP_HEADERS, headersToSave);
                 }
             }
 
             // Now invoke original parent code
             super.process(response, clientContext);
+            // Should this be in a finally ? 
+            for (Header[] headers : headersToSave) {
+                for (Header headerToRestore : headers) {
+                    response.addHeader(headerToRestore);                    
+                }
+            }
         }
     };
     
@@ -953,18 +953,6 @@ public class HTTPHC4Impl extends HTTPHCA
         for (Header responseHeader : rh) {
             writeResponseHeader(headerBuf, responseHeader);
         }
-        List<Header[]> backupHeaders = (List<Header[]>) localContext.getAttribute(JMETER_RESPONSE_BACKUP_HEADERS);
-        if(backupHeaders != null) {
-            for (Header[] headers : backupHeaders) {
-                for (Header responseHeader: headers) {
-                    if (response.containsHeader(responseHeader.getName())) {
-                        break; // it was not deleted, so don't store it again
-                    }
-                    writeResponseHeader(headerBuf, responseHeader);
-                }
-            }
-        }
-
         return headerBuf.toString();
     }
 



Mime
View raw message