Repository: maven
Updated Branches:
  refs/heads/MNG-6168 [created] 0931bb2cc


[MNG-6168] Fix unclosed streams


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/0931bb2c
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/0931bb2c
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/0931bb2c

Branch: refs/heads/MNG-6168
Commit: 0931bb2cc7630cc79adb98407db13315b4a709ee
Parents: f0535a4
Author: Christian Schulte <schu...@apache.org>
Authored: Fri Mar 24 22:04:37 2017 +0100
Committer: Christian Schulte <schu...@apache.org>
Committed: Fri Mar 24 22:04:37 2017 +0100

----------------------------------------------------------------------
 .../metadata/io/DefaultMetadataReader.java      | 19 ++-------
 .../toolchain/io/DefaultToolchainsReader.java   | 19 ++-------
 .../maven/model/io/DefaultModelReader.java      | 18 +++------
 .../maven/model/io/DefaultModelWriter.java      | 27 +++++--------
 .../internal/DefaultVersionRangeResolver.java   | 18 +++------
 .../internal/DefaultVersionResolver.java        | 42 ++++++++------------
 .../settings/io/DefaultSettingsReader.java      | 19 ++-------
 .../settings/io/DefaultSettingsWriter.java      | 27 +++++--------
 8 files changed, 58 insertions(+), 131 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java
index c769f89..51a2849 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java
@@ -29,7 +29,6 @@ import org.apache.commons.lang3.Validate;
 import org.apache.maven.artifact.repository.metadata.Metadata;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
 import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -58,19 +57,14 @@ public class DefaultMetadataReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
+        try ( final Reader in = input )
         {
-            MetadataXpp3Reader r = new MetadataXpp3Reader();
-            return r.read( input, isStrict( options ) );
+            return new MetadataXpp3Reader().read( in, isStrict( options ) );
         }
         catch ( XmlPullParserException e )
         {
             throw new MetadataParseException( e.getMessage(), 
e.getLineNumber(), e.getColumnNumber(), e );
         }
-        finally
-        {
-            IOUtil.close( input );
-        }
     }
 
     public Metadata read( InputStream input, Map<String, ?> options )
@@ -78,19 +72,14 @@ public class DefaultMetadataReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
+        try ( final InputStream in = input )
         {
-            MetadataXpp3Reader r = new MetadataXpp3Reader();
-            return r.read( input, isStrict( options ) );
+            return new MetadataXpp3Reader().read( in, isStrict( options ) );
         }
         catch ( XmlPullParserException e )
         {
             throw new MetadataParseException( e.getMessage(), 
e.getLineNumber(), e.getColumnNumber(), e );
         }
-        finally
-        {
-            IOUtil.close( input );
-        }
     }
 
     private boolean isStrict( Map<String, ?> options )

http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java
 
b/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java
index 9b5bdd7..86a1784 100644
--- 
a/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java
+++ 
b/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java
@@ -31,7 +31,6 @@ import javax.inject.Singleton;
 import org.apache.commons.lang3.Validate;
 import org.apache.maven.toolchain.model.PersistedToolchains;
 import org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -62,19 +61,14 @@ public class DefaultToolchainsReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
+        try ( final Reader in = input )
         {
-            MavenToolchainsXpp3Reader r = new MavenToolchainsXpp3Reader();
-            return r.read( input, isStrict( options ) );
+            return new MavenToolchainsXpp3Reader().read( in, isStrict( options 
) );
         }
         catch ( XmlPullParserException e )
         {
             throw new ToolchainsParseException( e.getMessage(), 
e.getLineNumber(), e.getColumnNumber(), e );
         }
-        finally
-        {
-            IOUtil.close( input );
-        }
     }
 
     @Override
@@ -83,19 +77,14 @@ public class DefaultToolchainsReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
+        try ( final InputStream in = input )
         {
-            MavenToolchainsXpp3Reader r = new MavenToolchainsXpp3Reader();
-            return r.read( input, isStrict( options ) );
+            return new MavenToolchainsXpp3Reader().read( in, isStrict( options 
) );
         }
         catch ( XmlPullParserException e )
         {
             throw new ToolchainsParseException( e.getMessage(), 
e.getLineNumber(), e.getColumnNumber(), e );
         }
-        finally
-        {
-            IOUtil.close( input );
-        }
     }
 
     private boolean isStrict( Map<String, ?> options )

