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;