Author: sebb
Date: Fri Oct 29 23:49:01 2010
New Revision: 1028948

URL: http://svn.apache.org/viewvc?rev=1028948&view=rev
Log:
Bug 50178 - HeaderManager added as child of Thread Group can create 
concatenated HeaderManager names and OutOfMemoryException

Modified:
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/AbstractTestElement.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestElement.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java
    
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/AbstractTestElement.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/AbstractTestElement.java?rev=1028948&r1=1028947&r2=1028948&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/AbstractTestElement.java
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/AbstractTestElement.java
 Fri Oct 29 23:49:01 2010
@@ -88,6 +88,15 @@ public abstract class AbstractTestElemen
 
     /**
      * {...@inheritdoc}
+     * <p>
+     * Default implementation - does nothing
+     */
+    public void clearTestElementChildren(){
+        // NOOP
+    }
+
+    /**
+     * {...@inheritdoc}
      */
     public void removeProperty(String key) {
         propMap.remove(key);

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestElement.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestElement.java?rev=1028948&r1=1028947&r2=1028948&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestElement.java 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/TestElement.java 
Fri Oct 29 23:49:01 2010
@@ -37,6 +37,12 @@ public interface TestElement extends Clo
     // N.B. Comments originally only applied to Test Plans, hence the name - 
which can now not be easily changed
 
     public void addTestElement(TestElement child);
+    
+    /**
+     * This method should clear any test element properties that are merged
+     * by {...@link #addTestElement(TestElement)}.
+     */
+    public void clearTestElementChildren();
 
     public void setProperty(String key, String value);
 

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java?rev=1028948&r1=1028947&r2=1028948&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/TestCompiler.java 
Fri Oct 29 23:49:01 2010
@@ -240,7 +240,8 @@ public class TestCompiler implements Has
 
     private static class ObjectPair
     {
-        private TestElement child, parent;
+        private final TestElement child;
+        private final TestElement parent;
 
         public ObjectPair(TestElement one, TestElement two) {
             this.child = one;
@@ -270,6 +271,7 @@ public class TestCompiler implements Has
     }
 
     private void configureWithConfigElements(Sampler sam, 
List<ConfigTestElement> configs) {
+        sam.clearTestElementChildren();
         Iterator<ConfigTestElement> iter = configs.iterator();
         while (iter.hasNext()) {
             ConfigTestElement config = iter.next();

Modified: 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java?rev=1028948&r1=1028947&r2=1028948&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java
 Fri Oct 29 23:49:01 2010
@@ -528,6 +528,16 @@ public abstract class HTTPSamplerBase ex
         }
     }
 
+    /**
+     * {...@inheritdoc}
+     * <p>
+     * Clears the Header Manager property so subsequent loops don't keep 
merging more elements
+     */
+    @Override
+    public void clearTestElementChildren(){
+        removeProperty(HEADER_MANAGER);
+    }
+
     public void setPort(int value) {
         setProperty(new IntegerProperty(PORT, value));
     }

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1028948&r1=1028947&r2=1028948&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Fri Oct 29 23:49:01 2010
@@ -68,6 +68,7 @@ To override the default local language f
 
 <h3>HTTP Samplers and Proxy</h3>
 <ul>
+<li>Bug 50178 - HeaderManager added as child of Thread Group can create 
concatenated HeaderManager names and OutOfMemoryException</li>
 </ul>
 
 <h3>Other Samplers</h3>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to