JCR, восстановить версию проблемы для пользовательского узла в дереве - PullRequest
0 голосов
/ 14 января 2019

Я пробовал versiong и восстановление дерева, как видно на прилагаемой картинке, у меня следующая иерархия узлов. Шаг 1) Корневой узел | Пользовательский дочерний узел типа nt: папка, микс: версия | Дочерний узел типа NT: папка | Custome Childe Node nt: тип файла, смесь: версия

Я могу выполнить версию g узла следующим образом Шаг 2: Я оформляю заказ на дочернем узле, получить узел типа nt: папка получить узел пользовательского узла типа nt: тип файла, установить новое содержимое типа файла.

вышеуказанная операция прошла успешно, я могу видеть и получать новый контент из версионного файла,

Теперь на шаге 3 я хочу выполнить восстановление до версии 1.0, а всю иерархию установить на 1.0. ниже приведен код для этого,

 final VersionManager versionManager = session.getWorkspace().getVersionManager();
    final Node node = session.getRootNode().getNode(Custom Child node of Type nt:folder);  //Get the custom folder node
    final VersionHistory verHis = versionManager.getVersionHistory(node.getPath());
    final VersionIterator verItr = verHis.getAllVersions();
    while (verItr.hasNext()) {
       final Version version = verItr.nextVersion();
       if(versionLabel.equals(version.getName())){
           log.info("Restoring Version : "+versionLabel);
           log.info(version.getFrozenNode().getPath());
           versionManager.restore(version, true);
           return;
       }

    }

При восстановлении происходит сбой со следующим исключением для узла пользовательских файлов в листьях:

javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for Custome File Name.go.xml
at org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeTypeImpl.getNodeDefinition(EffectiveNodeTypeImpl.java:454)
at org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager.getDefinition(ReadOnlyNodeTypeManager.java:396)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.getOPV(VersionableState.java:569)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreChildren(VersionableState.java:396)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreFrozen(VersionableState.java:319)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreState(VersionableState.java:261)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreChildren(VersionableState.java:402)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreFrozen(VersionableState.java:319)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restore(VersionableState.java:229)
... 73 common frames omitted

Спасибо

enter image description here

...