Skip to content

Commit 083e851

Browse files
committed
修正url中参数为空时导致的异常。
1 parent 829f514 commit 083e851

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

core/src/main/java/com/bj58/argo/servlet/ArgoRequest.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.google.common.base.Charsets;
1111
import com.google.common.base.Function;
1212
import com.google.common.collect.*;
13+
import com.google.common.collect.ImmutableMap.Builder;
1314
import com.google.common.io.CharStreams;
1415

1516
import javax.servlet.MultipartConfigElement;
@@ -159,11 +160,14 @@ public Map<String, Collection<String>> queryStrings() {
159160
return queryStrings;
160161

161162
MultiMap<String> params = new MultiMap<String>();
162-
163-
UrlEncoded.decodeTo(super.getQueryString(), params, "UTF-8", maxFormKeys);
164-
165-
queryStrings = NullToEmptyMap.safeWrapper(params, getSafeParameter());
166-
163+
String originQueryString = super.getQueryString();
164+
165+
if(queryStrings != null){
166+
167+
UrlEncoded.decodeTo(originQueryString, params, "UTF-8", maxFormKeys);
168+
169+
queryStrings = NullToEmptyMap.safeWrapper(params, getSafeParameter());
170+
}
167171
return queryStrings;
168172

169173
}
@@ -250,11 +254,16 @@ private void parsePostUrlEncoded() throws IOException {
250254
UrlEncoded.decodeTo(super.getInputStream(), params, "UTF-8", maxFormContentSize, maxFormKeys);
251255

252256
forms = NullToEmptyMap.safeWrapper(params, getSafeParameter());
253-
254-
this.params = ImmutableMap.<String, Collection<String>>builder()
255-
.putAll(queryStrings)
256-
.putAll(forms)
257-
.build();
257+
258+
Builder<String, Collection<String>> builder = ImmutableMap.<String, Collection<String>>builder();
259+
260+
if(queryStrings != null)
261+
builder.putAll(queryStrings);
262+
263+
if(forms != null)
264+
builder.putAll(forms);
265+
266+
this.params = builder.build();
258267

259268
}
260269

0 commit comments

Comments
 (0)