Tools für Profilermittlung und Protokollierung - Release-Informationen


1.0 Einschränkungen
   1.1 Profilermittlungsfilter funktionieren unter bestimmten Bedingungen nicht

1.0 Einschränkungen

1.1 Profilermittlungsfilter funktionieren unter bestimmten Bedingungen nicht

Das Problem:

Filter A funktioniert nicht, wenn es einen Filter B gibt, so dass gilt:

B ist vor A platziert und die Klassen, die B entsprechen, entsprechen auch A.

Wenn die Filter zum Beispiel wie folgt aussehen:

ClassA* method* INCLUDE
* * EXCLUDE

Dann wird die Methode initialize() aus ClassABC fälschlicherweise durch den ersten Filter mit eingeschlossen, weil sein Klassenname dem Muster 'ClassA*' entspricht, obwohl der Methodenname nicht mit dem Methodenmuster übereinstimmt. Dies impliziert außerdem, dass folgende Filter dazu führen, dass alle Methoden, die mit 'ClassA' beginnen, eingeschlossen werden:

ClassA* method* INCLUDE
ClassA* * EXCLUDE

Dies ist der Fall, weil der zweite Filter immer ignoriert wird.

Umgehungsmaßnahme:

Standardmäßig wird eine Klasse oder Methode, die keinem Filter entspricht, immer mit eingeschlossen. Daher sollten Sie nie INCLUDE-Filter, sondern nur EXCLUDE-Filter verwenden. Da es nur auf das erste übereinstimmende Klassenmuster ankommt, kann nur ein EXCLUDE-Filter pro Klasse angegeben werden, und in diesem Filter kann ein Methodenmuster wie folgt zur Angabe der auszuschließenden Methoden verwendet werden:

ClassA method* EXCLUDE
ClassB call* EXCLUDE

Zurück zur Readme-Hauptdatei