You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/03/05 09:55:23 UTC
[25/50] [abbrv] incubator-ignite git commit: #ignite-51:
IgniteTxEntry implements Message: revert filterBytes to IgniteTxEntry,
working version.
#ignite-51: IgniteTxEntry implements Message: revert filterBytes to IgniteTxEntry, working version.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/362d073d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/362d073d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/362d073d
Branch: refs/heads/ignite-user-req
Commit: 362d073d42336f1d30e6f0e671d266ea62bf188c
Parents: 52be74a
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Mar 4 13:28:08 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Mar 4 13:28:08 2015 +0300
----------------------------------------------------------------------
.../cache/transactions/IgniteTxEntry.java | 31 +++++++++++++++-----
1 file changed, 23 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/362d073d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
index 0d0503f..3c02341 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
@@ -100,8 +100,12 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
/** Put filters. */
@GridToStringInclude
+ @GridDirectTransient
private CacheEntryPredicate[] filters;
+ /** Filter bytes. */
+ private byte[] filterBytes;
+
/** Flag indicating whether filters passed. Used for fast-commit transactions. */
@GridDirectTransient
private boolean filtersPassed;
@@ -647,6 +651,8 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
* @param filters Put filters.
*/
public void filters(CacheEntryPredicate[] filters) {
+ filterBytes = null;
+
this.filters = filters;
}
@@ -695,6 +701,11 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
if (transformClosBytes == null && entryProcessorsCol != null)
transformClosBytes = CU.marshal(ctx, entryProcessorsCol);
+ if (F.isEmptyOrNulls(filters))
+ filterBytes = null;
+ else if (filterBytes == null)
+ filterBytes = CU.marshal(ctx, filters);
+
if (transferExpiry)
transferExpiryPlc = expiryPlc != null && expiryPlc != this.ctx.expiry();
@@ -729,12 +740,16 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
if (transformClosBytes != null && entryProcessorsCol == null)
entryProcessorsCol = ctx.marshaller().unmarshal(transformClosBytes, clsLdr);
- if (filters == null)
- filters = CU.empty0();
- else {
- for (CacheEntryPredicate p : filters) {
- if (p != null)
- p.finishUnmarshal(ctx.cacheContext(cacheId), clsLdr);
+ if (filters == null && filterBytes != null) {
+ filters = ctx.marshaller().unmarshal(filterBytes, clsLdr);
+
+ if (filters == null)
+ filters = CU.empty0();
+ else {
+ for (CacheEntryPredicate p : filters) {
+ if (p != null)
+ p.finishUnmarshal(ctx.cacheContext(cacheId), clsLdr);
+ }
}
}
@@ -803,7 +818,7 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
writer.incrementState();
case 5:
- if (!writer.writeObjectArray("filters", filters, MessageCollectionItemType.MSG))
+ if (!writer.writeByteArray("filterBytes", filterBytes))
return false;
writer.incrementState();
@@ -892,7 +907,7 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message {
reader.incrementState();
case 5:
- filters = reader.readObjectArray("filters", MessageCollectionItemType.MSG, CacheEntryPredicate.class);
+ filterBytes = reader.readByteArray("filterBytes");
if (!reader.isLastRead())
return false;