From 3d9827c51882c2791e265d80e6e8437bd5449b2e Mon Sep 17 00:00:00 2001 From: rfeng Date: Wed, 10 Jun 2009 23:47:15 +0000 Subject: Fix URI double-escaping issue git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@783576 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeUtil.java | 4 ++++ .../src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java | 4 ++++ .../test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java | 1 + 3 files changed, 9 insertions(+) diff --git a/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeUtil.java b/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeUtil.java index b944e01095..fccd30d8ff 100644 --- a/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeUtil.java +++ b/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeUtil.java @@ -66,6 +66,10 @@ public class NodeUtil { * @return */ static URI createURI(String uri) { + if (uri.indexOf('%') != -1) { + // Avoid double-escaping + return URI.create(uri); + } int index = uri.indexOf(':'); String scheme = null; String ssp = uri; diff --git a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java index 91ebe3a9be..8bf3ea8b04 100644 --- a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java +++ b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java @@ -70,6 +70,10 @@ public class NodeUtil { if (uri == null) { return null; } + if (uri.indexOf('%') != -1) { + // Avoid double-escaping + return URI.create(uri); + } int index = uri.indexOf(':'); String scheme = null; String ssp = uri; diff --git a/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java b/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java index 41898b6448..55e44c04ba 100644 --- a/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java +++ b/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java @@ -33,5 +33,6 @@ public class NodeUtilTestCase { Assert.assertEquals("/a%20b", NodeUtil.createURI("/a b").toString()); Assert.assertEquals("file:/a/b", NodeUtil.createURI("file:/a/b").toString()); Assert.assertEquals("file:/a%20b", NodeUtil.createURI("file:/a b").toString()); + Assert.assertEquals("file:/a%20b", NodeUtil.createURI("file:/a%20b").toString()); } } -- cgit v1.2.3