You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/06/21 02:32:43 UTC
[dubbo] branch master updated: improve the code of
URLStrParser.java (#8085)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new c8cefee improve the code of URLStrParser.java (#8085)
c8cefee is described below
commit c8cefee04f82199646fe79b8b401d489d27d0e3b
Author: zhox <41...@users.noreply.github.com>
AuthorDate: Mon Jun 21 10:32:34 2021 +0800
improve the code of URLStrParser.java (#8085)
---
.../src/main/java/org/apache/dubbo/common/URL.java | 2 +-
.../java/org/apache/dubbo/common/URLStrParser.java | 36 ++++++++--------------
2 files changed, 13 insertions(+), 25 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
index 7b92f59..a2b4762 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
@@ -248,7 +248,7 @@ class URL implements Serializable {
Map<String, String> parameters = null;
int i = url.indexOf('?'); // separator between body and parameters
if (i >= 0) {
- String[] parts = url.substring(i + 1).split("&");
+ String[] parts = url.substring(i + 1).split("[&;]");
parameters = new HashMap<>();
for (String part : parts) {
part = part.trim();
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/URLStrParser.java b/dubbo-common/src/main/java/org/apache/dubbo/common/URLStrParser.java
index 06db68e..1a17d9f 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/URLStrParser.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URLStrParser.java
@@ -224,32 +224,20 @@ public final class URLStrParser {
valueStart = valueEnd + 1;
}
+ String name;
+ String value;
if (isEncoded) {
- String name = decodeComponent(str, nameStart, valueStart - 3, false, tempBuf);
- String value = decodeComponent(str, valueStart, valueEnd, false, tempBuf);
- if (valueStart == valueEnd) {
- value = name;
- } else {
- value = decodeComponent(str, valueStart, valueEnd, false, tempBuf);
- }
- params.put(name, value);
- // compatible with lower versions registering "default." keys
- if (name.startsWith(DEFAULT_KEY_PREFIX)) {
- params.putIfAbsent(name.substring(DEFAULT_KEY_PREFIX.length()), value);
- }
+ name = decodeComponent(str, nameStart, valueStart - 3, false, tempBuf);
+ value = valueStart == valueEnd ? name : decodeComponent(str, valueStart, valueEnd, false, tempBuf);
} else {
- String name = str.substring(nameStart, valueStart - 1);
- String value = str.substring(valueStart, valueEnd);
- if (valueStart == valueEnd) {
- value = name;
- } else {
- value = str.substring(valueStart, valueEnd);
- }
- params.put(name, value);
- // compatible with lower versions registering "default." keys
- if (name.startsWith(DEFAULT_KEY_PREFIX)) {
- params.putIfAbsent(name.substring(DEFAULT_KEY_PREFIX.length()), value);
- }
+ name = str.substring(nameStart, valueStart - 1);
+ value = valueStart == valueEnd ? name : str.substring(valueStart, valueEnd);
+ }
+
+ params.put(name, value);
+ // compatible with lower versions registering "default." keys
+ if (name.startsWith(DEFAULT_KEY_PREFIX)) {
+ params.putIfAbsent(name.substring(DEFAULT_KEY_PREFIX.length()), value);
}
return true;
}