http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/cache/CacheProjection.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index d7a2fde,0c8fa66..c0d99b9
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@@ -1363,9 -1419,28 +1358,25 @@@ public abstract class GridCacheMapEntry
  
              GridCacheValueBytes oldBytes = valueBytesUnlocked();
  
 -            boolean readThrough = false;
 -
 -            if (needVal && old == null &&
 -                (cctx.readThrough() && (op == GridCacheOperation.TRANSFORM || 
cctx.loadPreviousValue()))) {
 -                old = readThrough(null, key, false, CU.<K, V>empty(), subjId, 
taskName);
 +            if (needVal && old == null && (cctx.readThrough() && (op == 
GridCacheOperation.TRANSFORM || cctx.loadPreviousValue()))) {
 +                old = readThrough(null, key, false, subjId, taskName);
  
+                 long ttl = 0;
+                 long expireTime = 0;
+ 
+                 if (expiryPlc != null && old != null) {
+                     ttl = CU.toTtl(expiryPlc.getExpiryForCreation());
+ 
+                     if (ttl == CU.TTL_ZERO) {
+                         ttl = 1;
+                         expireTime = U.currentTimeMillis() - 1;
+                     }
+                     else if (ttl == CU.TTL_NOT_CHANGED)
+                         ttl = 0;
+                     else
+                         expireTime = CU.toExpireTime(ttl);
+                 }
+ 
                  // Detach value before index update.
                  if (cctx.portableEnabled())
                      old = 
(V)cctx.kernalContext().portable().detachPortable(old);
@@@ -1770,9 -1852,13 +1788,13 @@@
  
              GridCacheValueBytes oldBytes = valueBytesUnlocked();
  
+             boolean readThrough = false;
+ 
              if (needVal && old == null && (cctx.readThrough() && (op == 
GridCacheOperation.TRANSFORM || cctx.loadPreviousValue()))) {
 -                old = readThrough(null, key, false, CU.<K, V>empty(), subjId, 
taskName);
 +                old = readThrough(null, key, false, subjId, taskName);
  
+                 readThrough = true;
+ 
                  // Detach value before index update.
                  if (cctx.portableEnabled())
                      old = 
(V)cctx.kernalContext().portable().detachPortable(old);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
index b9286d8,c5fa33e..000b790
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
@@@ -429,7 -442,12 +433,7 @@@ public abstract class GridNearCacheAdap
      }
  
      /** {@inheritDoc} */
-     @Override public boolean evict(K key, @Nullable 
IgnitePredicate<CacheEntry<K, V>>[] filter) {
 -    @Override public boolean containsKey(K key, 
IgnitePredicate<Cache.Entry<K, V>> filter) {
 -        return super.containsKey(key, filter) || dht().containsKey(key, 
filter);
 -    }
 -
 -    /** {@inheritDoc} */
+     @Override public boolean evict(K key, @Nullable 
IgnitePredicate<Cache.Entry<K, V>>[] filter) {
          // Use unary 'and' to make sure that both sides execute.
          return super.evict(key, filter) & dht().evict(key, filter);
      }
@@@ -687,11 -705,11 +691,11 @@@
          }
  
          /** {@inheritDoc} */
-         @NotNull @Override public Iterator<CacheEntry<K, V>> iterator() {
+         @NotNull @Override public Iterator<Cache.Entry<K, V>> iterator() {
              return new EntryIterator(nearSet.iterator(),
-                 F.iterator0(dhtSet, false, new P1<CacheEntry<K, V>>() {
-                     @Override public boolean apply(CacheEntry<K, V> e) {
+                 F.iterator0(dhtSet, false, new P1<Cache.Entry<K, V>>() {
+                     @Override public boolean apply(Cache.Entry<K, V> e) {
 -                        return 
!GridNearCacheAdapter.super.containsKey(e.getKey(), null);
 +                        return 
!GridNearCacheAdapter.super.containsKey(e.getKey());
                      }
                  }));
          }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
index 6aec9cf,1c18112..31b8798
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
@@@ -70,8 -68,14 +71,7 @@@ public class GridNearGetRequest<K, V> e
      /** Topology version. */
      private long topVer;
  
 -    /** Filters. */
 -    @GridDirectTransient
 -    private IgnitePredicate<Cache.Entry<K, V>>[] filter;
 -
      /** Subject ID. */
-     @GridDirectVersion(1)
      private UUID subjId;
  
      /** Task name hash. */
@@@ -278,111 -286,80 +277,85 @@@
          if (!super.writeTo(buf))
              return false;
  
-         if (!commState.typeWritten) {
-             if (!commState.putByte(directType()))
+         if (!typeWritten) {
+             if (!writer.writeByte(null, directType()))
                  return false;
  
-             commState.typeWritten = true;
+             typeWritten = true;
          }
  
-         switch (commState.idx) {
+         switch (state) {
              case 3:
-                 if (!commState.putLong(accessTtl))
+                 if (!writer.writeLong("accessTtl", accessTtl))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 4:
-                 if (!commState.putGridUuid(futId))
+                 if (!writer.writeObjectArray("filterBytes", filterBytes, 
byte[].class))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 5:
-                 if (keyBytes != null) {
-                     if (commState.it == null) {
-                         if (!commState.putInt(keyBytes.size()))
-                             return false;
- 
-                         commState.it = keyBytes.entrySet().iterator();
-                     }
- 
-                     while (commState.it.hasNext() || commState.cur != NULL) {
-                         if (commState.cur == NULL)
-                             commState.cur = commState.it.next();
- 
-                         Map.Entry<byte[], Boolean> e = (Map.Entry<byte[], 
Boolean>)commState.cur;
- 
-                         if (!commState.keyDone) {
-                             if (!commState.putByteArray(e.getKey()))
-                                 return false;
- 
-                             commState.keyDone = true;
-                         }
- 
-                         if (!commState.putBoolean(e.getValue()))
-                             return false;
- 
-                         commState.keyDone = false;
- 
-                         commState.cur = NULL;
-                     }
- 
-                     commState.it = null;
-                 } else {
-                     if (!commState.putInt(-1))
-                         return false;
-                 }
+                 if (!writer.writeIgniteUuid("futId", futId))
+                     return false;
  
-                 commState.idx++;
+                 state++;
  
              case 6:
-                 if (!commState.putGridUuid(miniId))
+                 if (!writer.writeMap("keyBytes", keyBytes, byte[].class, 
boolean.class))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 7:
-                 if (!commState.putBoolean(readThrough))
+                 if (!writer.writeIgniteUuid("miniId", miniId))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 8:
-                 if (!commState.putBoolean(reload))
+                 if (!writer.writeBoolean("readThrough", readThrough))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 9:
-                 if (!commState.putLong(topVer))
+                 if (!writer.writeBoolean("reload", reload))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 10:
-                 if (!commState.putCacheVersion(ver))
+                 if (!writer.writeUuid("subjId", subjId))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 11:
-                 if (!commState.putUuid(subjId))
+                 if (!writer.writeInt("taskNameHash", taskNameHash))
                      return false;
  
-                 commState.idx++;
+                 state++;
  
              case 12:
-                 if (!commState.putInt(taskNameHash))
+                 if (!writer.writeLong("topVer", topVer))
                      return false;
  
-                 commState.idx++;
+                 state++;
+ 
+             case 13:
+                 if (!writer.writeMessage("ver", ver))
+                     return false;
+ 
+                 state++;
  
 +            case 13:
 +                if (!commState.putBoolean(skipVals))
 +                    return false;
 +
 +                commState.idx++;
          }
  
          return true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTransactionalCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 1206284,9f1e5d1..6763f54
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@@ -1722,9 -1743,9 +1726,9 @@@ public abstract class IgniteTxLocalAdap
                  }
              }
              else {
 -                assert optimistic() || readCommitted() || groupLock();
 +                assert optimistic() || readCommitted() || groupLock() || 
skipVals;
  
-                 final Collection<K> redos = new LinkedList<>();
+                 final Collection<K> redos = new ArrayList<>();
  
                  if (!missed.isEmpty()) {
                      if (!readCommitted())

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePreloadingEvictionsSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheQueryInternalKeysSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/81b19c4d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtEvictionNearReadersSelfTest.java
----------------------------------------------------------------------

Reply via email to