[WAGON-455] Upgrade of 'plexus-utils' to version 3.0.23. o Updated to stop suppressing exceptions incorrectly.
Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/f3462c3f Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/f3462c3f Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/f3462c3f Branch: refs/heads/master Commit: f3462c3f276b2449689eda1f52c3fa1f8e2177ae Parents: 120bfe9 Author: Christian Schulte <schulte2...@users.sourceforge.net> Authored: Fri May 6 03:04:11 2016 +0200 Committer: Christian Schulte <schulte2...@users.sourceforge.net> Committed: Fri May 6 03:04:11 2016 +0200 ---------------------------------------------------------------------- .../org/apache/maven/wagon/AbstractWagon.java | 48 +++++++++++++++++++- .../org/apache/maven/wagon/StreamWagon.java | 26 +++++++++-- .../maven/wagon/StreamingWagonTestCase.java | 10 +++- .../maven/wagon/http/HttpWagonTestCase.java | 16 +++++-- .../maven/wagon/providers/ftp/FtpWagon.java | 3 ++ .../providers/http/LightweightHttpWagon.java | 9 +++- .../providers/http/AbstractHttpClientWagon.java | 5 ++ .../ssh/TestPublickeyAuthenticator.java | 13 ++++-- .../maven/wagon/providers/ssh/ScpHelper.java | 8 +++- .../ssh/knownhost/StreamKnownHostsProvider.java | 4 ++ .../providers/ssh/jsch/AbstractJschWagon.java | 14 +++--- .../webdav/AbstractHttpClientWagon.java | 10 ++++ .../apache/maven/wagon/tck/http/Assertions.java | 4 +- .../wagon/tck/http/fixture/LatencyServlet.java | 3 ++ .../maven/wagon/tck/http/util/TestUtil.java | 6 +++ 15 files changed, 155 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java ---------------------------------------------------------------------- diff --git a/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java b/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java index 1a77a0b..f80ff8f 100644 --- a/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java +++ b/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java @@ -306,13 +306,33 @@ public abstract class AbstractWagon fireTransferDebug( "attempting to create parent directories for destination: " + destination.getName() ); createParentDirectories( destination ); - OutputStream output = new LazyFileOutputStream( destination ); - fireGetStarted( resource, destination ); + OutputStream output = null; try { + output = new LazyFileOutputStream( destination ); getTransfer( resource, output, input, closeInput, maxSize ); + output.close(); + output = null; + } + catch ( final IOException e ) + { + if ( destination.exists() ) + { + boolean deleted = destination.delete(); + + if ( !deleted ) + { + destination.deleteOnExit(); + } + } + + fireTransferError( resource, e, TransferEvent.REQUEST_GET ); + + String msg = "GET request of: " + resource.getName() + " from " + repository.getName() + " failed"; + + throw new TransferFailedException( msg, e ); } catch ( TransferFailedException e ) { @@ -351,6 +371,12 @@ public abstract class AbstractWagon { transfer( resource, input, output, TransferEvent.REQUEST_GET, maxSize ); + if ( closeInput ) + { + input.close(); + input = null; + } + finishGetTransfer( resource, input, output ); } catch ( IOException e ) @@ -413,6 +439,9 @@ public abstract class AbstractWagon input = new FileInputStream( source ); putTransfer( resource, input, output, closeOutput ); + + input.close(); + input = null; } catch ( FileNotFoundException e ) { @@ -420,6 +449,12 @@ public abstract class AbstractWagon throw new TransferFailedException( "Specified source file does not exist: " + source, e ); } + catch ( final IOException e ) + { + fireTransferError( resource, e, TransferEvent.REQUEST_PUT ); + + throw new TransferFailedException( "Failure transferring " + source, e ); + } finally { IOUtil.close( input ); @@ -436,6 +471,12 @@ public abstract class AbstractWagon ? Long.MAX_VALUE : resource.getContentLength() ); + if ( closeOutput ) + { + output.close(); + output = null; + } + finishPutTransfer( resource, input, output ); } catch ( IOException e ) @@ -821,6 +862,9 @@ public abstract class AbstractWagon fireTransferProgress( transferEvent, buffer, n ); } + + input.close(); + input = null; } catch ( IOException e ) { http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java ---------------------------------------------------------------------- diff --git a/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java b/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java index 3990139..5773cf0 100644 --- a/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java +++ b/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java @@ -20,13 +20,13 @@ package org.apache.maven.wagon; */ import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.maven.wagon.authorization.AuthorizationException; import org.apache.maven.wagon.events.TransferEvent; import org.apache.maven.wagon.resource.Resource; -import org.codehaus.plexus.util.IOUtil; /** * Base class for wagon which provide stream based API. @@ -98,7 +98,17 @@ public abstract class StreamWagon } else { - IOUtil.close( is ); + try + { + if ( is != null ) + { + is.close(); + } + } + catch ( final IOException e ) + { + throw new TransferFailedException( "Failure transferring " + resourceName, e ); + } } return retValue; @@ -230,7 +240,17 @@ public abstract class StreamWagon } else { - IOUtil.close( is ); + try + { + if ( is != null ) + { + is.close(); + } + } + catch ( final IOException e ) + { + throw new TransferFailedException( "Failure transferring " + resourceName, e ); + } } return retValue; http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java ---------------------------------------------------------------------- diff --git a/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java b/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java index 18314b0..c2a4782 100644 --- a/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java +++ b/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java @@ -78,6 +78,8 @@ public abstract class StreamingWagonTestCase stream = new FileOutputStream( destFile ); wagon.getToStream( "fubar.txt", stream ); fail( "File was found when it shouldn't have been" ); + stream.close(); + stream = null; } catch ( ResourceDoesNotExistException e ) { @@ -155,7 +157,7 @@ public abstract class StreamingWagonTestCase } finally { - IOUtil.close( stream ); + stream.close(); } disconnectWagon( wagon ); @@ -184,6 +186,8 @@ public abstract class StreamingWagonTestCase stream = new FileOutputStream( destFile ); wagon.getIfNewerToStream( "fubar.txt", stream, 0 ); fail( "File was found when it shouldn't have been" ); + stream.close(); + stream = null; } catch ( ResourceDoesNotExistException e ) { @@ -255,6 +259,8 @@ public abstract class StreamingWagonTestCase { stream = new FileInputStream( sourceFile ); wagon.putFromStream( stream, resource, sourceFile.length(), sourceFile.lastModified() ); + stream.close(); + stream = null; } catch ( Exception e ) { @@ -291,6 +297,8 @@ public abstract class StreamingWagonTestCase { stream = new FileOutputStream( destFile ); wagon.getToStream( this.resource, stream ); + stream.close(); + stream = null; } catch ( Exception e ) { http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java ---------------------------------------------------------------------- diff --git a/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java b/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java index acdab16..dfc499e 100644 --- a/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java +++ b/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java @@ -50,7 +50,6 @@ import org.mortbay.jetty.servlet.DefaultServlet; import org.mortbay.jetty.servlet.ServletHolder; import javax.servlet.ServletException; -import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; @@ -58,6 +57,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.Method; import java.net.URLDecoder; @@ -1983,16 +1983,22 @@ public abstract class HttpWagonTestCase File file = new File( resourceBase, URLDecoder.decode( request.getPathInfo() ) ); file.getParentFile().mkdirs(); - FileOutputStream out = new FileOutputStream( file ); - ServletInputStream in = request.getInputStream(); + OutputStream out = null; + InputStream in = null; try { + in = request.getInputStream(); + out = new FileOutputStream( file ); IOUtil.copy( in, out ); + out.close(); + out = null; + in.close(); + in = null; } finally { - in.close(); - out.close(); + IOUtil.close( in ); + IOUtil.close( out ); } putCallNumber++; DeployedResource deployedResource = new DeployedResource(); http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java index 65fb1da..455d3f4 100644 --- a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java +++ b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java @@ -661,6 +661,9 @@ public class FtpWagon + ftp.getReplyString(); throw new TransferFailedException( msg ); } + + sourceFileStream.close(); + sourceFileStream = null; } catch ( IOException e ) { http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java index 6ad5583..b22de62 100644 --- a/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java +++ b/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java @@ -364,7 +364,14 @@ public class LightweightHttpWagon url + " - Could not open input stream for resource: '" + resource + "'" ); } - return HtmlFileListParser.parseFileList( url, is ); + final List<String> htmlFileList = HtmlFileListParser.parseFileList( url, is ); + is.close(); + is = null; + return htmlFileList; + } + catch ( final IOException e ) + { + throw new TransferFailedException( "Failure transferring " + resource.getName(), e ); } finally { http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java index b01899d..7b4d4c3 100755 --- a/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java +++ b/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagon.java @@ -132,11 +132,16 @@ public abstract class AbstractHttpClientWagon byte[] bytes = IOUtil.toByteArray( stream ); byteBuffer = ByteBuffer.allocate( bytes.length ); byteBuffer.put( bytes ); + stream.close(); } catch ( IOException e ) { throw new TransferFailedException( e.getMessage(), e ); } + finally + { + IOUtil.close( stream ); + } } this.resource = resource; this.length = resource == null ? -1 : resource.getContentLength(); http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-ssh-common-test/src/main/java/org/apache/maven/wagon/providers/ssh/TestPublickeyAuthenticator.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh-common-test/src/main/java/org/apache/maven/wagon/providers/ssh/TestPublickeyAuthenticator.java b/wagon-providers/wagon-ssh-common-test/src/main/java/org/apache/maven/wagon/providers/ssh/TestPublickeyAuthenticator.java index 1ed8632..d49c48d 100644 --- a/wagon-providers/wagon-ssh-common-test/src/main/java/org/apache/maven/wagon/providers/ssh/TestPublickeyAuthenticator.java +++ b/wagon-providers/wagon-ssh-common-test/src/main/java/org/apache/maven/wagon/providers/ssh/TestPublickeyAuthenticator.java @@ -58,11 +58,14 @@ public class TestPublickeyAuthenticator { return false; } + InputStream in = null; try { - InputStream is = - Thread.currentThread().getContextClassLoader().getResourceAsStream( "ssh-keys/id_rsa.pub" ); - PublicKey publicKey = decodePublicKey( IOUtil.toString( is ) ); + in = Thread.currentThread().getContextClassLoader().getResourceAsStream( "ssh-keys/id_rsa.pub" ); + PublicKey publicKey = decodePublicKey( IOUtil.toString( in ) ); + in.close(); + in = null; + publickeyAuthenticatorRequests.add( new PublickeyAuthenticatorRequest( username, key ) ); return ( (RSAPublicKey) publicKey ).getModulus().equals( ( (RSAPublicKey) publicKey ).getModulus() ); @@ -71,6 +74,10 @@ public class TestPublickeyAuthenticator { throw new RuntimeException( e.getMessage(), e ); } + finally + { + IOUtil.close( in ); + } } public static byte[] decrypt( byte[] text, PrivateKey key ) http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java index 7f5b862..4deaae6 100644 --- a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java +++ b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java @@ -147,16 +147,20 @@ public class ScpHelper public static void createZip( List<String> files, File zipName, File basedir ) throws IOException { - ZipOutputStream zos = new ZipOutputStream( new FileOutputStream( zipName ) ); - + ZipOutputStream zos = null; try { + zos = new ZipOutputStream( new FileOutputStream( zipName ) ); + for ( String file : files ) { file = file.replace( '\\', '/' ); writeZipEntry( zos, new File( basedir, file ), file ); } + + zos.close(); + zos = null; } finally { http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java index 8579c85..ef131fa 100644 --- a/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java +++ b/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java @@ -47,6 +47,10 @@ public class StreamKnownHostsProvider { StringOutputStream stringOutputStream = new StringOutputStream(); IOUtil.copy( stream, stringOutputStream ); + + stream.close(); + stream = null; + this.contents = stringOutputStream.toString(); this.knownHosts = this.loadKnownHosts( this.contents ); http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java index 233afa1..9f51d90 100644 --- a/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java +++ b/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java @@ -24,7 +24,6 @@ import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.util.List; import java.util.Properties; @@ -318,16 +317,19 @@ public abstract class AbstractJschWagon channel.setCommand( command + "\n" ); - InputStream stdout = channel.getInputStream(); - InputStream stderr = channel.getErrStream(); + stdoutReader = new BufferedReader( new InputStreamReader( channel.getInputStream() ) ); + stderrReader = new BufferedReader( new InputStreamReader( channel.getErrStream() ) ); channel.connect(); - stdoutReader = new BufferedReader( new InputStreamReader( stdout ) ); - stderrReader = new BufferedReader( new InputStreamReader( stderr ) ); - Streams streams = CommandExecutorStreamProcessor.processStreams( stderrReader, stdoutReader ); + stdoutReader.close(); + stdoutReader = null; + + stderrReader.close(); + stderrReader = null; + if ( streams.getErr().length() > 0 && !ignoreFailures ) { int exitCode = channel.getExitStatus(); http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java ---------------------------------------------------------------------- diff --git a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java index 232e19b..7a500f8 100644 --- a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java +++ b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java @@ -103,11 +103,16 @@ public abstract class AbstractHttpClientWagon byte[] bytes = IOUtils.toByteArray( stream ); this.byteBuffer = ByteBuffer.allocate( bytes.length ); this.byteBuffer.put( bytes ); + stream.close(); } catch ( IOException e ) { throw new TransferFailedException( e.getMessage(), e ); } + finally + { + IOUtils.closeQuietly( stream ); + } } this.resource = resource; @@ -160,6 +165,9 @@ public abstract class AbstractHttpClientWagon remaining -= n; } + + fin.close(); + fin = null; } finally { @@ -585,6 +593,8 @@ public abstract class AbstractHttpClientWagon try { props.load( is ); + is.close(); + is = null; } catch ( IOException ignore ) { http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/Assertions.java ---------------------------------------------------------------------- diff --git a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/Assertions.java b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/Assertions.java index e5cf37d..9a10944 100644 --- a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/Assertions.java +++ b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/Assertions.java @@ -62,7 +62,9 @@ public final class Assertions return null; } - return IOUtil.toString( stream ); + final String resource = IOUtil.toString( stream ); + stream.close(); + return resource; } } http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/fixture/LatencyServlet.java ---------------------------------------------------------------------- diff --git a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/fixture/LatencyServlet.java b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/fixture/LatencyServlet.java index 7d70075..80e6f38 100644 --- a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/fixture/LatencyServlet.java +++ b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/fixture/LatencyServlet.java @@ -111,6 +111,9 @@ public class LatencyServlet total += read; } + + in.close(); + in = null; } finally { http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/f3462c3f/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/util/TestUtil.java ---------------------------------------------------------------------- diff --git a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/util/TestUtil.java b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/util/TestUtil.java index ebcf15e..53748f2 100644 --- a/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/util/TestUtil.java +++ b/wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/util/TestUtil.java @@ -102,6 +102,12 @@ public final class TestUtil out = new FileOutputStream( target ); IOUtil.copy( in, out ); + + out.close(); + out = null; + + in.close(); + in = null; } finally {