@@ -181,27 +181,32 @@ class PossiblySlowRunnable implements Runnable {
181
181
182
182
@ Override
183
183
public void run () {
184
- final String uri = fullHttpRequest .uri ();
185
-
186
- final ByteBuf buffer = Unpooled .copiedBuffer (uri , StandardCharsets .UTF_8 );
187
-
188
- Netty4HttpRequest httpRequest = new Netty4HttpRequest (fullHttpRequest , pipelinedRequest .getSequence ());
189
- Netty4HttpResponse response = httpRequest .createResponse (RestStatus .OK , new BytesArray (uri .getBytes (StandardCharsets .UTF_8 )));
190
- response .headers ().add (HttpHeaderNames .CONTENT_LENGTH , buffer .readableBytes ());
191
-
192
- final boolean slow = uri .matches ("/slow/\\ d+" );
193
- if (slow ) {
194
- try {
195
- Thread .sleep (scaledRandomIntBetween (500 , 1000 ));
196
- } catch (InterruptedException e ) {
197
- throw new RuntimeException (e );
184
+ try {
185
+ final String uri = fullHttpRequest .uri ();
186
+
187
+ final ByteBuf buffer = Unpooled .copiedBuffer (uri , StandardCharsets .UTF_8 );
188
+
189
+ Netty4HttpRequest httpRequest = new Netty4HttpRequest (fullHttpRequest , pipelinedRequest .getSequence ());
190
+ Netty4HttpResponse response =
191
+ httpRequest .createResponse (RestStatus .OK , new BytesArray (uri .getBytes (StandardCharsets .UTF_8 )));
192
+ response .headers ().add (HttpHeaderNames .CONTENT_LENGTH , buffer .readableBytes ());
193
+
194
+ final boolean slow = uri .matches ("/slow/\\ d+" );
195
+ if (slow ) {
196
+ try {
197
+ Thread .sleep (scaledRandomIntBetween (500 , 1000 ));
198
+ } catch (InterruptedException e ) {
199
+ throw new RuntimeException (e );
200
+ }
201
+ } else {
202
+ assert uri .matches ("/\\ d+" );
198
203
}
199
- } else {
200
- assert uri .matches ("/\\ d+" );
201
- }
202
204
203
- final ChannelPromise promise = ctx .newPromise ();
204
- ctx .writeAndFlush (response , promise );
205
+ final ChannelPromise promise = ctx .newPromise ();
206
+ ctx .writeAndFlush (response , promise );
207
+ } finally {
208
+ fullHttpRequest .release ();
209
+ }
205
210
}
206
211
207
212
}
0 commit comments