@@ -111,17 +111,20 @@ public void delete() {
111111
112112 HttpRequestProvider requestProvider = httpDeleteRequestProvider ();
113113
114- ResponseCallback <Void > callback = new ResponseCallback <>();
114+ try ( ResponseCallback <Void > callback = new ResponseCallback <>()) {
115115
116- HttpResponseHandler responseHandler = new HttpResponseHandler (requestProvider , callback );
116+ HttpResponseHandler responseHandler = new HttpResponseHandler (requestProvider , callback );
117117
118- Channel channel = getChannel ();
118+ Channel channel = getChannel ();
119119
120- channel .pipeline ().addLast (responseHandler );
120+ channel .pipeline ().addLast (responseHandler );
121121
122- sendRequest (requestProvider , channel );
122+ sendRequest (requestProvider , channel );
123123
124- callback .awaitResult ();
124+ callback .awaitResult ();
125+ } catch (IOException e ) {
126+ throw new RuntimeException (e );
127+ }
125128 }
126129
127130 public void get (ResultCallback <Frame > resultCallback ) {
@@ -141,12 +144,13 @@ public void get(ResultCallback<Frame> resultCallback) {
141144 }
142145
143146 public <T > T get (TypeReference <T > typeReference ) {
147+ try (ResponseCallback <T > callback = new ResponseCallback <>()) {
148+ get (typeReference , callback );
144149
145- ResponseCallback <T > callback = new ResponseCallback <>();
146-
147- get (typeReference , callback );
148-
149- return callback .awaitResult ();
150+ return callback .awaitResult ();
151+ } catch (IOException e ) {
152+ throw new RuntimeException (e );
153+ }
150154 }
151155
152156 public <T > void get (TypeReference <T > typeReference , ResultCallback <T > resultCallback ) {
@@ -267,12 +271,13 @@ public void run() {
267271 }
268272
269273 public <T > T post (final Object entity , TypeReference <T > typeReference ) {
274+ try (ResponseCallback <T > callback = new ResponseCallback <>()) {
275+ post (entity , typeReference , callback );
270276
271- ResponseCallback <T > callback = new ResponseCallback <>();
272-
273- post (entity , typeReference , callback );
274-
275- return callback .awaitResult ();
277+ return callback .awaitResult ();
278+ } catch (IOException e ) {
279+ throw new RuntimeException (e );
280+ }
276281 }
277282
278283 public <T > void post (final Object entity , TypeReference <T > typeReference , final ResultCallback <T > resultCallback ) {
@@ -372,12 +377,13 @@ private void setDefaultHeaders(HttpRequest request) {
372377 }
373378
374379 public <T > T post (TypeReference <T > typeReference , InputStream body ) {
380+ try (ResponseCallback <T > callback = new ResponseCallback <>()) {
381+ post (typeReference , callback , body );
375382
376- ResponseCallback <T > callback = new ResponseCallback <>();
377-
378- post (typeReference , callback , body );
379-
380- return callback .awaitResult ();
383+ return callback .awaitResult ();
384+ } catch (IOException e ) {
385+ throw new RuntimeException (e );
386+ }
381387 }
382388
383389 public <T > void post (TypeReference <T > typeReference , ResultCallback <T > resultCallback , InputStream body ) {
@@ -464,28 +470,30 @@ public void put(InputStream body, com.github.dockerjava.core.MediaType mediaType
464470
465471 Channel channel = getChannel ();
466472
467- ResponseCallback <Void > resultCallback = new ResponseCallback <>();
473+ try (ResponseCallback <Void > resultCallback = new ResponseCallback <>()) {
474+ HttpResponseHandler responseHandler = new HttpResponseHandler (requestProvider , resultCallback );
468475
469- HttpResponseHandler responseHandler = new HttpResponseHandler (requestProvider , resultCallback );
476+ channel .pipeline ().addLast (new ChunkedWriteHandler ());
477+ channel .pipeline ().addLast (responseHandler );
470478
471- channel .pipeline ().addLast (new ChunkedWriteHandler ());
472- channel .pipeline ().addLast (responseHandler );
473-
474- HttpRequest request = requestProvider .getHttpRequest (resource );
479+ HttpRequest request = requestProvider .getHttpRequest (resource );
475480
476- // don't accept FullHttpRequest here
477- if (request instanceof FullHttpRequest ) {
478- throw new DockerClientException ("fatal: request is instance of FullHttpRequest" );
479- }
481+ // don't accept FullHttpRequest here
482+ if (request instanceof FullHttpRequest ) {
483+ throw new DockerClientException ("fatal: request is instance of FullHttpRequest" );
484+ }
480485
481- request .headers ().set (HttpHeaderNames .TRANSFER_ENCODING , HttpHeaderValues .CHUNKED );
482- request .headers ().remove (HttpHeaderNames .CONTENT_LENGTH );
483- request .headers ().set (HttpHeaderNames .CONTENT_TYPE , mediaType .getMediaType ());
486+ request .headers ().set (HttpHeaderNames .TRANSFER_ENCODING , HttpHeaderValues .CHUNKED );
487+ request .headers ().remove (HttpHeaderNames .CONTENT_LENGTH );
488+ request .headers ().set (HttpHeaderNames .CONTENT_TYPE , mediaType .getMediaType ());
484489
485- channel .write (request );
486- channel .write (new ChunkedStream (new BufferedInputStream (body , 1024 * 1024 )));
487- channel .writeAndFlush (LastHttpContent .EMPTY_LAST_CONTENT );
490+ channel .write (request );
491+ channel .write (new ChunkedStream (new BufferedInputStream (body , 1024 * 1024 )));
492+ channel .writeAndFlush (LastHttpContent .EMPTY_LAST_CONTENT );
488493
489- resultCallback .awaitResult ();
494+ resultCallback .awaitResult ();
495+ } catch (IOException e ) {
496+ throw new RuntimeException (e );
497+ }
490498 }
491499}
0 commit comments