in src/main/java/org/apache/sling/distribution/resources/impl/OsgiUtils.java [127:166]
public static Map<String, Object> sanitize(Map<String, Object> map) {
Map<String, Object> result = new HashMap<String, Object>();
if (map == null) {
return result;
}
for (Map.Entry<String, Object> entry : map.entrySet()) {
if (entry.getValue() == null) {
continue;
}
// skip jcr: stuff
if (entry.getKey().contains(":")) {
continue;
}
Class<?> valueClass = entry.getValue().getClass();
Object value = entry.getValue();
if (valueClass.isArray()) {
valueClass = valueClass.getComponentType();
// fix string arrays that come as Object[]
if (valueClass.equals(Object.class)) {
Object[] array = (Object[]) value;
value = Arrays.asList(array).toArray(new String[array.length]);
valueClass = String.class;
}
}
if (valueClass.isPrimitive()
|| valueClass.equals(String.class)
|| valueClass.equals(Boolean.class)
|| valueClass.equals(Integer.class)) {
result.put(entry.getKey(), value);
}
}
return result;
}