Skip to content

DependencyConstraint match is incorrect in version 2.9.1 #5

@krueger71

Description

@krueger71

In version 2.9.1 this method ends prematurely on the first successful package match

public boolean match(Collection expectedPackages) {

        if (packages.size() == expectedPackages.size()) {

            for (Iterator i = expectedPackages.iterator(); i.hasNext();) {
                Object next = i.next();
                if (next instanceof JavaPackage) {
                    JavaPackage nextPackage = (JavaPackage) next;
                    if (!matchPackage(nextPackage)) {
                        return false;
                    }
                } else {
                    break;
                }

                return true;
            }
        }

        return false;
    }

This version works as expected, letting all packages be matched before returning true

    public boolean match(Collection expectedPackages) {

        if (packages.size() == expectedPackages.size()) {

            for (Iterator i = expectedPackages.iterator(); i.hasNext();) {
                Object next = i.next();
                if (next instanceof JavaPackage) {
                    JavaPackage nextPackage = (JavaPackage) next;
                    if (!matchPackage(nextPackage)) {
                        return false;
                    }
                }
            }
            return true;
        }

        return false;
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions