close resources
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/GitBlameConsumerTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/GitBlameConsumerTest.java
index 502bdf9..f330157 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/GitBlameConsumerTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/GitBlameConsumerTest.java
@@ -133,31 +133,33 @@
         File compareWithFile = getTestFile( "/src/test/resources/git/blame/git-blame-2.orig" );
         Assert.assertNotNull( compareWithFile );
 
-        BufferedReader r = new BufferedReader( new FileReader( compareWithFile ) );
-
-        String line;
-        SimpleDateFormat blameDateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
-        blameDateFormat.setTimeZone( TimeZone.getTimeZone( "GMT" ) );
-
-        int lineNr = 0;
-
-        while ( ( line = r.readLine() ) != null && line.trim().length() > 0 )
+        try ( BufferedReader r = new BufferedReader( new FileReader( compareWithFile ) ) )
         {
-            if ( !consumerLineIt.hasNext() )
+            String line;
+            SimpleDateFormat blameDateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
+            blameDateFormat.setTimeZone( TimeZone.getTimeZone( "GMT" ) );
+    
+            int lineNr = 0;
+    
+            while ( ( line = r.readLine() ) != null && line.trim().length() > 0 )
             {
-                fail( "GitBlameConsumer lines do not match the original output!" );
+                if ( !consumerLineIt.hasNext() )
+                {
+                    fail( "GitBlameConsumer lines do not match the original output!" );
+                }
+                BlameLine blameLine = consumerLineIt.next();
+                Assert.assertNotNull( blameLine );
+    
+                String[] parts = line.split( "\t" );
+                Assert.assertEquals( 3, parts.length );
+    
+                Assert.assertEquals( "error in line " + lineNr, parts[0], blameLine.getRevision() );
+                Assert.assertEquals( "error in line " + lineNr, parts[1], blameLine.getAuthor() );
+                Assert.assertEquals( "error in line " + lineNr, parts[2],
+                                     blameDateFormat.format( blameLine.getDate() ) );
+    
+                lineNr++;
             }
-            BlameLine blameLine = consumerLineIt.next();
-            Assert.assertNotNull( blameLine );
-
-            String[] parts = line.split( "\t" );
-            Assert.assertEquals( 3, parts.length );
-
-            Assert.assertEquals( "error in line " + lineNr, parts[0], blameLine.getRevision() );
-            Assert.assertEquals( "error in line " + lineNr, parts[1], blameLine.getAuthor() );
-            Assert.assertEquals( "error in line " + lineNr, parts[2], blameDateFormat.format( blameLine.getDate() ) );
-
-            lineNr++;
         }
 
         if ( consumerLineIt.hasNext() )
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/JGitUtils.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/JGitUtils.java
index 32ada25..6ad56ba 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/JGitUtils.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/JGitUtils.java
@@ -236,19 +236,20 @@
         List<ScmFile> list = new ArrayList<ScmFile>();
         if ( JGitUtils.hasCommits( repository ) )
         {
-            RevWalk rw = new RevWalk( repository );
-            RevCommit realParant = commit.getParentCount() > 0 ? commit.getParent( 0 ) : commit;
-            RevCommit parent = rw.parseCommit( realParant.getId() );
-            DiffFormatter df = new DiffFormatter( DisabledOutputStream.INSTANCE );
-            df.setRepository( repository );
-            df.setDiffComparator( RawTextComparator.DEFAULT );
-            df.setDetectRenames( true );
-            List<DiffEntry> diffs = df.scan( parent.getTree(), commit.getTree() );
-            for ( DiffEntry diff : diffs )
-            {
-                list.add( new ScmFile( diff.getNewPath(), ScmFileStatus.CHECKED_IN ) );
+           
+            try ( RevWalk rw = new RevWalk( repository );
+                  DiffFormatter df = new DiffFormatter( DisabledOutputStream.INSTANCE ) ) {
+                RevCommit realParent = commit.getParentCount() > 0 ? commit.getParent( 0 ) : commit;
+                RevCommit parent = rw.parseCommit( realParent.getId() );
+                    df.setRepository( repository );
+                df.setDiffComparator( RawTextComparator.DEFAULT );
+                df.setDetectRenames( true );
+                List<DiffEntry> diffs = df.scan( parent.getTree(), commit.getTree() );
+                for ( DiffEntry diff : diffs )
+                {
+                    list.add( new ScmFile( diff.getNewPath(), ScmFileStatus.CHECKED_IN ) );
+                }
             }
-            rw.close();
         }
         return list;
     }
@@ -369,7 +370,6 @@
     {
 
         List<RevCommit> revs = new ArrayList<RevCommit>();
-        RevWalk walk = new RevWalk( repo );
 
         ObjectId fromRevId = fromRev != null ? repo.resolve( fromRev ) : null;
         ObjectId toRevId = toRev != null ? repo.resolve( toRev ) : null;
@@ -379,82 +379,84 @@
             sortings = new RevSort[]{ RevSort.TOPO, RevSort.COMMIT_TIME_DESC };
         }
 
