[Mulgara-svn] r441 - in trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational: . d2rq
ronald at mulgara.org
ronald at mulgara.org
Wed Sep 19 09:39:48 UTC 2007
Author: ronald
Date: 2007-09-19 04:39:47 -0500 (Wed, 19 Sep 2007)
New Revision: 441
Modified:
trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java
trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/d2rq/Definition.java
Log:
Fixes some more unclosed-tuples leaks. This is a continuation of the fixes in
r389.
Modified: trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java
===================================================================
--- trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java 2007-09-19 09:37:15 UTC (rev 440)
+++ trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalResolution.java 2007-09-19 09:39:47 UTC (rev 441)
@@ -292,20 +292,23 @@
throw new TuplesException("RelationalResolution does not support suffix != 0");
}
- List result = new ArrayList();
Iterator i = constraint.getRdfTypeConstraints().iterator();
if (!i.hasNext()) {
this.result = new EmptyResolution(constraint, true);
} else {
- while (i.hasNext()) {
- Constraint head = (Constraint)i.next();
-
- result.add(resolveInstance(head, constraint, conn, defn));
+ List result = new ArrayList();
+ try {
+ while (i.hasNext()) {
+ Constraint head = (Constraint)i.next();
+ result.add(resolveInstance(head, constraint, conn, defn));
+ }
+
+ this.result = TuplesOperations.join(result);
+ } finally {
+ close((Tuples[]) result.toArray(new Tuples[result.size()]));
}
}
-
- this.result = TuplesOperations.join(result);
// It is possible that the join may have no variables but only if the query returns empty.
if (this.result.getRowCardinality() != Cursor.ZERO) {
Variable[] local = this.getVariables();
Modified: trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/d2rq/Definition.java
===================================================================
--- trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/d2rq/Definition.java 2007-09-19 09:37:15 UTC (rev 440)
+++ trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/d2rq/Definition.java 2007-09-19 09:39:47 UTC (rev 441)
@@ -129,9 +129,15 @@
LocalNode belongs = new LocalNode(session.localize(Constants.belongsToClassMap));
LocalNode propBridge = new LocalNode(session.localize(Constants.TypeObjectPropertyBridge));
- Tuples props = TuplesOperations.join(
- resolver.resolve(new ConstraintImpl(subj, belongs, map, model)),
- resolver.resolve(new ConstraintImpl(subj, type, propBridge, model)));
+ Tuples lhs = resolver.resolve(new ConstraintImpl(subj, belongs, map, model));
+ Tuples rhs = resolver.resolve(new ConstraintImpl(subj, type, propBridge, model));
+ Tuples props;
+ try {
+ props = TuplesOperations.join(lhs, rhs);
+ } finally {
+ lhs.close();
+ rhs.close();
+ }
props.beforeFirst();
while (props.next()) {
long prop = props.getColumnValue(0);
@@ -152,9 +158,15 @@
LocalNode belongs = new LocalNode(session.localize(Constants.belongsToClassMap));
LocalNode propBridge = new LocalNode(session.localize(Constants.TypeDatatypePropertyBridge));
- Tuples props = TuplesOperations.join(
- resolver.resolve(new ConstraintImpl(subj, belongs, map, model)),
- resolver.resolve(new ConstraintImpl(subj, type, propBridge, model)));
+ Tuples lhs = resolver.resolve(new ConstraintImpl(subj, belongs, map, model));
+ Tuples rhs = resolver.resolve(new ConstraintImpl(subj, type, propBridge, model));
+ Tuples props;
+ try {
+ props = TuplesOperations.join(lhs, rhs);
+ } finally {
+ lhs.close();
+ rhs.close();
+ }
props.beforeFirst();
while (props.next()) {
long prop = props.getColumnValue(0);
More information about the Mulgara-svn
mailing list