ルート スレッド グループを取得するために tg.getParent() で while ループを実行する、かなり定型的な Java コードがいくつかあります。これは、4 つの異なる環境 (1 つの Windows と 3 つの Linux) で数か月間動作しています。最近、Accessment Validation テスト用に 5 番目の環境を追加しました。この環境は、可能な限り本番環境のレプリカであると想定されています。開発者はこのシステムへのアクセスが非常に制限されており、ホスト グループがシステムをセットアップしてすべての適切な権限とプロパティを設定するのに数週間のプロセスが必要でした.
現在、ほぼすべてが機能していますが、今日、テスターが上記の getRootThreadGroup() メソッドを実行するアプリケーションの部分に行ったとき、ThreadGroup.getParent() への呼び出しで SecurityException がスローされたようです。現時点ではアプリケーション ログ ファイルを見つけることができなかったため、詳細はわかりません。しかし、ここで SecurityException が発生したことは 99.99% 確信しています。SecurityException と getParent() と checkAccess() などの javadoc を見てきましたが、どれもあまり意味がありません。
この新しい環境が原因で、アプリケーションがこの呼び出しで SecurityException をスローする単純な理由を考えられる人はいますか? (そして、コードは他のすべての環境で例外なく確実に実行されます)。私の直感では、どういうわけか、アプリケーションの実行時ユーザーが「何か」へのアクセス許可を持っていないということです...
ああ、これは Java 1.6 (jrockit-jdk) を搭載した Bea Weblogic サーバーで実行されていますが、他の環境とまったく同じように構成する必要があります。
助けてくれてありがとう。