編集:この質問を最新の情報で更新しました...
依存する機能に対して "features:uninstall" コマンドを連続して実行すると問題が発生します。OSGi は「状態変更が進行中です...」と応答しますが、他の要求を受け入れると、問題が発生します。
奇妙なことに、これにより機能のアンインストールは成功しますが、バンドルのアンインストールは失敗します。アンインストール リクエストを適切に並べ替え、ステップ間に遅延を追加することで、この問題に対処していますが、より堅牢なソリューションを期待しています。
示唆されているように、ステップの間に「osgi:refresh」を追加しようとしました...同じ動作です。「パッケージの更新」がまだ実行されていることを検出して、後続のリクエストなどを遅らせる別の方法はありますか?
詳細はこちら...
karaf@root> features:uninstall PolicyUtil
karaf@root> features:uninstall Policy1
karaf@root> features:uninstall Policy2
State change in progress for bundle "file:/policy2.jar" by thread "Refresh Packages".
karaf@root> features:uninstall Policy3
State change in progress for bundle "file:/policy3.jar" by thread "Refresh Packages".
karaf@root> features:uninstall Policy4
karaf@root> features:uninstall Enabler1
State change in progress for bundle "file:/enabler1.jar" by thread "Refresh Packages".
karaf@root> features:uninstall Enabler2
State change in progress for bundle "file:/enabler2.jar" by thread "Refresh Packages".
afterwards...we end up with features uninstalled (correct), but some bundles still installed (incorrect)
osgi:list
[ 277] [Installed ] [ ] [ ] [ 60] Policy2
[ 278] [Installed ] [ ] [ ] [ 60] Policy3
[ 280] [Installed ] [ ] [ ] [ 60] Enabler1
[ 281] [Installed ] [ ] [ ] [ 60] Enabler2
features:list
[uninstalled] [1.0 ] PolicyUtil repo-0
[uninstalled] [1.0 ] Policy1 repo-0
[uninstalled] [1.0 ] Policy2 repo-0
[uninstalled] [1.0 ] Policy3 repo-0
[uninstalled] [1.0 ] Enabler1 repo-0
[uninstalled] [1.0 ] Enabler2 repo-0