? String.class : ClassUtils.simpleJavaTypeToClass(mapEntries.getValueClass());
ValueBinding valueBinding;
for (Iterator iterator = mapEntries.getMapEntries(); iterator.hasNext();)
{
MapEntry entry = (MapEntry) iterator.next();
Object key = entry.getKey();
if (UIComponentTag.isValueReference((String) key))
{
valueBinding = application.createValueBinding((String) key);
key = valueBinding.getValue(facesContext);
}
if (entry.isNullValue())
{
Object coercedKey = null;
try
{
coercedKey = (key == null) ? null : Coercions
.coerce(key, keyClass, COERCION_LOGGER);
}
catch (ELException e)
{
String message = "Cannot coerce "
+ key.getClass().getName() + " to "
+ keyClass.getName();
log.error(message, e);
throw new FacesException(message, e);
}
map.put(coercedKey, null);
}
else
{
Object value = entry.getValue();
if (UIComponentTag.isValueReference((String) value))
{
valueBinding = application.createValueBinding((String) value);
value = valueBinding.getValue(facesContext);
}