我正在爲多個節點進行更新,然後使用命令「Activate」以批量發佈(大量數據)以編程方式發佈節點,但有時我不知道爲什麼我有時會遇到錯誤。它迄今爲止只發生過幾次,所以我很難弄清楚導致問題的原因是什麼。遇到activationStatus在發佈時已被外部修改
這是拋出的錯誤。
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
Hi @ Ducaz035,這個命令是異步的嗎?我正在執行這一個: 命令cmd =((CommandsManager)Components.getComponent(CommandsManager.class))。getCommand(「」,「activate」); 上下文ctx = new SimpleContext(); Map params = new HashMap <>(); params.put(「repository」,workspaceName); params.put(「uuid」,uuid); params.put(「recursive」,true); ctx.putAll(params); cmd.execute(ctx); –
另外,我不太明白實際發生了什麼?爲什麼activationStatus是外部修改的?除了這個作者實例外,只有一個作者實例,沒有人觸及公共實例。你能否幫助解釋發生這種情況的情況?非常感謝! –