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:02 UTC

[3/8] git commit: clean memory on windows

clean memory on windows


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

Branch: refs/heads/master
Commit: 3122ea5515c646c6e512391efba5a90c1d123936
Parents: 598a90e
Author: imod <do...@fortysix.ch>
Authored: Mon Nov 18 20:22:06 2013 +0100
Committer: imod <do...@fortysix.ch>
Committed: Mon Nov 18 20:22:06 2013 +0100

----------------------------------------------------------------------
 .../scm/provider/git/jgit/command/JGitUtils.java  | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/3122ea55/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 08c3376..3e7e273 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
@@ -80,6 +80,16 @@ import java.util.Set;
  */
 public class JGitUtils
 {
+    
+    private static boolean IS_WINDOWS = false;
+    static
+    {
+        String osName = System.getProperty( "os.name" );
+        if ( osName.indexOf( "windows" ) != -1 )
+        {
+             IS_WINDOWS = true;
+        }
+    }
 
     private JGitUtils()
     {
@@ -95,6 +105,14 @@ public class JGitUtils
         if ( git != null && git.getRepository() != null )
         {
             git.getRepository().close();
+            if ( IS_WINDOWS )
+            {
+                // Since memory mapping is controlled by the GC we need to
+                // tell it this is a good time to clean up and unlock
+                // memory mapped files.
+                // see also org.eclipse.jgit.junit.LocalDiskRepositoryTestCase
+                System.gc();
+            }
         }
     }