-        for ( final RevSort s : sortings )
-        {
-            walk.sort( s, true );
-        }
-
-        if ( fromDate != null && toDate != null )
-        {
-            //walk.setRevFilter( CommitTimeRevFilter.between( fromDate, toDate ) );
-            walk.setRevFilter( new RevFilter()
+        try ( RevWalk walk = new RevWalk( repo ) ) {
+            for ( final RevSort s : sortings )
             {
-                @Override
-                public boolean include( RevWalk walker, RevCommit cmit )
-                    throws StopWalkException, MissingObjectException, IncorrectObjectTypeException, IOException
+                walk.sort( s, true );
+            }
+    
+            if ( fromDate != null && toDate != null )
+            {
+                //walk.setRevFilter( CommitTimeRevFilter.between( fromDate, toDate ) );
+                walk.setRevFilter( new RevFilter()
                 {
-                    int cmtTime = cmit.getCommitTime();
-
-                    return ( cmtTime >= ( fromDate.getTime() / 1000 ) ) && ( cmtTime <= ( toDate.getTime() / 1000 ) );
-                }
-
-                @Override
-                public RevFilter clone()
+                    @Override
+                    public boolean include( RevWalk walker, RevCommit cmit )
+                        throws StopWalkException, MissingObjectException, IncorrectObjectTypeException, IOException
+                    {
+                        int cmtTime = cmit.getCommitTime();
+    
+                        return ( cmtTime >= ( fromDate.getTime() / 1000 ) ) && ( cmtTime <= ( toDate.getTime() / 1000 ) );
+                    }
+    
+                    @Override
+                    public RevFilter clone()
+                    {
+                        return this;
+                    }
+                } );
+            }
+            else
+            {
+                if ( fromDate != null )
                 {
-                    return this;
+                    walk.setRevFilter( CommitTimeRevFilter.after( fromDate ) );
                 }
-            } );
-        }
-        else
-        {
-            if ( fromDate != null )
-            {
-                walk.setRevFilter( CommitTimeRevFilter.after( fromDate ) );
+                if ( toDate != null )
+                {
+                    walk.setRevFilter( CommitTimeRevFilter.before( toDate ) );
+                }
             }
-            if ( toDate != null )
+    
+            if ( fromRevId != null )
             {
-                walk.setRevFilter( CommitTimeRevFilter.before( toDate ) );
+                RevCommit c = walk.parseCommit( fromRevId );
+                c.add( RevFlag.UNINTERESTING );
+                RevCommit real = walk.parseCommit( c );
+                walk.markUninteresting( real );
             }
-        }
-
-        if ( fromRevId != null )
-        {
-            RevCommit c = walk.parseCommit( fromRevId );
-            c.add( RevFlag.UNINTERESTING );
-            RevCommit real = walk.parseCommit( c );
-            walk.markUninteresting( real );
-        }
-
-        if ( toRevId != null )
-        {
-            RevCommit c = walk.parseCommit( toRevId );
-            c.remove( RevFlag.UNINTERESTING );
-            RevCommit real = walk.parseCommit( c );
-            walk.markStart( real );
-        }
-        else
-        {
-            final ObjectId head = repo.resolve( Constants.HEAD );
-            if ( head == null )
+    
+            if ( toRevId != null )
             {
-                throw new RuntimeException( "Cannot resolve " + Constants.HEAD );
+                RevCommit c = walk.parseCommit( toRevId );
+                c.remove( RevFlag.UNINTERESTING );
+                RevCommit real = walk.parseCommit( c );
+                walk.markStart( real );
             }
-            RevCommit real = walk.parseCommit( head );
-            walk.markStart( real );
-        }
-
-        int n = 0;
-        for ( final RevCommit c : walk )
-        {
-            n++;
-            if ( maxLines != -1 && n > maxLines )
+            else
             {
-                break;
+                final ObjectId head = repo.resolve( Constants.HEAD );
+                if ( head == null )
+                {
+                    throw new RuntimeException( "Cannot resolve " + Constants.HEAD );
+                }
+                RevCommit real = walk.parseCommit( head );
+                walk.markStart( real );
             }
-
-            revs.add( c );
+    
+            int n = 0;
+            for ( final RevCommit c : walk )
+            {
+                n++;
+                if ( maxLines != -1 && n > maxLines )
+                {
+                    break;
+                }
+    
+                revs.add( c );
+            }
+            return revs;
         }
-        return revs;
     }
 
 }
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/diff/JGitDiffCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/diff/JGitDiffCommand.java
index d699a44..5601670 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/diff/JGitDiffCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/diff/JGitDiffCommand.java
@@ -123,15 +123,12 @@
             throw new IllegalArgumentException( name );
         }
         final CanonicalTreeParser p = new CanonicalTreeParser();
-        final ObjectReader or = repo.newObjectReader();
-        try
+        
+        try ( ObjectReader or = repo.newObjectReader();
+              RevWalk revWalk = new RevWalk( repo ) ) 
         {
-            p.reset( or, new RevWalk( repo ).parseTree( id ) );
+            p.reset( or, revWalk.parseTree( id ) );
             return p;
         }
-        finally
-        {
-            or.close();
-        }
     }
 }