Patent ID: 7284245

Claim:
In a computer system having an event management system for detecting events as they occur and selectively reporting them to one or more subscriber applications, a method of combining first and second filtering trees usable for determining which detected events should be reported to the one or more subscriber events by merging the first and second filtering trees to create an output filter tree used to selectively report events, the method comprising: accessing first and second filtering trees used to determine whether an event detected by a computing system should be reported to one or more subscriber applications; determining that a first node at a topmost level of the first filtering tree is an OR node; determining that a second node at a topmost level of the second filtering tree is also an OR node; in response to determining that an OR node is at the topmost level of each of the first and second filtering trees, creating a single output filtering tree and storing it on computer readable storage media, the single output filtering tree providing a resulting OR node at a topmost level of the output filtering tree; and adding each child node of the first tree and each child of the second tree into the single output filtering tree as child nodes, and such that the single output filtering tree when traversed with actual event data, is configured to identify when an event corresponding to the actual event data is to be reported to the one or more subscriber applications, and wherein adding each child of the first tree and each child of the second tree comprises: merging each child node of the first tree with a child node of the second tree into a merged node when such nodes can be successfully combined, and adding to the single output filtering tree each merged node as a child node of the resulting OR node; adding to the single output filtering tree each child node of the first tree and each child node of the second tree that cannot be successfully combined as a child node of the resulting OR node; and after any child node of the first tree and the second filtering tree have been added to the output filtering tree in a merged node or as a child node of the resulting OR node, eliminating each child from further consideration for merging.