fix - as described in issue 210, re-implemented the function to handle single parameter with empty string, also made the function easier to follow what was intended.

This commit is contained in:
Wayne Steel 2017-03-30 11:04:54 +01:00
parent 25759e86a5
commit a870ff1142

View File

@ -2911,37 +2911,21 @@ public class GeoServerRESTPublisher {
*/ */
private String appendParameters(NameValuePair... params) { private String appendParameters(NameValuePair... params) {
StringBuilder sbUrl = new StringBuilder(); StringBuilder sbUrl = new StringBuilder();
// append parameters if (params != null && params.length > 0) {
if (params != null) { boolean noLongerFirst = false;
final int paramsSize = params.length; for (NameValuePair param : params){
if (paramsSize > 0) { final String name = param.getName();
int i = 0; final String value = param.getValue();
NameValuePair param = params[i]; if (name != null && !name.isEmpty() && value != null && !value.isEmpty()) {
while (param != null && i++ < paramsSize) { // valid parameter to pass
final String name = param.getName(); if(noLongerFirst){
final String value = param.getValue(); // add successive parameters (if any)
// success sbUrl.append("&").append(name).append("=").append(value);
if (name != null && !name.isEmpty() && value != null && !value.isEmpty()) {
sbUrl.append(name).append("=").append(value);
// end cycle
param = null;
} else { } else {
// next value //add the first parameter
param = params[i];
}
}
for (; i < paramsSize; i++) {
param = params[i];
if (param != null) {
final String name = param.getName();
final String value = param.getValue();
sbUrl.append(name).append("=").append(value); sbUrl.append(name).append("=").append(value);
if (name != null && !name.isEmpty() && value != null && !value.isEmpty()) { noLongerFirst = true;
sbUrl.append("&").append(name).append("=").append(value);
}
} }
} }
} }
} }