複数のノードの更新を行っていて、プログラムでノードを公開するためにコマンド "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)
誰かに似た問題が発生しましたか?あるいは、この問題をどこから見なければならないのでしょうか?
ありがとうございます! :)
私は非同期コマンドを使用していると仮定しているため、他の1つが大文字と小文字を処理するまで状態を変更する可能性があります。これをプログラムで行うなら、私はそれがいくつかのThread.sleep()の間にあるのに役立つかどうかを試してみることをお勧めします。問題が本当にタイミングであれば、私たちは操作が完了した時等にリッスンなど何かをすることができます – Ducaz035
こんにちは@ Ducaz035、このコマンドは非同期ですか?私はこれを実行しています: コマンドcmd =((CommandsManager)Components.getComponent(CommandsManager.class))。getCommand( ""、 "activate"); コンテキストctx =新しいSimpleContext(); マップparams = new HashMap <>(); params.put( "repository"、workspaceName); params.put( "uuid"、uuid); params.put( "recursive"、true); ctx.putAll(params); cmd.execute(ctx); –
また、実際に何が起こったのかよく分かりません。 activationStatusが外部的に変更されているのはなぜですか?著者インスタンスは1つしかなく、誰もパブリックインスタンスに触れていません。これが起こる可能性があるケースを説明するのに役立つことができますか?どうもありがとう! –