You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2017/05/17 14:01:43 UTC
[9/9] ignite git commit: Fixed serialization problem.
Fixed serialization problem.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1455e532
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1455e532
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1455e532
Branch: refs/heads/ignite-5054-splitter-2
Commit: 1455e5327f1fa63ef485a104cd0630b641829c49
Parents: 1acf0b7
Author: devozerov <vo...@gridgain.com>
Authored: Wed May 17 17:01:28 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Wed May 17 17:01:28 2017 +0300
----------------------------------------------------------------------
.../communication/GridIoMessageFactory.java | 4 +-
.../cache/transactions/TxDeadlock.java | 7 +-
.../IgniteCacheObjectProcessorImpl.java | 6 +-
.../processors/cache/query/QueryTable.java | 89 +++++++++++++++++++-
.../h2/twostep/msg/GridH2QueryRequest.java | 6 +-
.../twostep/msg/GridH2ValueMessageFactory.java | 4 +
6 files changed, 102 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/1455e532/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index 17e4a01..fa1a3e2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -178,6 +178,8 @@ public class GridIoMessageFactory implements MessageFactory {
Message msg = null;
switch (type) {
+ // -54 is reserved for SQL.
+
case -53:
msg = new SchemaOperationStatusMessage();
@@ -875,7 +877,7 @@ public class GridIoMessageFactory implements MessageFactory {
// [-3..119] [124..127] [-23..-27] [-36..-47]- this
// [120..123] - DR
- // [-4..-22, -30..-35] - SQL
+ // [-4..-22, -30..-36] - SQL
default:
if (ext != null) {
for (MessageFactory factory : ext) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1455e532/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlock.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlock.java
index 97db698..c3c992f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlock.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/TxDeadlock.java
@@ -22,6 +22,7 @@ import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.apache.ignite.internal.processors.cache.CacheObjectContext;
+import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.typedef.T2;
@@ -133,15 +134,15 @@ public class TxDeadlock {
IgniteTxKey txKey = e.getKey();
try {
- CacheObjectContext objCtx = ctx.cacheObjectContext(txKey.cacheId());
+ GridCacheContext<?, ?> cctx = ctx.cacheContext(txKey.cacheId());
- Object val = txKey.key().value(objCtx, true);
+ Object val = txKey.key().value(cctx.cacheObjectContext(), true);
sb.append(e.getValue())
.append(" [key=")
.append(val)
.append(", cache=")
- .append(objCtx.cacheName())
+ .append(cctx.name())
.append("]\n");
}
catch (Exception ex) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1455e532/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
index a8595fb..57ed7c5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
@@ -261,16 +261,16 @@ public class IgniteCacheObjectProcessorImpl extends GridProcessorAdapter impleme
}
/**
- * @param ctx Cache objects context.
+ * @param coCtx Cache objects context.
* @param cctx Cache context.
* @param obj Object.
* @return Object partition.
*/
- protected final int partition(CacheObjectContext ctx, @Nullable GridCacheContext cctx, Object obj) {
+ protected final int partition(CacheObjectContext coCtx, @Nullable GridCacheContext cctx, Object obj) {
try {
return cctx != null ?
cctx.affinity().partition(obj, false) :
- ctx.kernalContext().affinity().partition0(ctx.cacheName(), obj, null);
+ coCtx.kernalContext().affinity().partition0(coCtx.cacheName(), obj, null);
}
catch (IgniteCheckedException e) {
U.error(log, "Failed to get partition", e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1455e532/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java
index 81a6446..54f5f03 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/cache/query/QueryTable.java
@@ -19,21 +19,31 @@ package org.apache.ignite.internal.processors.cache.query;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.plugin.extensions.communication.Message;
+import org.apache.ignite.plugin.extensions.communication.MessageReader;
+import org.apache.ignite.plugin.extensions.communication.MessageWriter;
-import java.io.Serializable;
+import java.nio.ByteBuffer;
/**
* Query table descriptor.
*/
-public class QueryTable implements Serializable {
+public class QueryTable implements Message {
/** */
private static final long serialVersionUID = 0L;
/** Schema. */
- private final String schema;
+ private String schema;
/** Table. */
- private final String tbl;
+ private String tbl;
+
+ /**
+ * Defalt constructor.
+ */
+ public QueryTable() {
+ // No-op.
+ }
/**
* Constructor.
@@ -61,6 +71,77 @@ public class QueryTable implements Serializable {
}
/** {@inheritDoc} */
+ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
+ writer.setBuffer(buf);
+
+ if (!writer.isHeaderWritten()) {
+ if (!writer.writeHeader(directType(), fieldsCount()))
+ return false;
+
+ writer.onHeaderWritten();
+ }
+
+ switch (writer.state()) {
+ case 0:
+ if (!writer.writeString("schema", schema))
+ return false;
+
+ writer.incrementState();
+
+ case 1:
+ if (!writer.writeString("tbl", tbl))
+ return false;
+
+ writer.incrementState();
+ }
+
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
+ reader.setBuffer(buf);
+
+ if (!reader.beforeMessageRead())
+ return false;
+
+ switch (reader.state()) {
+ case 0:
+ schema = reader.readString("schema");
+
+ if (!reader.isLastRead())
+ return false;
+
+ reader.incrementState();
+
+ case 1:
+ tbl = reader.readString("tbl");
+
+ if (!reader.isLastRead())
+ return false;
+
+ reader.incrementState();
+ }
+
+ return reader.afterMessageRead(QueryTable.class);
+ }
+
+ /** {@inheritDoc} */
+ @Override public short directType() {
+ return -54;
+ }
+
+ /** {@inheritDoc} */
+ @Override public byte fieldsCount() {
+ return 2;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onAckReceived() {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
@Override public int hashCode() {
return 31 * (schema != null ? schema.hashCode() : 0) + (tbl != null ? tbl.hashCode() : 0);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1455e532/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
index 7ffb6bc..beb1ae2 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2QueryRequest.java
@@ -111,7 +111,7 @@ public class GridH2QueryRequest implements Message, GridCacheQueryMarshallable {
/** */
@GridToStringInclude
- @GridDirectCollection(QueryTable.class)
+ @GridDirectCollection(Message.class)
private Collection<QueryTable> tbls;
/** */
@@ -435,7 +435,7 @@ public class GridH2QueryRequest implements Message, GridCacheQueryMarshallable {
writer.incrementState();
case 7:
- if (!writer.writeCollection("tbls", tbls, MessageCollectionItemType.STRING))
+ if (!writer.writeCollection("tbls", tbls, MessageCollectionItemType.MSG))
return false;
writer.incrementState();
@@ -528,7 +528,7 @@ public class GridH2QueryRequest implements Message, GridCacheQueryMarshallable {
reader.incrementState();
case 7:
- tbls = reader.readCollection("tbls", MessageCollectionItemType.STRING);
+ tbls = reader.readCollection("tbls", MessageCollectionItemType.MSG);
if (!reader.isLastRead())
return false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/1455e532/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java
index 3a825f7..18b1afb 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/msg/GridH2ValueMessageFactory.java
@@ -21,6 +21,7 @@ import java.util.Collection;
import java.util.Iterator;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.processors.cache.query.QueryTable;
import org.apache.ignite.internal.processors.query.h2.opt.GridH2ValueCacheObject;
import org.apache.ignite.plugin.extensions.communication.Message;
import org.apache.ignite.plugin.extensions.communication.MessageFactory;
@@ -108,6 +109,9 @@ public class GridH2ValueMessageFactory implements MessageFactory {
case -35:
return new GridH2RowRangeBounds();
+
+ case -54:
+ return new QueryTable();
}
return null;