public class JXPATH152PatchActivator extends Object
クラスロードのタイミングで、
JXPathIntrospectorの、問題を抱えているprivate staticフィールド(byClass, byInterface)内のHashMapを
パッチオブジェクト(HashMapForJXPathIntrospector
)に差し替える。
このアクティベータを使用するには、アプリケーション起動時に、このクラスをロードする(ロードされていないときにロードする)必要がある。
applicationContext.xmlに、以下の記述を追加することで、可能である。
特記事項:
このクラスは、JXPathIntrospectorのprivate staticフィールドにアクセスするため、
セキュリティマネージャを設定している場合には、
privateフィールドへのアクセス権(java.lang.reflect.ReflectPermissionのsuppressAccessChecks)を付与する必要がある。
なお、privateフィールドアクセスは特権モードで実行する(呼び出し元のクラスの権限が低い場合でも、このクラスに与えられた権限で実行する)ため、
アクセス権の付与対象を絞りたい場合は、以下の例のように、
このクラスを含むjarファイルのみに限定してprivateフィールドへのアクセス権を付与すればよい。
Copyright © 2014. All Rights Reserved.