[WAGON-455] Upgrade of 'plexus-utils' to version 3.0.23.

o Updated to stop suppressing exceptions incorrectly.
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 @@
         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 @@
         {
             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 @@
             input = new FileInputStream( source );
 
             putTransfer( resource, input, output, closeOutput );
+
+            input.close();
+            input = null;
         }
         catch ( FileNotFoundException e )
         {
@@ -420,6 +449,12 @@
 
             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 @@
                           ? Long.MAX_VALUE
                           : resource.getContentLength() );
 
+            if ( closeOutput )
+            {
+                output.close();
+                output = null;
+            }
+
             finishPutTransfer( resource, input, output );
         }
         catch ( IOException e )
@@ -821,6 +862,9 @@
 
                 fireTransferProgress( transferEvent, buffer, n );
             }
+
+            input.close();
+            input = null;
         }
         catch ( IOException e )
         {
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 @@
  */
 
 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 @@
         }
         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 @@
         }
         else
         {
-            IOUtil.close( is );
+            try
+            {
+                if ( is != null )
+                {
+                    is.close();
+                }
+            }
+            catch ( final IOException e )
+            {
+                throw new TransferFailedException( "Failure transferring " + resourceName, e );
+            }
         }
         
         return retValue;
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 @@
             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 @@
         }
         finally
         {
-            IOUtil.close( stream );
+            stream.close();
         }
 
         disconnectWagon( wagon );
@@ -184,6 +186,8 @@
                 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 @@
         {
             stream = new FileInputStream( sourceFile );
             wagon.putFromStream( stream, resource, sourceFile.length(), sourceFile.lastModified() );
+            stream.close();
+            stream = null;
         }
         catch ( Exception e )
         {
@@ -291,6 +297,8 @@
         {
             stream = new FileOutputStream( destFile );
             wagon.getToStream( this.resource, stream );
+            stream.close();
+            stream = null;
         }
         catch ( Exception e )
         {
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.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.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 @@
 
             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();
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 @@
                             + ftp.getReplyString();
                     throw new TransferFailedException( msg );
                 }
+
+                sourceFileStream.close();
+                sourceFileStream = null;
             }
             catch ( IOException e )
             {
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 @@
                     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
         {
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 @@
                     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();
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 @@
         {
             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 @@
         {
             throw new RuntimeException( e.getMessage(), e );
         }
+        finally
+        {
+            IOUtil.close( in );
+        }
     }
 
     public static byte[] decrypt( byte[] text, PrivateKey key )
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 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
         {
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 @@
         {
             StringOutputStream stringOutputStream = new StringOutputStream();
             IOUtil.copy( stream, stringOutputStream );
+
+            stream.close();
+            stream = null;
+
             this.contents = stringOutputStream.toString();
             
             this.knownHosts = this.loadKnownHosts( this.contents );
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.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 @@
 
             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();
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 @@
                     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 @@
 
                     remaining -= n;
                 }
+
+                fin.close();
+                fin = null;
             }
             finally
             {
@@ -585,6 +593,8 @@
             try
             {
                 props.load( is );
+                is.close();
+                is = null;
             }
             catch ( IOException ignore )
             {
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 @@
             return null;
         }
 
-        return IOUtil.toString( stream );
+        final String resource = IOUtil.toString( stream );
+        stream.close();
+        return resource;
     }
 
 }
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 @@
 
                 total += read;
             }
+
+            in.close();
+            in = null;
         }
         finally
         {
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 @@
                                 out = new FileOutputStream( target );
 
                                 IOUtil.copy( in, out );
+
+                                out.close();
+                                out = null;
+
+                                in.close();
+                                in = null;
                             }
                             finally
                             {