String key = iterator.next();
index++;
if (externalProperties.hasProperty(key)) {
String value = externalProperties.getProperty(key);
try {
return new JCRPropertyWrapperImpl(node, new JCRUserProperty(key, value), node.getSession(), node.getJCRProvider(),
propertyDefinitionMap.get(key) != null ? propertyDefinitionMap.get(key) : unstructuredPropertyDefinitions.get(PropertyType.STRING));
} catch (RepositoryException e) {
logger.error(e.getMessage(), e);
}
} else if (jcrProperties.containsKey(key)) {