From cba46c4f725e663382e8db0092eb0aae762e3219 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Fri, 27 Sep 2013 10:53:18 -0400 Subject: [PATCH] fixes out of memory error with getRelatedRestrictions() --- .../vitro/webapp/dao/jena/PropertyDaoJena.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java index a7a55f136..057df054e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java @@ -525,7 +525,6 @@ public class PropertyDaoJena extends JenaBaseDao implements PropertyDao { vclasses.add(vclass); } } - return getAllPropInstByVClasses(vclasses); } @@ -619,10 +618,12 @@ public class PropertyDaoJena extends JenaBaseDao implements PropertyDao { private static final int DEPTH_LIMIT = 20; private List getRelatedRestrictions(OntClass ontClass) { - return getRelatedRestrictions(ontClass, new ArrayList(), DEPTH_LIMIT); + List restList = new ArrayList(); + addRelatedRestrictions(ontClass, restList, DEPTH_LIMIT); + return restList; } - private List getRelatedRestrictions(OntClass ontClass, + private void addRelatedRestrictions(OntClass ontClass, List relatedRestrictions, int limit) { limit--; if (ontClass.isRestriction()) { @@ -633,9 +634,7 @@ public class PropertyDaoJena extends JenaBaseDao implements PropertyDao { while (operIt.hasNext()) { OntClass operand = operIt.next(); if (!relatedRestrictions.contains(operand) && limit > 0) { - relatedRestrictions.addAll( - getRelatedRestrictions( - operand, relatedRestrictions, limit)); + addRelatedRestrictions(operand, relatedRestrictions, limit); } } } else { @@ -644,12 +643,10 @@ public class PropertyDaoJena extends JenaBaseDao implements PropertyDao { for (OntClass sup : superClasses) { if (sup.isAnon() && !sup.equals(ontClass) && !relatedRestrictions.contains(ontClass) && limit > 0) { - relatedRestrictions.addAll( - getRelatedRestrictions(sup, relatedRestrictions, limit)); + addRelatedRestrictions(sup, relatedRestrictions, limit); } } } - return relatedRestrictions; } public List getAllPropInstByVClasses(List vclasses) {