You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/02/06 21:05:54 UTC

svn commit: r1241140 - in /maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src: main/java/org/apache/maven/scm/provider/hg/HgUtils.java test/java/org/apache/maven/scm/provider/hg/HgUtilsTest.java

Author: rfscholte
Date: Mon Feb  6 20:05:54 2012
New Revision: 1241140

URL: http://svn.apache.org/viewvc?rev=1241140&view=rev
Log:
Fix SCM-641 for HG: NPE when workingDirectory is null

Added:
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgUtilsTest.java
Modified:
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java?rev=1241140&r1=1241139&r2=1241140&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java Mon Feb  6 20:05:54 2012
@@ -146,16 +146,19 @@ public final class HgUtils
     {
         Commandline cmd = new Commandline();
         cmd.setExecutable( HgCommandConstants.EXEC );
-        cmd.setWorkingDirectory( workingDir.getAbsolutePath() );
         cmd.addArguments( cmdAndArgs );
-
-        if ( !workingDir.exists() )
+        if ( workingDir != null )
         {
-            boolean success = workingDir.mkdirs();
-            if ( !success )
+            cmd.setWorkingDirectory( workingDir.getAbsolutePath() );
+
+            if ( !workingDir.exists() )
             {
-                String msg = "Working directory did not exist" + " and it couldn't be created: " + workingDir;
-                throw new ScmException( msg );
+                boolean success = workingDir.mkdirs();
+                if ( !success )
+                {
+                    String msg = "Working directory did not exist" + " and it couldn't be created: " + workingDir;
+                    throw new ScmException( msg );
+                }
             }
         }
         return cmd;
@@ -195,7 +198,7 @@ public final class HgUtils
         int i = 0;
         for ( Iterator<File> iterator = filesList.iterator(); iterator.hasNext(); i++ )
         {
-            File scmFile = (File) iterator.next();
+            File scmFile = iterator.next();
             String file = scmFile.getPath().replace( '\\', File.separatorChar );
             cmd[i + cmdAndArgs.length] = file;
 

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgUtilsTest.java?rev=1241140&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgUtilsTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgUtilsTest.java Mon Feb  6 20:05:54 2012
@@ -0,0 +1,17 @@
+package org.apache.maven.scm.provider.hg;
+
+import static org.junit.Assert.*;
+import org.codehaus.plexus.util.cli.Commandline;
+import org.junit.Test;
+
+public class HgUtilsTest
+{
+
+    @Test
+    public void testNullWorkingDirectory()
+        throws Exception
+    {
+        Commandline cmd = HgUtils.buildCmd( null, new String[] {} );
+        assertEquals( null, cmd.getWorkingDirectory() );
+    }
+}
\ No newline at end of file