in src/main/java/org/apache/sling/engine/impl/parameters/ParameterMap.java [71:96]
void addParameter(RequestParameter parameter, boolean prependNew) {
// check number of parameters
if (this.requestParameters.size() == maxParameters) {
// TODO: how to handle this situation ?? just ignore or throw or what ??
LoggerFactory.getLogger(Util.class)
.warn("Too many name/value pairs, stopped processing after " + maxParameters + " entries");
return;
}
// map of parameters
final String name = parameter.getName();
RequestParameter[] current = this.get(name);
if (current == null) {
super.put(name, new RequestParameter[] {parameter});
} else {
RequestParameter[] ppn = new RequestParameter[current.length + 1];
System.arraycopy(current, 0, ppn, prependNew ? 1 : 0, current.length);
ppn[prependNew ? 0 : current.length] = parameter;
super.put(name, ppn);
}
// list of parameters
this.requestParameters.add(parameter);
}