問題:
次のようなフィルター B が存在する場合、フィルター A は機能できません。
B が A の前にあり、かつ、B と一致するクラスが A とも一致する。
例えば、フィルターが次のような場合、
ClassA* method* INCLUDE * * EXCLUDE
ClassABC からのメソッド initialize() は、そのクラス名がパターン classA* と一致するため、 メソッド名がメソッド・パターンと一致しなくても、最初のフィルターによって誤って組み込まれてしまいます。 また、これは、次の場合に、ClassA で始まるすべてのメソッドが組み込まれることも意味します。
ClassA* method* INCLUDE ClassA* * EXCLUDE
これは、2 つ目のフィルターが常に無視されるためです。
予備手段:
デフォルトでは、クラスまたはメソッドは、どのフィルターとも一致しない場合に組み込まれます。 このため、INCLUDE フィルターを使用せずに、EXCLUDE フィルターのみを使用してください。最初に一致するクラス・パターンのみが問題となるため、1 つのクラスにつき 1 つの EXCLUDE フィルターしか指定できません。 このフィルターでは、除外するメソッドを指定するために以下のようにメソッド・パターンを使用できます。
ClassA method* EXCLUDE ClassB call* EXCLUDE
(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved. (C) Copyright IBM Japan 2003