3030import java .util .concurrent .TimeUnit ;
3131
3232import org .apache .jmeter .assertions .AssertionResult ;
33+ import org .apache .jmeter .control .TransactionSampler ;
3334import org .apache .jmeter .gui .Searchable ;
3435import org .apache .jmeter .testelement .TestPlan ;
3536import org .apache .jmeter .threads .JMeterContext ;
36- import org .apache .jmeter .threads .JMeterContextService ;
3737import org .apache .jmeter .threads .JMeterContext .TestLogicalAction ;
38- import org .apache .jmeter .control . TransactionSampler ;
38+ import org .apache .jmeter .threads . JMeterContextService ;
3939import org .apache .jmeter .util .JMeterUtils ;
4040import org .apache .jorphan .util .JOrphanUtils ;
4141import org .apache .jorphan .util .StringUtilities ;
@@ -1606,7 +1606,7 @@ public void cleanAfterSample() {
16061606 if (parent != null ) {
16071607 return ;
16081608 }
1609-
1609+
16101610 // Check if we're part of a parent transaction by walking up the sampler hierarchy
16111611 JMeterContext context = JMeterContextService .getContext ();
16121612 if (context != null ) {
@@ -1621,14 +1621,14 @@ public void cleanAfterSample() {
16211621 }
16221622 }
16231623 }
1624-
1624+
16251625 cleanRecursively ();
16261626 }
1627-
1627+
16281628 /**
16291629 * Internal method to clean this result and all its sub-results
16301630 */
1631- private void cleanRecursively () {
1631+ private void cleanRecursively () {
16321632 // Clean sub-results first
16331633 if (subResults != null ) {
16341634 for (SampleResult subResult : subResults ) {
@@ -1639,13 +1639,13 @@ private void cleanRecursively() {
16391639 subResults .clear ();
16401640 subResults = null ;
16411641 }
1642-
1642+
16431643 // Clean assertion results
16441644 if (assertionResults != null ) {
16451645 assertionResults .clear ();
16461646 assertionResults = null ;
16471647 }
1648-
1648+
16491649 // Clear only memory-heavy data and caches, preserve samplerData
16501650 this .parent = null ;
16511651 this .responseDataAsString = null ;
@@ -1737,12 +1737,12 @@ public SampleResult cloneForListeners() {
17371737 log .debug ("Could not create clone with type: " + this .getClass ().getName () + ", using base class" , e );
17381738 clone = new SampleResult (this );
17391739 }
1740-
1740+
17411741 // Deep copy mutable fields that the copy constructor doesn't handle deeply
17421742 if (responseData != EMPTY_BA ) {
17431743 clone .responseData = responseData .clone ();
17441744 }
1745-
1745+
17461746 // Deep copy subResults
17471747 if (subResults != null ) {
17481748 clone .subResults = new ArrayList <>(subResults .size ());
@@ -1752,19 +1752,19 @@ public SampleResult cloneForListeners() {
17521752 clone .subResults .add (subClone );
17531753 }
17541754 }
1755-
1755+
17561756 // Deep copy assertion results
17571757 if (assertionResults != null ) {
17581758 clone .assertionResults = new ArrayList <>(assertionResults .size ());
17591759 for (AssertionResult assertionResult : assertionResults ) {
17601760 clone .assertionResults .add (assertionResult ); // AssertionResult is immutable
17611761 }
17621762 }
1763-
1763+
17641764 // Clear only the caches and unnecessary references in the clone
17651765 clone .responseDataAsString = null ;
17661766 clone .parent = null ; // Parent reference not needed in the clone
1767-
1767+
17681768 return clone ;
17691769 }
17701770}
0 commit comments