http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
index 0ba6673..e07ac3b 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
@@ -32,8 +32,8 @@ import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx;
 import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.XmlStreamReader;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 /**
@@ -65,13 +65,9 @@ public class DefaultModelReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
-        {
-            return read( input, isStrict( options ), getSource( options ) );
-        }
-        finally
+        try ( final Reader in = input )
         {
-            IOUtil.close( input );
+            return read( in, isStrict( options ), getSource( options ) );
         }
     }
 
@@ -81,13 +77,9 @@ public class DefaultModelReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
-        {
-            return read( ReaderFactory.newXmlReader( input ), isStrict( 
options ), getSource( options ) );
-        }
-        finally
+        try ( final XmlStreamReader in = ReaderFactory.newXmlReader( input ) )
         {
-            IOUtil.close( input );
+            return read( in, isStrict( options ), getSource( options ) );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
index 0d9af13..c899efa 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
@@ -30,7 +30,6 @@ import org.apache.commons.lang3.Validate;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
 import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.WriterFactory;
 
 /**
@@ -62,14 +61,9 @@ public class DefaultModelWriter
         Validate.notNull( output, "output cannot be null" );
         Validate.notNull( model, "model cannot be null" );
 
-        try
+        try ( final Writer out = output )
         {
-            MavenXpp3Writer w = new MavenXpp3Writer();
-            w.write( output, model );
-        }
-        finally
-        {
-            IOUtil.close( output );
+            new MavenXpp3Writer().write( out, model );
         }
     }
 
@@ -80,19 +74,16 @@ public class DefaultModelWriter
         Validate.notNull( output, "output cannot be null" );
         Validate.notNull( model, "model cannot be null" );
 
-        try
+        String encoding = model.getModelEncoding();
+        // TODO Use StringUtils here
+        if ( encoding == null || encoding.length() <= 0 )
         {
-            String encoding = model.getModelEncoding();
-            // TODO Use StringUtils here
-            if ( encoding == null || encoding.length() <= 0 )
-            {
-                encoding = "UTF-8";
-            }
-            write( new OutputStreamWriter( output, encoding ), options, model 
);
+            encoding = "UTF-8";
         }
-        finally
+
+        try ( final Writer out = new OutputStreamWriter( output, encoding ) )
         {
-            IOUtil.close( output );
+            write( out, options, model );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
----------------------------------------------------------------------
diff --git 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
index ddd3e97..c12c9e0 100644
--- 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
+++ 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
@@ -24,7 +24,6 @@ import 
org.apache.maven.artifact.repository.metadata.Versioning;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.util.IOUtil;
 import org.eclipse.aether.RepositoryEvent;
 import org.eclipse.aether.RepositoryEvent.EventType;
 import org.eclipse.aether.RepositorySystemSession;
@@ -57,7 +56,9 @@ import org.eclipse.aether.version.VersionScheme;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+
 import java.io.FileInputStream;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -258,23 +259,20 @@ public class DefaultVersionRangeResolver
                                      ArtifactRepository repository, 
VersionRangeResult result )
     {
         Versioning versioning = null;
-
-        FileInputStream fis = null;
         try
         {
             if ( metadata != null )
             {
-
                 try ( SyncContext syncContext = 
syncContextFactory.newInstance( session, true ) )
                 {
                     syncContext.acquire( null, Collections.singleton( metadata 
) );
 
                     if ( metadata.getFile() != null && 
metadata.getFile().exists() )
                     {
-                        fis = new FileInputStream( metadata.getFile() );
-                        org.apache.maven.artifact.repository.metadata.Metadata 
m =
-                            new MetadataXpp3Reader().read( fis, false );
-                        versioning = m.getVersioning();
+                        try ( final InputStream in = new FileInputStream( 
metadata.getFile() ) )
+                        {
+                            versioning = new MetadataXpp3Reader().read( in, 
false ).getVersioning();
+                        }
                     }
                 }
             }
@@ -284,10 +282,6 @@ public class DefaultVersionRangeResolver
             invalidMetadata( session, trace, metadata, repository, e );
             result.addException( e );
         }
-        finally
-        {
-            IOUtil.close( fis );
-        }
 
         return ( versioning != null ) ? versioning : new Versioning();
     }

http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
----------------------------------------------------------------------
diff --git 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
index 2b0890b..c23794b 100644
--- 
a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
+++ 
b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
@@ -26,7 +26,6 @@ import 
org.apache.maven.artifact.repository.metadata.Versioning;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.RepositoryCache;
 import org.eclipse.aether.RepositoryEvent;
@@ -61,9 +60,11 @@ import org.eclipse.aether.util.ConfigUtils;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -324,43 +325,38 @@ public class DefaultVersionResolver
                                      ArtifactRepository repository, 
VersionResult result )
     {
         Versioning versioning = null;
-
-        FileInputStream fis = null;
         try
         {
             if ( metadata != null )
             {
-
                 try ( SyncContext syncContext = 
syncContextFactory.newInstance( session, true ) )
                 {
                     syncContext.acquire( null, Collections.singleton( metadata 
) );
 
                     if ( metadata.getFile() != null && 
metadata.getFile().exists() )
                     {
-                        fis = new FileInputStream( metadata.getFile() );
-                        org.apache.maven.artifact.repository.metadata.Metadata 
m =
-                            new MetadataXpp3Reader().read( fis, false );
-                        versioning = m.getVersioning();
-
-                        /*
-                         * NOTE: Users occasionally misuse the id "local" for 
remote repos which screws up the metadata
-                         * of the local repository. This is especially 
troublesome during snapshot resolution so we try
-                         * to handle that gracefully.
-                         */
-                        if ( versioning != null && repository instanceof 
LocalRepository )
+                        try ( final InputStream in = new FileInputStream( 
metadata.getFile() ) )
                         {
-                            if ( versioning.getSnapshot() != null && 
versioning.getSnapshot().getBuildNumber() > 0 )
+                            versioning = new MetadataXpp3Reader().read( in, 
false ).getVersioning();
+
+                            /*
+                            NOTE: Users occasionally misuse the id "local" for 
remote repos which screws up the metadata
+                            of the local repository. This is especially 
troublesome during snapshot resolution so we try
+                            to handle that gracefully.
+                             */
+                            if ( versioning != null && repository instanceof 
LocalRepository
+                                     && versioning.getSnapshot() != null
+                                     && 
versioning.getSnapshot().getBuildNumber() > 0 )
                             {
-                                Versioning repaired = new Versioning();
+                                final Versioning repaired = new Versioning();
                                 repaired.setLastUpdated( 
versioning.getLastUpdated() );
-                                Snapshot snapshot = new Snapshot();
-                                snapshot.setLocalCopy( true );
-                                repaired.setSnapshot( snapshot );
+                                repaired.setSnapshot( new Snapshot() );
+                                repaired.getSnapshot().setLocalCopy( true );
                                 versioning = repaired;
-
                                 throw new IOException( "Snapshot information 
corrupted with remote repository data"
                                                            + ", please verify 
that no remote repository uses the id '"
                                                            + 
repository.getId() + "'" );
+
                             }
                         }
                     }
