changed error to warn if tag is not present at rollback; fixed typos
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveScmTagPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveScmTagPhase.java
index 02f0870..cf41a9d 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveScmTagPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveScmTagPhase.java
@@ -110,19 +110,21 @@
                     "RemoveScmTagPhase :: scmUntagParameters tagName " + tagName );
                 getLogger().debug(
                     "RemoveScmTagPhase :: scmUntagParameters message " + message );
-                getLogger().debug( "ScmTagPhase :: fileSet  " + fileSet );
+                getLogger().debug(
+                    "RemoveScmTagPhase :: fileSet  " + fileSet );
             }
             untagScmResult = provider.untag( repository, fileSet, commandParameters );
         }
         catch ( ScmException e )
         {
-            throw new ReleaseExecutionException( "An error is occurred in the remove tag process: "
+            throw new ReleaseExecutionException( "An error has occurred in the remove tag process: "
                 + e.getMessage(), e );
         }
 
         if ( !untagScmResult.isSuccess() )
         {
-            throw new ReleaseScmCommandException( "Unable to remove tag ", untagScmResult );
+            getLogger().warn( String.format( "Unable to remove tag%nProvider message: %s%nCommand output: %s",
+                    untagScmResult.getProviderMessage(), untagScmResult.getCommandOutput() ) );
         }
 
         releaseResult.setResultCode( ReleaseResult.SUCCESS );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveScmTagPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveScmTagPhaseTest.java
index b18a66b..3633e3a 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveScmTagPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveScmTagPhaseTest.java
@@ -36,6 +36,7 @@
 import org.apache.maven.shared.release.stubs.ScmManagerStub;

 import org.apache.maven.shared.release.util.ReleaseUtil;

 import org.junit.Assert;

+import org.junit.Ignore;

 import org.junit.Rule;

 import org.junit.Test;

 import org.junit.rules.ExpectedException;

@@ -72,7 +73,7 @@
         builder.setPomFileName( rootProject.getFile().getName() );

         ScmFileSet fileSet = new ScmFileSet( rootProject.getFile().getParentFile() );

 

-        // mock, only real mather is the file set

+        // mock, only real matcher is the file set

         ScmProvider scmProviderMock = Mockito.mock( ScmProvider.class );

         Mockito.when( scmProviderMock.untag( Matchers.isA( ScmRepository.class ),

                 Matchers.argThat( new IsScmFileSetEquals( fileSet ) ),

@@ -104,7 +105,7 @@
         builder.setPomFileName( rootProject.getFile().getName() );

         ScmFileSet fileSet = new ScmFileSet( rootProject.getFile().getParentFile() );

 

-        // mock, only real mather is the file set

+        // mock, only real matcher is the file set

         ScmProvider scmProviderMock = Mockito.mock( ScmProvider.class );

         Mockito.when( scmProviderMock.untag( Matchers.isA( ScmRepository.class ),

                 Matchers.argThat( new IsScmFileSetEquals( fileSet ) ),

@@ -126,6 +127,7 @@
     public ExpectedException exceptionRule = ExpectedException.none();

 

     @Test

+    @Ignore( "We changed the behaviour to warning instead of error." )

     public void testExecuteError() throws Exception

     {

 

@@ -139,7 +141,7 @@
         builder.setPomFileName( rootProject.getFile().getName() );

         ScmFileSet fileSet = new ScmFileSet( rootProject.getFile().getParentFile() );

 

-        // mock, only real mather is the file set

+        // mock, only real matcher is the file set

         ScmProvider scmProviderMock = Mockito.mock( ScmProvider.class );

         Mockito.when( scmProviderMock.untag( Matchers.isA( ScmRepository.class ),

                 Matchers.argThat( new IsScmFileSetEquals( fileSet ) ),

@@ -160,6 +162,39 @@
     }

 

     @Test

+    public void testExecuteNoError() throws Exception

+    {

+

+        // prepare

+        ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();

+        builder.setScmReleaseLabel( "release-label" );

+        builder.setScmSourceUrl( "scm-url" );

+        List<MavenProject> reactorProjects = createReactorProjects();

+        MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );

+        builder.setWorkingDirectory( getPath( rootProject.getFile().getParentFile() ) );

+        builder.setPomFileName( rootProject.getFile().getName() );

+        ScmFileSet fileSet = new ScmFileSet( rootProject.getFile().getParentFile() );

+

+        // mock, only real matcher is the file set

+        ScmProvider scmProviderMock = Mockito.mock( ScmProvider.class );

+        Mockito.when( scmProviderMock.untag( Matchers.isA( ScmRepository.class ),

+                Matchers.argThat( new IsScmFileSetEquals( fileSet ) ),

+                Matchers.isA( CommandParameters.class ) ) )

+                .thenReturn( new UntagScmResult( "command-line", "provider-message", "command-output", false ) );

+        ScmManagerStub stub = ( ScmManagerStub ) lookup( ScmManager.class );

+        stub.setScmProvider( scmProviderMock );

+

+        // execute

+        ReleaseResult actual = phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ),

+                new DefaultReleaseEnvironment(), reactorProjects );

+

+        // verify

+        Assert.assertEquals( 0, actual.getResultCode() );

+

+

+    }

+

+    @Test

     public void testSimulateOutput() throws Exception

     {