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) {
int i = 0;
NameValuePair param = params[i];
while (param != null && i++ < paramsSize) {
final String name = param.getName(); final String name = param.getName();
final String value = param.getValue(); final String value = param.getValue();
// success
if (name != null && !name.isEmpty() && value != null && !value.isEmpty()) {
sbUrl.append(name).append("=").append(value);
// end cycle
param = null;
} else {
// next value
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);
if (name != null && !name.isEmpty() && value != null && !value.isEmpty()) { if (name != null && !name.isEmpty() && value != null && !value.isEmpty()) {
// valid parameter to pass
if(noLongerFirst){
// add successive parameters (if any)
sbUrl.append("&").append(name).append("=").append(value); sbUrl.append("&").append(name).append("=").append(value);
} else {
//add the first parameter
sbUrl.append(name).append("=").append(value);
noLongerFirst = true;
} }
}
} }
} }
} }