From 29ccf295c1e259acbfe633c8e361b4b782620d1d Mon Sep 17 00:00:00 2001 From: s13o Date: Wed, 25 Mar 2015 01:11:02 +0200 Subject: [PATCH 1/2] fix incorrect resolving of branch name from outgoing changes --- .../apache/maven/scm/provider/hg/HgUtils.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java index bfcf72cd4..36ef6c99d 100644 --- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java +++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java @@ -48,6 +48,8 @@ public final class HgUtils { + public static final String DEFAULT = "default"; + private HgUtils() { // no op @@ -78,7 +80,7 @@ private HgUtils() List outgoingExitCodes = new ArrayList( 2 ); outgoingExitCodes.add( Integer.valueOf( 0 ) ); //There are changes outgoingExitCodes.add( Integer.valueOf( 1 ) ); //No changes - EXIT_CODE_MAP.put( HgCommandConstants.OUTGOING_CMD, outgoingExitCodes ); + EXIT_CODE_MAP.put( HgCommandConstants.OUTGOING_CMD, outgoingExitCodes ); } public static ScmResult execute( HgConsumer consumer, ScmLogger logger, File workingDir, String[] cmdAndArgs ) @@ -301,7 +303,7 @@ String getBranchName() * @return true if a different outgoing branch was found * @throws ScmException on outgoing command error */ - public static boolean differentOutgoingBranchFound( ScmLogger logger, File workingDir, String workingbranchName ) + public static boolean differentOutgoingBranchFound( ScmLogger logger, File workingDir,String workingbranchName ) throws ScmException { String[] outCmd = new String[]{ HgCommandConstants.OUTGOING_CMD }; @@ -312,11 +314,10 @@ public static boolean differentOutgoingBranchFound( ScmLogger logger, File worki { for ( HgChangeSet set : changes ) { - if ( set.getBranch() != null ) - { - logger.warn( "A different branch than " + workingbranchName - + " was found in outgoing changes, branch name was " + set.getBranch() - + ". Only local branch named " + workingbranchName + " will be pushed." ); + if (!getBranchName(workingbranchName).equals(getBranchName(set.getBranch()))) { + logger.warn( "A different branch than " + getBranchName(workingbranchName) + + " was found in outgoing changes, branch name was " + getBranchName(set.getBranch()) + + ". Only local branch named " + getBranchName(workingbranchName) + " will be pushed." ); return true; } } @@ -324,6 +325,10 @@ public static boolean differentOutgoingBranchFound( ScmLogger logger, File worki return false; } + private static String getBranchName(String branch) { + return branch == null ? DEFAULT : branch; + } + public static String maskPassword( Commandline cl ) { String clString = cl.toString(); From 18ac8ca0f4dad979c9312de010d45edd231fb450 Mon Sep 17 00:00:00 2001 From: s13o Date: Fri, 10 Apr 2015 01:04:03 +0300 Subject: [PATCH 2/2] fix MPE in HgUtils.differentOutgoingBranchFound --- .../main/java/org/apache/maven/scm/provider/hg/HgUtils.java | 2 +- .../scm/provider/hg/command/inventory/HgOutgoingConsumer.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java index 36ef6c99d..24ba5ee61 100644 --- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java +++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgUtils.java @@ -297,7 +297,7 @@ String getBranchName() * Method users should not stop the push on a negative return, instead, they should * hg push -r(branch being released) * - * @param logger the logger + * @param logger the logger31 * @param workingDir the working dir * @param workingbranchName the working branch name * @return true if a different outgoing branch was found diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgOutgoingConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgOutgoingConsumer.java index 32d24bba5..34c39f2ca 100644 --- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgOutgoingConsumer.java +++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/inventory/HgOutgoingConsumer.java @@ -23,6 +23,7 @@ import org.apache.maven.scm.provider.hg.command.HgConsumer; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -34,7 +35,7 @@ public class HgOutgoingConsumer extends HgConsumer { - private List changes = new ArrayList(); + private List changes = Collections.synchronizedList(new ArrayList()); private static final String BRANCH = "branch";