#ignite-961: fix comments after review.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/65c72c5b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/65c72c5b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/65c72c5b Branch: refs/heads/ignite-961 Commit: 65c72c5b58bf483d10a6d08513c6848164924fb4 Parents: f93ec69 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Mon Jul 20 14:43:52 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Mon Jul 20 14:43:52 2015 +0300 ---------------------------------------------------------------------- .../JettyRestProcessorAbstractSelfTest.java | 2 +- .../handlers/query/QueryCommandHandler.java | 71 +++++++------------- 2 files changed, 25 insertions(+), 48 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/65c72c5b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java index c6bf945..f1cfe96 100644 --- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java +++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java @@ -1125,7 +1125,7 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS GridRestCommandHandler qryHnd = handlers.get(GridRestCommand.CLOSE_SQL_QUERY); - ConcurrentHashMap<Long, Iterator> its = GridTestUtils.getFieldValue(qryHnd, "curs"); + ConcurrentHashMap<Long, Iterator> its = GridTestUtils.getFieldValue(qryHnd, "qryCurs"); found |= its.size() != 0; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/65c72c5b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java index 1a97995..defca37 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java @@ -25,6 +25,7 @@ import org.apache.ignite.internal.processors.rest.handlers.*; import org.apache.ignite.internal.processors.rest.request.*; import org.apache.ignite.internal.util.future.*; import org.apache.ignite.internal.util.typedef.internal.*; +import org.apache.ignite.lang.*; import java.util.*; import java.util.concurrent.*; @@ -45,11 +46,8 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { /** Query ID sequence. */ private static final AtomicLong qryIdGen = new AtomicLong(); - /** Current queries. */ - private final ConcurrentHashMap<Long, Iterator> curs = new ConcurrentHashMap<>(); - /** Current queries cursors. */ - private final ConcurrentHashMap<Long, QueryCursor> qryCurs = new ConcurrentHashMap<>(); + private final ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs = new ConcurrentHashMap<>(); /** * @param ctx Context. @@ -74,17 +72,17 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { case EXECUTE_SQL_QUERY: case EXECUTE_SQL_FIELDS_QUERY: { return ctx.closure().callLocalSafe( - new ExecuteQueryCallable(ctx, (RestSqlQueryRequest)req, curs, qryCurs), false); + new ExecuteQueryCallable(ctx, (RestSqlQueryRequest)req, qryCurs), false); } case FETCH_SQL_QUERY: { return ctx.closure().callLocalSafe( - new FetchQueryCallable((RestSqlQueryRequest)req, curs, qryCurs), false); + new FetchQueryCallable((RestSqlQueryRequest)req, qryCurs), false); } case CLOSE_SQL_QUERY: { return ctx.closure().callLocalSafe( - new CloseQueryCallable((RestSqlQueryRequest)req, curs, qryCurs), false); + new CloseQueryCallable((RestSqlQueryRequest)req, qryCurs), false); } } @@ -101,22 +99,18 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { /** Execute query request. */ private RestSqlQueryRequest req; - /** Queries iterators. */ - private ConcurrentHashMap<Long, Iterator> curs; - /** Queries cursors. */ - private ConcurrentHashMap<Long, QueryCursor> qryCurs; + private ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs; /** * @param ctx Kernal context. * @param req Execute query request. - * @param curs Queries cursors. + * @param qryCurs Queries cursors. */ public ExecuteQueryCallable(GridKernalContext ctx, RestSqlQueryRequest req, - ConcurrentHashMap<Long, Iterator> curs, ConcurrentHashMap<Long, QueryCursor> qryCurs) { + ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs) { this.ctx = ctx; this.req = req; - this.curs = curs; this.qryCurs = qryCurs; } @@ -148,16 +142,14 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { Iterator cur = qryCur.iterator(); - qryCurs.put(qryId, qryCur); - curs.put(qryId, cur); + qryCurs.put(qryId, new IgniteBiTuple<>(qryCur, cur)); - CacheQueryResult res = createQueryResult(qryCurs, curs, cur, req, qryId); + CacheQueryResult res = createQueryResult(qryCurs, cur, req, qryId); return new GridRestResponse(res); } catch (Exception e) { qryCurs.remove(qryId); - curs.remove(qryId); return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage()); } @@ -171,28 +163,23 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { /** Execute query request. */ private RestSqlQueryRequest req; - /** Queries iterators. */ - private ConcurrentHashMap<Long, Iterator> curs; - /** Queries cursors. */ - private ConcurrentHashMap<Long, QueryCursor> qryCurs; + private final ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs; /** * @param req Execute query request. - * @param curs Queries cursors. + * @param qryCurs Queries cursors. */ public CloseQueryCallable(RestSqlQueryRequest req, - ConcurrentHashMap<Long, Iterator> curs, - ConcurrentHashMap<Long, QueryCursor> qryCurs) { + ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs) { this.req = req; - this.curs = curs; this.qryCurs = qryCurs; } /** {@inheritDoc} */ @Override public GridRestResponse call() throws Exception { try { - QueryCursor cur = qryCurs.get(req.queryId()); + QueryCursor cur = qryCurs.get(req.queryId()).get1(); if (cur == null) return new GridRestResponse(GridRestResponse.STATUS_FAILED, @@ -201,13 +188,11 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { cur.close(); qryCurs.remove(req.queryId()); - curs.remove(req.queryId()); return new GridRestResponse(true); } catch (Exception e) { qryCurs.remove(req.queryId()); - curs.remove(req.queryId()); return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage()); } @@ -221,38 +206,33 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { /** Execute query request. */ private RestSqlQueryRequest req; - /** Queries iterators. */ - private ConcurrentHashMap<Long, Iterator> curs; - /** Queries cursors. */ - private ConcurrentHashMap<Long, QueryCursor> qryCurs; + private final ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs; /** * @param req Execute query request. - * @param curs Queries cursors. + * @param qryCurs Queries cursors. */ - public FetchQueryCallable(RestSqlQueryRequest req, ConcurrentHashMap<Long, Iterator> curs, - ConcurrentHashMap<Long, QueryCursor> qryCurs) { + public FetchQueryCallable(RestSqlQueryRequest req, + ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs) { this.req = req; - this.curs = curs; this.qryCurs = qryCurs; } /** {@inheritDoc} */ @Override public GridRestResponse call() throws Exception { try { - Iterator cur = curs.get(req.queryId()); + Iterator cur = qryCurs.get(req.queryId()).get2(); if (cur == null) return new GridRestResponse(GridRestResponse.STATUS_FAILED, "Cannot find query [qryId=" + req.queryId() + "]"); - CacheQueryResult res = createQueryResult(qryCurs, curs, cur, req, req.queryId()); + CacheQueryResult res = createQueryResult(qryCurs, cur, req, req.queryId()); return new GridRestResponse(res); } catch (Exception e) { - curs.remove(req.queryId()); qryCurs.remove(req.queryId()); return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage()); @@ -262,15 +242,14 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { /** * @param qryCurs Query cursors. - * @param curs Queries iterators. * @param cur Current cursor. * @param req Sql request. * @param qryId Query id. * @return Query result with items. */ - private static CacheQueryResult createQueryResult(ConcurrentHashMap<Long, QueryCursor> qryCurs, - ConcurrentHashMap<Long, Iterator> curs, Iterator cur, - RestSqlQueryRequest req, Long qryId) { + private static CacheQueryResult createQueryResult( + ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs, + Iterator cur, RestSqlQueryRequest req, Long qryId) { CacheQueryResult res = new CacheQueryResult(); List<Object> items = new ArrayList<>(); @@ -284,10 +263,8 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter { res.setQueryId(qryId); - if (!cur.hasNext()) { + if (!cur.hasNext()) qryCurs.remove(qryId); - curs.remove(qryId); - } return res; }