Узел setProperty дает RepositoryException в Magnolia CMS из-за нарушения ограничений - PullRequest
0 голосов
/ 09 января 2020

Мне нужно установить все следующие свойства для узла, и я получаю RepositoryException

'jcr:createdBy': 'admin'
'hideInNav': 'true'
'mgnl:template': 'something'
'jcr:created': '2020-01-09T14:14:13.555+01:00'
'mgnl:created': '2020-01-09T14:14:13.555+01:00'
'mgnl:createdBy': 'superuser'
'jcr:uuid': 'df7227a7-39e2-4e15-8d26-16b8b0657049'
'title': 'Sitemap'
'mgnl:lastModified': '2020-01-09T16:04:11.820+01:00'
'jcr:primaryType': 'mgnl:page'
'mgnl:lastModifiedBy': 'superuser'

Это код, который я использую в al oop для настройки вышеуказанных свойств для узла:

try {
     String value= (String)entry.getValue();
     node.setProperty(entry.getKey(), value);
           }

} catch (ItemNotFoundException e) {
                // TODO Auto-generated catch block
            e.printStackTrace();
} catch (RepositoryException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
}

и трассировка стека для RepositoryException:

javax.jcr.nodetype.ConstraintViolationException: Unable to perform operation. Node is protected.
        at org.apache.jackrabbit.core.ItemValidator.checkCondition(ItemValidator.java:276)
        at org.apache.jackrabbit.core.ItemValidator.checkModify(ItemValidator.java:248)
        at org.apache.jackrabbit.core.PropertyImpl.checkSetValue(PropertyImpl.java:278)
        at org.apache.jackrabbit.core.PropertyImpl.setValue(PropertyImpl.java:726)
        at org.apache.jackrabbit.core.NodeImpl$SetPropertyOperation.perform(NodeImpl.java:2058)
        at org.apache.jackrabbit.core.NodeImpl$SetPropertyOperation.perform(NodeImpl.java:2002)
        at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
        at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:1924)
        at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:1894)

Есть предложения? Есть ли какие-либо ограничения на какие свойства вы можете или не можете установить?

1 Ответ

1 голос
/ 10 января 2020

Простой ответ: не .
Не следует устанавливать значение для любого из свойств jcr: или mgnl:. Если вы попытаетесь установить значение для напоминания, оно будет работать нормально.

...