* @throws RepositoryException
*/
private void resolvePropertyNameConflict(NodeState parent, QName name)
throws RepositoryException {
PropertyId propId = new PropertyId(parent.getNodeId(), name);
PropertyState conflicting = itemOps.getPropertyState(propId);
if (conflicting.getStatus() == ItemState.STATUS_NEW) {
// assume this property has been imported as well;
// rename conflicting property
// @todo use better reversible escaping scheme to create unique name
QName newName = new QName(name.getNamespaceURI(), name.getLocalName() + "_");
while (parent.hasPropertyName(newName)) {
newName = new QName(newName.getNamespaceURI(), newName.getLocalName() + "_");
}
InternalValue[] values = conflicting.getValues();
PropertyState newProp = itemOps.createPropertyState(
parent, newName, conflicting.getType(), values.length);
newProp.setValues(values);
parent.removePropertyName(name);
itemOps.store(parent);
itemOps.destroy(conflicting);
}
}