Support null query param values in HtmlUnitRequestBuilder

Prior to this commit, HtmlUnitRequestBuilder would incorrectly attempt
to decode null values for query parameters (i.e., query parameters such
as 'error' in 'http://example.com/login?error') which resulted in a
NullPointerException since URLDecoder.decode() does not support null
values.

This commit fixes this issue by ensuring that HtmlUnitRequestBuilder
only attempts to decode non-null query parameter values.

Issue: SPR-13524
This commit is contained in:
Sam Brannen
2015-09-30 21:48:05 +02:00
parent d5b4685391
commit 283fc94572
2 changed files with 114 additions and 17 deletions

View File

@@ -362,7 +362,10 @@ final class HtmlUnitRequestBuilder implements RequestBuilder, Mergeable {
String name = values.getKey();
for (String value : values.getValue()) {
try {
request.addParameter(name, URLDecoder.decode(value, "UTF-8"));
if (value != null) {
value = URLDecoder.decode(value, "UTF-8");
}
request.addParameter(name, value);
}
catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);