Author: lindner
Date: Mon Nov 16 21:10:11 2009
New Revision: 880959

URL: http://svn.apache.org/viewvc?rev=880959&view=rev
Log:
SHINDIG-1090 | one step closer to fixing this issue

Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/PipelinedData.java
    
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/PipelinedDataTest.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/PipelinedData.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/PipelinedData.java?rev=880959&r1=880958&r2=880959&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/PipelinedData.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/PipelinedData.java
 Mon Nov 16 21:10:11 2009
@@ -468,7 +468,13 @@
         throws ELException {
       String hrefString = String.valueOf(expressions.parse(href, String.class)
           .getValue(context));
-      final Uri evaluatedHref = base.resolve(Uri.parse(hrefString));
+      final Uri evaluatedHref;
+
+      try {
+        evaluatedHref = base.resolve(Uri.parse(hrefString));
+      } catch (IllegalArgumentException e) {
+        throw new ELException("bad Uri '" + hrefString + "' - " + 
e.getMessage(), e);
+      }
 
       final Map<String, String> evaluatedAttributes = Maps.newHashMap();
       for (Map.Entry<String, String> attr : attributes.entrySet()) {

Modified: 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/PipelinedDataTest.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/PipelinedDataTest.java?rev=880959&r1=880958&r2=880959&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/PipelinedDataTest.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/PipelinedDataTest.java
 Mon Nov 16 21:10:11 2009
@@ -343,6 +343,24 @@
   }
 
   @Test
+  public void badHrefTest() throws Exception {
+    // unparseable url escape
+    String xml = "<Content><HttpRequest xmlns=\"" + 
PipelinedData.OPENSOCIAL_NAMESPACE + "\" "
+        + " key=\"key\""
+        + " href=\"/example.html%\""
+        + "/></Content>";
+
+    boolean foundException = false;
+    try {
+      PipelinedData pipelinedData = new PipelinedData(XmlUtil.parse(xml), 
GADGET_URI);
+      PipelinedData.Batch batch = pipelinedData.getBatch(expressions, 
elResolver);
+    } catch (RuntimeException e) {
+      foundException = true;
+    }
+    assertTrue("found RuntimeException (for now) see SHINDIG-1090", 
foundException);
+  }
+
+  @Test
   public void httpRequestDefaultsSigned() throws Exception {
     String xml = "<Content><HttpRequest xmlns=\"" + 
PipelinedData.OPENSOCIAL_NAMESPACE + "\" "
         + " key=\"key\""


Reply via email to