Fixed SOE in searching for recursive package requirements (PY-7074)

This commit is contained in:
Andrey Vlasovskikh
2012-07-31 18:34:09 +04:00
parent 9635fcc422
commit ddfd8586bb
2 changed files with 18 additions and 1 deletions
@@ -215,7 +215,7 @@ public class PyPackageRequirementsInspection extends PyInspection {
final List<PyPackage> packages = PyPackageManager.getInstance(sdk).getPackages();
for (PyRequirement req : requirements) {
final PyPackage pkg = req.match(packages);
if (pkg != null) {
if (pkg != null && !visited.contains(pkg)) {
visited.add(pkg);
results.addAll(getTransitiveRequirements(sdk, pkg.getRequirements(), visited));
}
@@ -49,4 +49,21 @@ public class PyPackage {
public boolean isInstalled() {
return myLocation != null;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
PyPackage aPackage = (PyPackage)o;
if (myName != null ? !myName.equals(aPackage.myName) : aPackage.myName != null) return false;
if (myVersion != null ? !myVersion.equals(aPackage.myVersion) : aPackage.myVersion != null) return false;
return true;
}
@Override
public int hashCode() {
int result = myName != null ? myName.hashCode() : 0;
result = 31 * result + (myVersion != null ? myVersion.hashCode() : 0);
return result;
}
}