1717import com .github .dockerjava .core .CompressArchiveUtil ;
1818import com .github .dockerjava .core .DockerClientConfig ;
1919import com .github .dockerjava .core .command .CopyFileToContainerCmd ;
20- import com .google .common .io .Closeables ;
2120
2221public class CopyFileToContainerCmdExec extends AbstrSyncDockerCmdExec <CopyFileToContainerCmd , Void > implements CopyFileToContainerCmd .Exec {
2322
@@ -27,17 +26,19 @@ public CopyFileToContainerCmdExec(WebTarget baseResource, DockerClientConfig doc
2726 super (baseResource , dockerClientConfig );
2827 }
2928
29+ private InputStream buildUploadStream (CopyFileToContainerCmd command ) throws IOException {
30+ Path toUpload = Files .createTempFile ("docker-java" , ".tar.gz" );
31+ CompressArchiveUtil .tar (Paths .get (command .getHostResource ()), toUpload , true , command .isDirChildrenOnly ());
32+ return Files .newInputStream (toUpload );
33+ }
34+
3035 @ Override
3136 protected Void execute (CopyFileToContainerCmd command ) {
3237 WebTarget webResource = getBaseResource ().path ("/containers/{id}/archive" ).resolveTemplate ("id" ,
3338 command .getContainerId ());
3439
3540 LOGGER .trace ("PUT: " + webResource .toString ());
36- InputStream streamToUpload = null ;
37- try {
38- Path toUpload = Files .createTempFile ("docker-java" , "tar.gz" );
39- CompressArchiveUtil .tar (Paths .get (command .getHostResource ()), toUpload , true , command .isDirChildrenOnly ());
40- streamToUpload = Files .newInputStream (toUpload );
41+ try (InputStream streamToUpload = buildUploadStream (command )) {
4142 webResource
4243 .queryParam ("path" , command .getRemotePath ())
4344 .queryParam ("noOverwriteDirNonDir" , command .isNoOverwriteDirNonDir ())
@@ -47,11 +48,6 @@ protected Void execute(CopyFileToContainerCmd command) {
4748 return null ;
4849 } catch (IOException e ) {
4950 throw new DockerClientException ("Error occurred while preparing uploading host resource <" + command .getHostResource () + ">" , e );
50- } finally {
51- if (streamToUpload != null ) {
52- Closeables .closeQuietly (streamToUpload );
53- }
5451 }
5552 }
56-
5753}
0 commit comments