diff --git a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java index 891662039..3762b66ea 100644 --- a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java +++ b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java @@ -39,8 +39,15 @@ import com.mysema.query.types.expr.QTuple; * * @param */ -public abstract class AbstractJDOQLQuery> extends ProjectableQuery implements Closeable{ +public abstract class AbstractJDOQLQuery> extends ProjectableQuery{ + private final Closeable closeable = new Closeable(){ + @Override + public void close() throws IOException { + AbstractJDOQLQuery.this.close(); + } + }; + private final boolean detach; private List orderedConstants = new ArrayList(); @@ -79,7 +86,7 @@ public abstract class AbstractJDOQLQuery> extend return (Q)this; } - public void close() throws IOException { + public void close() { for (Query query : queries){ query.closeAll(); } @@ -168,11 +175,11 @@ public abstract class AbstractJDOQLQuery> extend } public CloseableIterator iterate(Expr[] args) { - return new IteratorAdapter(list(args).iterator(), this); + return new IteratorAdapter(list(args).iterator(), closeable); } public CloseableIterator iterate(Expr projection) { - return new IteratorAdapter(list(projection).iterator(), this); + return new IteratorAdapter(list(projection).iterator(), closeable); } @SuppressWarnings("unchecked") diff --git a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQuery.java b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQuery.java index ef2d3ae85..b09bc2e2a 100644 --- a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQuery.java +++ b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQuery.java @@ -5,8 +5,6 @@ */ package com.mysema.query.jdoql; -import java.io.Closeable; - import javax.jdo.PersistenceManager; import com.mysema.query.Projectable; @@ -17,7 +15,7 @@ import com.mysema.query.Projectable; * @author tiwe * */ -public interface JDOQLQuery extends JDOQLCommonQuery, Projectable, Closeable { +public interface JDOQLQuery extends JDOQLCommonQuery, Projectable { /** * Clone the state of the query for the given PersistenceManager @@ -46,5 +44,10 @@ public interface JDOQLQuery extends JDOQLCommonQuery, Projectable, C * @return */ JDOQLQuery setMaxFetchDepth(int maxFetchDepth); + + /** + * + */ + void close(); } diff --git a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java index caf0c72ad..83a7fb81e 100644 --- a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java +++ b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/sql/JDOSQLQuery.java @@ -41,9 +41,16 @@ import com.mysema.query.types.expr.QTuple; * @author tiwe * */ -public final class JDOSQLQuery extends AbstractSQLQuery implements SQLCommonQuery, Closeable{ +public final class JDOSQLQuery extends AbstractSQLQuery implements SQLCommonQuery{ private static final Logger logger = LoggerFactory.getLogger(JDOSQLQuery.class); + + private final Closeable closeable = new Closeable(){ + @Override + public void close() throws IOException { + JDOSQLQuery.this.close(); + } + }; private final boolean detach; @@ -70,7 +77,7 @@ public final class JDOSQLQuery extends AbstractSQLQuery implements this.detach = detach; } - public void close() throws IOException { + public void close() { for (Query query : queries){ query.closeAll(); } @@ -146,11 +153,11 @@ public final class JDOSQLQuery extends AbstractSQLQuery implements } public CloseableIterator iterate(Expr[] args) { - return new IteratorAdapter(list(args).iterator(), this); + return new IteratorAdapter(list(args).iterator(), closeable); } public CloseableIterator iterate(Expr projection) { - return new IteratorAdapter(list(projection).iterator(), this); + return new IteratorAdapter(list(projection).iterator(), closeable); } @SuppressWarnings("unchecked") diff --git a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/FetchPlanTest.java b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/FetchPlanTest.java index b46240a75..b93ee90ff 100644 --- a/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/FetchPlanTest.java +++ b/querydsl-jdoql/src/test/java/com/mysema/query/jdoql/FetchPlanTest.java @@ -2,7 +2,6 @@ package com.mysema.query.jdoql; import static org.junit.Assert.assertEquals; -import java.io.IOException; import java.lang.reflect.Field; import java.util.Arrays; import java.util.HashSet; @@ -27,11 +26,7 @@ public class FetchPlanTest extends AbstractJDOTest{ @After public void tearDown() { if (query != null){ - try { - query.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } + query.close(); } super.tearDown(); }