#ignite-51: IgniteTxEntry implements Message: not 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/b4f2f8f5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b4f2f8f5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b4f2f8f5 Branch: refs/heads/ignite-user-req Commit: b4f2f8f5e46edf65bcc3f3544d86e43582dae8eb Parents: 362d073 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Wed Mar 4 15:19:50 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Wed Mar 4 15:19:50 2015 +0300 ---------------------------------------------------------------------- .../cache/CacheEntrySerializablePredicate.java | 8 +++-- .../cache/transactions/IgniteTxEntry.java | 38 ++++++++------------ 2 files changed, 20 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b4f2f8f5/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java index 583882f..c538910 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java @@ -61,11 +61,13 @@ public class CacheEntrySerializablePredicate implements CacheEntryPredicate { /** {@inheritDoc} */ @Override public void finishUnmarshal(GridCacheContext ctx, ClassLoader ldr) throws IgniteCheckedException { - assert bytes != null; + assert p != null || bytes != null; - p = ctx.marshaller().unmarshal(bytes, ldr); + if (p == null) { + p = ctx.marshaller().unmarshal(bytes, ldr); - p.finishUnmarshal(ctx, ldr); + p.finishUnmarshal(ctx, ldr); + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b4f2f8f5/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 3c02341..48b7fb4 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,12 +100,8 @@ 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; @@ -651,8 +647,6 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message { * @param filters Put filters. */ public void filters(CacheEntryPredicate[] filters) { - filterBytes = null; - this.filters = filters; } @@ -701,11 +695,6 @@ 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(); @@ -740,16 +729,12 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message { if (transformClosBytes != null && entryProcessorsCol == null) entryProcessorsCol = ctx.marshaller().unmarshal(transformClosBytes, 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); - } + if (filters == null) + filters = CU.empty0(); + else { + for (CacheEntryPredicate p : filters) { + if (p != null) + p.finishUnmarshal(ctx.cacheContext(cacheId), clsLdr); } } @@ -818,7 +803,14 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message { writer.incrementState(); case 5: - if (!writer.writeByteArray("filterBytes", filterBytes)) + if (!F.isEmptyOrNulls(filters)) { + for (CacheEntryPredicate filter : filters) { + if (filter == null) { + System.out.println("TEST FAIL"); + } + } + } + if (!writer.writeObjectArray("filters", filters, MessageCollectionItemType.MSG)) return false; writer.incrementState(); @@ -907,7 +899,7 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message { reader.incrementState(); case 5: - filterBytes = reader.readByteArray("filterBytes"); + filters = reader.readObjectArray("filters", MessageCollectionItemType.MSG, CacheEntryPredicate.class); if (!reader.isLastRead()) return false;