Skip to content

QPartitionOperations.findQPartition may return invalid QPartitions

In very rare cases it may occur that QPartitionOperations.findQPartition() returns a QPartition with an empty dx set and thus an partition for an invalid query.

This has it's origin in the updateBest() method of the implementing class of the interface IQPartitionRequirementsMeasure.

All classes that implement the updateBest() method have to check initially if the current pBest has an empty dx. In this case simply return p as the new pBest to guarantee a query with non-emtpy dx and non-empty dnx.

A followup error is a possible inconsistency because the same query axiom can then be answered both positively and negatively resulting in a DiagnosisException during the search for the next diagnoses.