Community
Participate
Working Groups
The UI query providers build compound queries to satisfy conditions like "find all group IU's or nested categories that are members of the given category." While analyzing bug #211521, I noticed that the compound queries are not constructed with performance in mind. Consider a query like this: Query query = new CompoundQuery(new Query[] {membersOfCategoryQuery, new CompoundQuery(new Query[] {groupQuery, categoryQuery}, false)}, true); This query basically says isMemberOfCategory AND (isGroup OR isCategory) It so happens that isMemberOfCategory is the most expensive thing to compute, since that involves checking each provided capability of an IU and determining if it meets a requirement of the category IU. It would make sense to only do this computation only for the groups/nested categories rather than all IU's. So we want instead: Query query = new CompoundQuery(new Query[] {new CompoundQuery(new Query[] {groupQuery, categoryQuery}, false), membersOfCategoryQuery}, true);
fixed in HEAD >20080103. The example reported was the only one like that.