Repository: maven
Updated Branches:
  refs/heads/master 508d97ec8 -> f684761de


Fix for urls being empty in the POM and causing an out of bounds exception


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

Branch: refs/heads/master
Commit: f684761dee739b4ec8a7e6db5a0a6a0b809e66c9
Parents: 508d97e
Author: Jason van Zyl <ja...@tesla.io>
Authored: Thu Oct 29 18:33:59 2015 -0700
Committer: Jason van Zyl <ja...@tesla.io>
Committed: Thu Oct 29 18:33:59 2015 -0700

----------------------------------------------------------------------
 .../DefaultInheritanceAssembler.java            |  2 +-
 .../DefaultInheritanceAssemblerTest.java        |  8 +++-
 .../resources/poms/inheritance/empty-child.xml  | 31 ++++++++++++++++
 .../poms/inheritance/empty-expected.xml         | 39 ++++++++++++++++++++
 .../resources/poms/inheritance/empty-parent.xml | 37 +++++++++++++++++++
 5 files changed, 115 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/f684761d/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
index 5ffcf6d..fd1c07f 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
@@ -161,7 +161,7 @@ public class DefaultInheritanceAssembler
 
         private void concatPath( StringBuilder url, String path )
         {
-            if ( path.length() > 0 )
+            if ( url.length() > 0 && path.length() > 0 )
             {
                 boolean initialUrlEndsWithSlash = url.charAt( url.length() - 1 
) == '/';
                 boolean pathStartsWithSlash = path.charAt( 0 ) ==  '/';

http://git-wip-us.apache.org/repos/asf/maven/blob/f684761d/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
 
b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
index ae45283..60f860f 100644
--- 
a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
+++ 
b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
@@ -137,6 +137,12 @@ public class DefaultInheritanceAssemblerTest
         }
     }
 
+    public void testWithEmptyUrl() 
+        throws Exception
+    {
+               testInheritance( "empty", false );
+    }
+    
     public void testInheritance( String baseName )
         throws Exception
     {
@@ -177,5 +183,5 @@ public class DefaultInheritanceAssemblerTest
             XMLUnit.setIgnoreWhitespace( true );
             XMLAssert.assertXMLEqual( control, test );
         }
-    }
+    }    
 }

http://git-wip-us.apache.org/repos/asf/maven/blob/f684761d/maven-model-builder/src/test/resources/poms/inheritance/empty-child.xml
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/test/resources/poms/inheritance/empty-child.xml 
b/maven-model-builder/src/test/resources/poms/inheritance/empty-child.xml
new file mode 100644
index 0000000..88ccde4
--- /dev/null
+++ b/maven-model-builder/src/test/resources/poms/inheritance/empty-child.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>inheritance</groupId>
+    <artifactId>empty</artifactId>
+    <version>1</version>
+  </parent>
+  <artifactId>child</artifactId>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/f684761d/maven-model-builder/src/test/resources/poms/inheritance/empty-expected.xml
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/test/resources/poms/inheritance/empty-expected.xml 
b/maven-model-builder/src/test/resources/poms/inheritance/empty-expected.xml
new file mode 100644
index 0000000..eac914a
--- /dev/null
+++ b/maven-model-builder/src/test/resources/poms/inheritance/empty-expected.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>inheritance</groupId>
+    <artifactId>empty</artifactId>
+    <version>1</version>
+  </parent>
+  <groupId>inheritance</groupId>  
+  <artifactId>child</artifactId>
+  <version>1</version>
+  <url></url>
+  <scm>
+    <connection>scm:my-scm:http://domain.org/base/child</connection>
+    
<developerConnection>scm:my-scm:https://domain.org/base/child/</developerConnection>
+    <url></url>
+  </scm>  
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven/blob/f684761d/maven-model-builder/src/test/resources/poms/inheritance/empty-parent.xml
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/test/resources/poms/inheritance/empty-parent.xml 
b/maven-model-builder/src/test/resources/poms/inheritance/empty-parent.xml
new file mode 100644
index 0000000..8e94403
--- /dev/null
+++ b/maven-model-builder/src/test/resources/poms/inheritance/empty-parent.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>inheritance</groupId>
+  <artifactId>empty</artifactId>
+  <version>1</version>
+  <modules>
+    <module>child</module>
+  </modules>
+  <url></url>
+  <scm>
+    <connection>scm:my-scm:http://domain.org/base</connection>
+    
<developerConnection>scm:my-scm:https://domain.org/base/</developerConnection>
+    <url></url>
+  </scm>
+</project>
\ No newline at end of file

Reply via email to