Index: C:/powerlogic/jcompany51/workspace/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenProjectAction.java =================================================================== --- C:/powerlogic/jcompany51/workspace/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenProjectAction.java (revision 718648) +++ C:/powerlogic/jcompany51/workspace/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenProjectAction.java (working copy) @@ -21,8 +21,10 @@ import java.io.File; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -110,10 +112,18 @@ URL url = new URL( pomUrl ); if ( pomUrl.startsWith( "http" ) && !StringUtils.isEmpty( scmUsername ) ) { + String encoding = System.getProperty("file.encoding"); + // CONTINUUM-1981 + String encodedUsername = URLEncoder.encode(scmUsername, encoding); + String encodedPassword = URLEncoder.encode(scmPassword, encoding); + StringBuffer urlBuffer = new StringBuffer(); urlBuffer.append( url.getProtocol() ).append( "://" ); - urlBuffer.append( scmUsername ).append( ':' ).append( scmPassword ).append( '@' ).append( - url.getHost() ); + + urlBuffer.append( encodedUsername ).append( ':' ).append( encodedPassword ); + + urlBuffer.append( '@' ).append( url.getHost() ); + if ( url.getPort() != -1 ) { urlBuffer.append( ":" ).append( url.getPort() ); @@ -131,6 +141,11 @@ { addActionError( "add.project.unknown.error" ); return doDefault(); + } + catch ( UnsupportedEncodingException e ) + { + addActionError( "add.project.unknown.error" ); + return doDefault(); } } else