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\""