You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by im...@apache.org on 2013/11/24 14:12:01 UTC
[2/8] git commit: always close the jGit repo after command execution
always close the jGit repo after command execution
Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/598a90ea
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/598a90ea
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/598a90ea
Branch: refs/heads/master
Commit: 598a90ea26cda92b6bbae4c8bf198d7176197d60
Parents: d1f102e
Author: imod <do...@fortysix.ch>
Authored: Mon Nov 18 18:43:22 2013 +0100
Committer: imod <do...@fortysix.ch>
Committed: Mon Nov 18 18:43:22 2013 +0100
----------------------------------------------------------------------
.../provider/git/jgit/command/JGitUtils.java | 12 ++++++++++
.../git/jgit/command/add/JGitAddCommand.java | 7 +++++-
.../jgit/command/blame/JGitBlameCommand.java | 11 ++++++---
.../jgit/command/branch/JGitBranchCommand.java | 17 +++++++++----
.../command/changelog/JGitChangeLogCommand.java | 8 +++++--
.../command/checkin/JGitCheckInCommand.java | 7 +++++-
.../command/checkout/JGitCheckOutCommand.java | 25 +++++++++++---------
.../git/jgit/command/diff/JGitDiffCommand.java | 15 +++++++++---
.../git/jgit/command/list/JGitListCommand.java | 7 +++++-
.../remoteinfo/JGitRemoteInfoCommand.java | 7 +++++-
.../jgit/command/status/JGitStatusCommand.java | 8 ++++++-
.../git/jgit/command/tag/JGitTagCommand.java | 14 +++++++----
12 files changed, 105 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/JGitUtils.java
----------------------------------------------------------------------
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 b253be2..08c3376 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
@@ -87,6 +87,18 @@ public class JGitUtils
}
/**
+ * Closes the repository wrapped by the passed git object
+ * @param git
+ */
+ public static void closeRepo( Git git )
+ {
+ if ( git != null && git.getRepository() != null )
+ {
+ git.getRepository().close();
+ }
+ }
+
+ /**
* Construct a logging ProgressMonitor for all JGit operations.
*
* @param logger
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/add/JGitAddCommand.java
----------------------------------------------------------------------
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/add/JGitAddCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/add/JGitAddCommand.java
index 68e8fa8..b448b62 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/add/JGitAddCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/add/JGitAddCommand.java
@@ -53,9 +53,10 @@ public class JGitAddCommand
{
throw new ScmException( "You must provide at least one file/directory to add (e.g. -Dincludes=...)" );
}
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
+ git = Git.open( fileSet.getBasedir() );
List<ScmFile> addedFiles = JGitUtils.addAllFiles( git, fileSet );
@@ -74,6 +75,10 @@ public class JGitAddCommand
{
throw new ScmException( "JGit add failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/blame/JGitBlameCommand.java
----------------------------------------------------------------------
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/blame/JGitBlameCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/blame/JGitBlameCommand.java
index 1a50ede..043af04 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/blame/JGitBlameCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/blame/JGitBlameCommand.java
@@ -26,6 +26,7 @@ import org.apache.maven.scm.command.blame.BlameLine;
import org.apache.maven.scm.command.blame.BlameScmResult;
import org.apache.maven.scm.provider.ScmProviderRepository;
import org.apache.maven.scm.provider.git.command.GitCommand;
+import org.apache.maven.scm.provider.git.jgit.command.JGitUtils;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.blame.BlameResult;
@@ -43,15 +44,15 @@ public class JGitBlameCommand
{
@Override
- public BlameScmResult executeBlameCommand( ScmProviderRepository repo, ScmFileSet workingDirectory,
- String filename )
+ public BlameScmResult executeBlameCommand( ScmProviderRepository repo, ScmFileSet workingDirectory, String filename )
throws ScmException
{
+ Git git = null;
File basedir = workingDirectory.getBasedir();
try
{
- Git git = Git.open( basedir );
+ git = Git.open( basedir );
BlameResult blameResult = git.blame().setFilePath( filename ).call();
List<BlameLine> lines = new ArrayList<BlameLine>();
@@ -71,6 +72,10 @@ public class JGitBlameCommand
{
throw new ScmException( "JGit blame failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/branch/JGitBranchCommand.java
----------------------------------------------------------------------
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/branch/JGitBranchCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/branch/JGitBranchCommand.java
index 0de81a6..b42afe6 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/branch/JGitBranchCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/branch/JGitBranchCommand.java
@@ -74,9 +74,10 @@ public class JGitBranchCommand
throw new ScmException( "This provider doesn't support branching subsets of a directory" );
}
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
+ git = Git.open( fileSet.getBasedir() );
Ref branchResult = git.branchCreate().setName( branch ).call();
getLogger().info( "created [" + branchResult.getName() + "]" );
@@ -91,13 +92,14 @@ public class JGitBranchCommand
if ( repo.isPushChanges() )
{
getLogger().info( "push branch [" + branch + "] to remote..." );
- JGitUtils.push( getLogger(), git, (GitScmProviderRepository) repo,
- new RefSpec( Constants.R_HEADS + branch ) );
+ JGitUtils.push( getLogger(), git, (GitScmProviderRepository) repo, new RefSpec( Constants.R_HEADS
+ + branch ) );
}
// search for the tagged files
- RevWalk revWalk = new RevWalk( git.getRepository() );
+ final RevWalk revWalk = new RevWalk( git.getRepository() );
RevCommit commit = revWalk.parseCommit( branchResult.getObjectId() );
+ revWalk.release();
final TreeWalk walk = new TreeWalk( git.getRepository() );
walk.reset(); // drop the first empty tree, which we do not need here
@@ -109,6 +111,7 @@ public class JGitBranchCommand
{
files.add( new ScmFile( walk.getPathString(), ScmFileStatus.CHECKED_OUT ) );
}
+ walk.release();
return new BranchScmResult( "JGit branch", files );
@@ -117,11 +120,15 @@ public class JGitBranchCommand
{
throw new ScmException( "JGit branch failed!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
/**
* gets a set of names of the available branches in the given repo
- *
+ *
* @param git the repo to list the branches for
* @return set of short branch names
* @throws GitAPIException
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommand.java
----------------------------------------------------------------------
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/changelog/JGitChangeLogCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommand.java
index 8c3cdce..933255f 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/changelog/JGitChangeLogCommand.java
@@ -81,10 +81,10 @@ public class JGitChangeLogCommand
ScmVersion endVersion )
throws ScmException
{
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
-
+ git = Git.open( fileSet.getBasedir() );
String startRev = startVersion != null ? startVersion.getName() : null;
String endRev = endVersion != null ? endVersion.getName() : null;
@@ -117,6 +117,10 @@ public class JGitChangeLogCommand
{
throw new ScmException( "JGit changelog failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
public List<ChangeEntry> whatchanged( Repository repo, RevSort[] sortings, String fromRev, String toRev,
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
----------------------------------------------------------------------
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/checkin/JGitCheckInCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
index 0e2d5fb..98c0f98 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
@@ -58,10 +58,11 @@ public class JGitCheckInCommand
throws ScmException
{
+ Git git = null;
try
{
File basedir = fileSet.getBasedir();
- Git git = Git.open( basedir );
+ git = Git.open( basedir );
boolean doCommit = false;
@@ -125,6 +126,10 @@ public class JGitCheckInCommand
{
throw new ScmException( "JGit checkin failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkout/JGitCheckOutCommand.java
----------------------------------------------------------------------
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/checkout/JGitCheckOutCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkout/JGitCheckOutCommand.java
index 55697a4..8e29d90 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkout/JGitCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkout/JGitCheckOutCommand.java
@@ -36,7 +36,6 @@ import org.apache.maven.scm.provider.git.jgit.command.remoteinfo.JGitRemoteInfoC
import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository;
import org.codehaus.plexus.util.StringUtils;
import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.internal.storage.file.WindowCache;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ProgressMonitor;
import org.eclipse.jgit.revwalk.RevCommit;
@@ -60,9 +59,8 @@ public class JGitCheckOutCommand
implements GitCommand
{
/**
- * For git, the given repository is a remote one. We have to clone it first
- * if the working directory does not contain a git repo yet, otherwise we
- * have to git-pull it.
+ * For git, the given repository is a remote one. We have to clone it first if the working directory does not
+ * contain a git repo yet, otherwise we have to git-pull it.
* <p/>
* {@inheritDoc}
*/
@@ -78,6 +76,7 @@ public class JGitCheckOutCommand
throw new ScmException( "remote repository must not be the working directory" );
}
+ Git git = null;
try
{
@@ -102,22 +101,20 @@ public class JGitCheckOutCommand
// FIXME only if windauze
WindowCacheConfig cfg = new WindowCacheConfig();
- cfg.setPackedGitMMAP(false);
+ cfg.setPackedGitMMAP( false );
cfg.install();
// no git repo seems to exist, let's clone the original repo
CredentialsProvider credentials = JGitUtils.getCredentials( (GitScmProviderRepository) repo );
getLogger().info( "cloning [" + branch + "] to " + fileSet.getBasedir() );
- Git.cloneRepository().setURI( repository.getFetchUrl() ).setCredentialsProvider(
- credentials ).setBranch( branch ).setDirectory( fileSet.getBasedir() ).setProgressMonitor(
- monitor ).call();
+ Git.cloneRepository().setURI( repository.getFetchUrl() ).setCredentialsProvider( credentials ).setBranch( branch ).setDirectory( fileSet.getBasedir() ).setProgressMonitor( monitor ).call();
}
JGitRemoteInfoCommand remoteInfoCommand = new JGitRemoteInfoCommand();
remoteInfoCommand.setLogger( getLogger() );
RemoteInfoScmResult result = remoteInfoCommand.executeRemoteInfoCommand( repository, fileSet, null );
- Git git = Git.open( fileSet.getBasedir() );
+ git = Git.open( fileSet.getBasedir() );
if ( fileSet.getBasedir().exists() && new File( fileSet.getBasedir(), ".git" ).exists()
&& result.getBranches().size() > 0 )
{
@@ -156,12 +153,13 @@ public class JGitCheckOutCommand
else
{
getLogger().info( "checkout remote branch [" + branch + "] at " + fileSet.getBasedir() );
- git.checkout().setName( branch ).setCreateBranch( true ).setStartPoint(
- Constants.DEFAULT_REMOTE_NAME + "/" + branch ).call();
+ git.checkout().setName( branch ).setCreateBranch( true ).setStartPoint( Constants.DEFAULT_REMOTE_NAME
+ + "/" + branch ).call();
}
RevWalk revWalk = new RevWalk( git.getRepository() );
RevCommit commit = revWalk.parseCommit( git.getRepository().resolve( Constants.HEAD ) );
+ revWalk.release();
final TreeWalk walk = new TreeWalk( git.getRepository() );
walk.reset(); // drop the first empty tree, which we do not need here
@@ -173,6 +171,7 @@ public class JGitCheckOutCommand
{
listedFiles.add( new ScmFile( walk.getPathString(), ScmFileStatus.CHECKED_OUT ) );
}
+ walk.release();
getLogger().debug( "current branch: " + git.getRepository().getBranch() );
@@ -182,6 +181,10 @@ public class JGitCheckOutCommand
{
throw new ScmException( "JGit checkout failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/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
----------------------------------------------------------------------
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 74e13cc..11a3bdd 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
@@ -27,6 +27,7 @@ import org.apache.maven.scm.command.diff.DiffScmResult;
import org.apache.maven.scm.provider.ScmProviderRepository;
import org.apache.maven.scm.provider.git.command.GitCommand;
import org.apache.maven.scm.provider.git.command.diff.GitDiffConsumer;
+import org.apache.maven.scm.provider.git.jgit.command.JGitUtils;
import org.codehaus.plexus.util.StringUtils;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
@@ -56,16 +57,22 @@ public class JGitDiffCommand
throws ScmException
{
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
-
- return callDiff( git, startRevision, endRevision );
+ git = Git.open( fileSet.getBasedir() );
+ DiffScmResult diff = callDiff( git, startRevision, endRevision );
+ git.getRepository().close();
+ return diff;
}
catch ( Exception e )
{
throw new ScmException( "JGit diff failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
public DiffScmResult callDiff( Git git, ScmVersion startRevision, ScmVersion endRevision )
@@ -95,6 +102,8 @@ public class JGitDiffCommand
GitDiffConsumer consumer = new GitDiffConsumer( getLogger(), null );
String fullDiff = out.toString();
+ out.close();
+
String[] lines = fullDiff.split( System.getProperty( "line.separator" ) );
for ( String aLine : lines )
{
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/list/JGitListCommand.java
----------------------------------------------------------------------
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/list/JGitListCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/list/JGitListCommand.java
index 4999535..054f9bc 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/list/JGitListCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/list/JGitListCommand.java
@@ -53,9 +53,10 @@ public class JGitListCommand
throws ScmException
{
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
+ git = Git.open( fileSet.getBasedir() );
CredentialsProvider credentials =
JGitUtils.prepareSession( getLogger(), git, (GitScmProviderRepository) repo );
@@ -73,5 +74,9 @@ public class JGitListCommand
{
throw new ScmException( "JGit ls-remote failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/remoteinfo/JGitRemoteInfoCommand.java
----------------------------------------------------------------------
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/remoteinfo/JGitRemoteInfoCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/remoteinfo/JGitRemoteInfoCommand.java
index 3c5fd5b..36c90a5 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/remoteinfo/JGitRemoteInfoCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/remoteinfo/JGitRemoteInfoCommand.java
@@ -54,9 +54,10 @@ public class JGitRemoteInfoCommand
{
GitScmProviderRepository repo = (GitScmProviderRepository) repository;
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
+ git = Git.open( fileSet.getBasedir() );
CredentialsProvider credentials = JGitUtils.getCredentials( repo );
LsRemoteCommand lsCommand =
@@ -82,5 +83,9 @@ public class JGitRemoteInfoCommand
{
throw new ScmException( "JGit remoteinfo failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/status/JGitStatusCommand.java
----------------------------------------------------------------------
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/status/JGitStatusCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/status/JGitStatusCommand.java
index 377ae09..056843e 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/status/JGitStatusCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/status/JGitStatusCommand.java
@@ -27,6 +27,7 @@ import org.apache.maven.scm.command.status.AbstractStatusCommand;
import org.apache.maven.scm.command.status.StatusScmResult;
import org.apache.maven.scm.provider.ScmProviderRepository;
import org.apache.maven.scm.provider.git.command.GitCommand;
+import org.apache.maven.scm.provider.git.jgit.command.JGitUtils;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.Status;
@@ -49,9 +50,10 @@ public class JGitStatusCommand
protected StatusScmResult executeStatusCommand( ScmProviderRepository repo, ScmFileSet fileSet )
throws ScmException
{
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
+ git = Git.open( fileSet.getBasedir() );
Status status = git.status().call();
List<ScmFile> changedFiles = getFileStati( status );
@@ -61,6 +63,10 @@ public class JGitStatusCommand
{
throw new ScmException( "JGit status failure!", e );
}
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
private List<ScmFile> getFileStati( Status status )
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/598a90ea/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java
----------------------------------------------------------------------
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/tag/JGitTagCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java
index 15b76f7..a66992a 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/tag/JGitTagCommand.java
@@ -78,9 +78,10 @@ public class JGitTagCommand
String escapedTagName = tag.trim().replace( ' ', '_' );
+ Git git = null;
try
{
- Git git = Git.open( fileSet.getBasedir() );
+ git = Git.open( fileSet.getBasedir() );
// tag the revision
String tagMessage = scmTagParameters.getMessage();
@@ -89,13 +90,14 @@ public class JGitTagCommand
if ( repo.isPushChanges() )
{
getLogger().info( "push tag [" + escapedTagName + "] to remote..." );
- JGitUtils.push( getLogger(), git, (GitScmProviderRepository) repo,
- new RefSpec( Constants.R_TAGS + escapedTagName ) );
+ JGitUtils.push( getLogger(), git, (GitScmProviderRepository) repo, new RefSpec( Constants.R_TAGS
+ + escapedTagName ) );
}
// search for the tagged files
RevWalk revWalk = new RevWalk( git.getRepository() );
RevCommit commit = revWalk.parseCommit( tagRef.getObjectId() );
+ revWalk.release();
final TreeWalk walk = new TreeWalk( git.getRepository() );
walk.reset(); // drop the first empty tree, which we do not need here
@@ -107,6 +109,7 @@ public class JGitTagCommand
{
taggedFiles.add( new ScmFile( walk.getPathString(), ScmFileStatus.CHECKED_OUT ) );
}
+ walk.release();
return new TagScmResult( "JGit tag", taggedFiles );
}
@@ -114,7 +117,10 @@ public class JGitTagCommand
{
throw new ScmException( "JGit tag failure!", e );
}
-
+ finally
+ {
+ JGitUtils.closeRepo( git );
+ }
}
}