Author: ltheussl
Date: Thu Mar 10 14:47:39 2011
New Revision: 1080239

URL: http://svn.apache.org/viewvc?rev=1080239&view=rev
Log:
for backward compatibility: ignore bad hrefs

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
    
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java?rev=1080239&r1=1080238&r2=1080239&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
 Thu Mar 10 14:47:39 2011
@@ -406,9 +406,17 @@ public class DefaultDecorationModelInher
             return link;
         }
 
-        final URIPathDescriptor path = new URIPathDescriptor( baseUri, link );
+        // this shouldn't be necessary, just to swallow mal-formed hrefs
+        try
+        {
+            final URIPathDescriptor path = new URIPathDescriptor( baseUri, 
link );
 
-        return path.relativizeLink().toString();
+            return path.relativizeLink().toString();
+        }
+        catch ( IllegalArgumentException e )
+        {
+            return link;
+        }
     }
 
     /**

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java?rev=1080239&r1=1080238&r2=1080239&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
 Thu Mar 10 14:47:39 2011
@@ -595,6 +595,17 @@ public class DecorationModelInheritenceA
         assertEquals( "Modified parent!", new DecorationModel(), parent );
     }
 
+    public void testBadHref()
+    {
+        final DecorationModel model = new DecorationModel();
+        model.setBody( new Body() );
+        model.getBody().addBreadcrumb( createLinkItem( "Foo", 
"http://foo.apache.org/${property}"; ) );
+        assembler.resolvePaths( model, "http://foo.apache.org"; );
+        assertEquals( "Check size", 1, model.getBody().getBreadcrumbs().size() 
);
+        assertEquals( "Check item", createLinkItem( "Foo", 
"http://foo.apache.org/${property}"; ),
+            model.getBody().getBreadcrumbs().get( 0 ) );
+    }
+
     public void testBreadcrumbWithoutHref()
     {
         DecorationModel model = new DecorationModel();


Reply via email to