diff options
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());
}
}
|