in impl/src/main/java/org/apache/geronimo/config/ConfigImpl.java [162:189]
private <T> Converter getImplicitConverter(Class<T> asType) {
Converter converter = implicitConverters.get(asType);
if (converter == null) {
synchronized (implicitConverters) {
converter = implicitConverters.get(asType);
if (converter == null) {
if (asType.isArray()) {
Converter singleItemConverter = getConverter(asType.getComponentType());
if (singleItemConverter == null) {
return null;
}
else {
converter = new ImplicitConverter.ImplicitArrayConverter(singleItemConverter, asType.getComponentType());
implicitConverters.putIfAbsent(asType, converter);
}
}
else {
// try to check whether the class is an 'implicit converter'
converter = ImplicitConverter.getImplicitConverter(asType);
if (converter != null) {
implicitConverters.putIfAbsent(asType, converter);
}
}
}
}
}
return converter;
}