@@ -372,10 +368,6 @@ public class DefaultVersionResolver
             invalidMetadata( session, trace, metadata, repository, e );
             result.addException( e );
         }
-        finally
-        {
-            IOUtil.close( fis );
-        }
 
         return ( versioning != null ) ? versioning : new Versioning();
     }

http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
----------------------------------------------------------------------
diff --git 
a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
 
b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
index 9beee97..897f742 100644
--- 
a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
+++ 
b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
@@ -29,7 +29,6 @@ import org.apache.commons.lang3.Validate;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
 import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -60,19 +59,14 @@ public class DefaultSettingsReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
+        try ( final Reader in = input )
         {
-            SettingsXpp3Reader r = new SettingsXpp3Reader();
-            return r.read( input, isStrict( options ) );
+            return new SettingsXpp3Reader().read( in, isStrict( options ) );
         }
         catch ( XmlPullParserException e )
         {
             throw new SettingsParseException( e.getMessage(), 
e.getLineNumber(), e.getColumnNumber(), e );
         }
-        finally
-        {
-            IOUtil.close( input );
-        }
     }
 
     @Override
@@ -81,19 +75,14 @@ public class DefaultSettingsReader
     {
         Validate.notNull( input, "input cannot be null" );
 
-        try
+        try ( final InputStream in = input )
         {
-            SettingsXpp3Reader r = new SettingsXpp3Reader();
-            return r.read( input, isStrict( options ) );
+            return new SettingsXpp3Reader().read( in, isStrict( options ) );
         }
         catch ( XmlPullParserException e )
         {
             throw new SettingsParseException( e.getMessage(), 
e.getLineNumber(), e.getColumnNumber(), e );
         }
-        finally
-        {
-            IOUtil.close( input );
-        }
     }
 
     private boolean isStrict( Map<String, ?> options )

http://git-wip-us.apache.org/repos/asf/maven/blob/0931bb2c/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
----------------------------------------------------------------------
diff --git 
a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
 
b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
index 877fbde..19d8b9b 100644
--- 
a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
+++ 
b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
@@ -30,7 +30,6 @@ import org.apache.commons.lang3.Validate;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
 import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.WriterFactory;
 
 /**
@@ -62,14 +61,9 @@ public class DefaultSettingsWriter
         Validate.notNull( output, "output cannot be null" );
         Validate.notNull( settings, "settings cannot be null" );
 
-        try
+        try ( final Writer out = output )
         {
-            SettingsXpp3Writer w = new SettingsXpp3Writer();
-            w.write( output, settings );
-        }
-        finally
-        {
-            IOUtil.close( output );
+            new SettingsXpp3Writer().write( out, settings );
         }
     }
 
@@ -80,19 +74,16 @@ public class DefaultSettingsWriter
         Validate.notNull( output, "output cannot be null" );
         Validate.notNull( settings, "settings cannot be null" );
 
-        try
+        String encoding = settings.getModelEncoding();
+        // TODO Use StringUtils here
+        if ( encoding == null || encoding.length() <= 0 )
         {
-            String encoding = settings.getModelEncoding();
-            // TODO Use StringUtils here
-            if ( encoding == null || encoding.length() <= 0 )
-            {
-                encoding = "UTF-8";
-            }
-            write( new OutputStreamWriter( output, encoding ), options, 
settings );
+            encoding = "UTF-8";
         }
-        finally
+
+        try ( final Writer out = new OutputStreamWriter( output, encoding ) )
         {
-            IOUtil.close( output );
+            write( out, options, settings );
         }
     }
 

Reply via email to