Я делаю обновление для нескольких узлов, а затем пакетное публикацию (большое количество данных) с помощью команды «Активировать», чтобы публиковать узлы программно, но иногда я не знаю, почему Иногда я получаю сообщение об ошибке. Это произошло только несколько раз, поэтому мне трудно понять, что вызывает проблему.Связанная активацияСтатус был изменен извне при публикации
Приведенная ошибка.
Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: 8b3ce2d4-eb7b-4838-901c-413aa9eeee84/{http://www.magnolia.info/jcr/mgnl}activationStatus has been modified externally
at org.apache.jackrabbit.core.ItemSaveOperation.removeTransientItems(ItemSaveOperation.java:723)
at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:228)
Неужели кто-нибудь сталкивался с подобной проблемой? Или любая идея, где посмотреть эту проблему?
Спасибо! :)
Я предполагаю, что вы используете асинхронные команды, поэтому можно изменить его состояние, пока другой не обработает случай. Если вы сделаете это программно, я предлагаю попробовать, если это помогает время Thread.sleep() между ними. Если проблема в том, что это действительно время, мы можем что-то сделать, например, слушать, когда операция завершена и т. Д. И т. Д. – Ducaz035
Привет @ Ducaz035, это команда async? Я выполняю этот: Команда cmd = ((CommandsManager) Components.getComponent (CommandsManager.class)). GetCommand ("", "activate"); Контекст ctx = новый SimpleContext(); Map params = new HashMap <>(); params.put ("репозиторий", имя_рабочего пространства); params.put ("uuid", uuid); params.put ("рекурсивный", true); ctx.putAll (params); cmd.execute (ctx); –
Кроме того, я не совсем понимаю, что произошло на самом деле? почему активацияStatus изменена извне? существует только один экземпляр автора, и никто не затрагивает публичный экземпляр, кроме этого экземпляра автора. Не могли бы вы объяснить, где это может произойти? Большое спасибо! –