diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-06-10 23:47:15 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-06-10 23:47:15 +0000 |
commit | 3d9827c51882c2791e265d80e6e8437bd5449b2e (patch) | |
tree | 3eb700f4e6172372cc75ad14b12cf70d48bfba57 /java/sca/modules | |
parent | 9efe0a5b91be393d34e3a7455926c417086acd2f (diff) |
Fix URI double-escaping issue
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@783576 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
3 files changed, 9 insertions, 0 deletions
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());
}
}
|