This is an automated email from the ASF dual-hosted git repository. lta pushed a commit to branch cluster_lta in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit b48c18786e658a87775ef7b856c3055bd48839c9 Author: lta <[email protected]> AuthorDate: Mon Apr 8 13:49:23 2019 +0800 fix a bug --- .../iotdb/cluster/qp/executor/NonQueryExecutor.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/NonQueryExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/NonQueryExecutor.java index 7e05f47..59c493f 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/NonQueryExecutor.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/NonQueryExecutor.java @@ -37,6 +37,7 @@ import org.apache.iotdb.cluster.callback.QPTask; import org.apache.iotdb.cluster.callback.SingleQPTask; import org.apache.iotdb.cluster.config.ClusterConfig; import org.apache.iotdb.cluster.entity.raft.DataPartitionRaftHolder; +import org.apache.iotdb.cluster.entity.raft.MetadataRaftHolder; import org.apache.iotdb.cluster.entity.raft.RaftService; import org.apache.iotdb.cluster.exception.RaftConnectionException; import org.apache.iotdb.cluster.qp.ClusterQPExecutor; @@ -304,13 +305,22 @@ public class NonQueryExecutor extends ClusterQPExecutor { */ public boolean handleNonQueryRequestLocally(String groupId, QPTask qpTask) throws InterruptedException { - final Task task = new Task(); BasicResponse response; - if(groupId.equals(ClusterConfig.METADATA_GROUP_ID)){ + RaftService service; + if (groupId.equals(ClusterConfig.METADATA_GROUP_ID)) { response = MetaGroupNonQueryResponse.createEmptyInstance(groupId); - }else{ + MetadataRaftHolder metadataRaftHolder = (MetadataRaftHolder) server + .getMetadataHolder(); + service = (RaftService) metadataRaftHolder.getService(); + } else { response = DataGroupNonQueryResponse.createEmptyInstance(groupId); + DataPartitionRaftHolder dataRaftHolder = (DataPartitionRaftHolder) server + .getDataPartitionHolderMap().get(groupId); + service = (RaftService) dataRaftHolder.getService(); } + + /** set task **/ + final Task task = new Task(); ResponseClosure closure = new ResponseClosure(response, status -> { response.addResult(status.isOk()); if (!status.isOk()) { @@ -330,9 +340,6 @@ public class NonQueryExecutor extends ClusterQPExecutor { } catch (final CodecException e) { return false; } - DataPartitionRaftHolder dataRaftHolder = (DataPartitionRaftHolder) server - .getDataPartitionHolderMap().get(groupId); - RaftService service = (RaftService) dataRaftHolder.getService(); service.getNode().apply(task); qpTask.await(); return qpTask.getResponse().isSuccess();
