@@ -120,12 +120,10 @@ public void testNetworkPathCallsDetachReleaseOnSuccess() {
120120 listener .onResponse (new SimpleTestResponse ("hello" ));
121121
122122 assertTrue ("detachRelease must be called after successful serialization" , detachCalled .get ());
123- assertFalse ("releasable must NOT be closed yet (deferred to bytes release) " , releasableClosed .get ());
123+ assertTrue ("releasable must be closed eagerly after serialization " , releasableClosed .get ());
124124 assertThat (sentResponse .get (), notNullValue ());
125125 assertThat (sentResponse .get (), instanceOf (BytesTransportResponse .class ));
126-
127126 sentResponse .get ().decRef ();
128- assertTrue ("releasable must be closed after bytes are released" , releasableClosed .get ());
129127 }
130128
131129 public void testNetworkPathReleasesImmediatelyOnSerializationFailure () {
@@ -150,7 +148,7 @@ public void testNetworkPathReleasesImmediatelyOnSerializationFailure() {
150148 assertThat (sentException .get (), instanceOf (IOException .class ));
151149 }
152150
153- public void testNetworkPathDefersCircuitBreakerReleaseUntilBytesReleased () {
151+ public void testNetworkPathReleasesResponseBreakerEagerlyAndPageBreakerOnSend () {
154152 long responseBytes = 5000L ;
155153 long pageBytes = PageCacheRecycler .BYTE_PAGE_SIZE ;
156154 var breakerUsed = new AtomicLong (responseBytes );
@@ -181,14 +179,14 @@ public void testNetworkPathDefersCircuitBreakerReleaseUntilBytesReleased() {
181179
182180 assertThat ("detach must zero out the field on the result" , fetchResult .getSearchHitsSizeBytes (), equalTo (0L ));
183181 assertThat (
184- "breaker must account for both the detached response reservation and the serialized page bytes " ,
182+ "response reservation must be released eagerly, only page bytes remain on the breaker " ,
185183 breakerUsed .get (),
186- equalTo (responseBytes + pageBytes )
184+ equalTo (pageBytes )
187185 );
188186 assertThat (sentResponse .get (), instanceOf (BytesTransportResponse .class ));
189187
190188 sentResponse .get ().decRef ();
191- assertThat ("breaker must be released after bytes are released " , breakerUsed .get (), equalTo (0L ));
189+ assertThat ("breaker must be fully released after bytes are sent " , breakerUsed .get (), equalTo (0L ));
192190 } finally {
193191 fetchResult .decRef ();
194192 }
@@ -345,10 +343,9 @@ public void testTaskTransportChannelUnwrapsToNetworkPath() {
345343 listener .onResponse (new SimpleTestResponse ("task-network-test" ));
346344
347345 assertTrue ("detachRelease must be called on task-wrapped network path" , detachCalled .get ());
348- assertFalse ("releasable must NOT be closed yet on task-wrapped network path" , releasableClosed .get ());
346+ assertTrue ("releasable must be closed eagerly on task-wrapped network path" , releasableClosed .get ());
349347 assertThat (sentResponse .get (), instanceOf (BytesTransportResponse .class ));
350348 sentResponse .get ().decRef ();
351- assertTrue ("releasable must be closed after bytes are released" , releasableClosed .get ());
352349 }
353350
354351 static class SimpleTestResponse extends TransportResponse {
0 commit comments