http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxResponse.java
index 0168398..a5cb790 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheOptimisticCheckPreparedTxResponse.java
@@ -28,7 +28,7 @@ import java.nio.*;
 /**
  * Check prepared transactions response.
  */
-public class GridCacheOptimisticCheckPreparedTxResponse<K, V> extends 
GridDistributedBaseMessage<K, V> {
+public class GridCacheOptimisticCheckPreparedTxResponse extends 
GridDistributedBaseMessage {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java
index b0aa291..8091adf 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java
@@ -31,14 +31,14 @@ import java.util.*;
 /**
  *
  */
-public class GridCacheTtlUpdateRequest<K, V> extends GridCacheMessage<K, V> {
+public class GridCacheTtlUpdateRequest extends GridCacheMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Entries keys. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<K> keys;
+    private List<KeyCacheObject> keys;
 
     /** Keys bytes. */
     @GridDirectCollection(byte[].class)
@@ -51,7 +51,7 @@ public class GridCacheTtlUpdateRequest<K, V> extends 
GridCacheMessage<K, V> {
     /** Near entries keys. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<K> nearKeys;
+    private List<KeyCacheObject> nearKeys;
 
     /** Near entries bytes. */
     @GridDirectCollection(byte[].class)
@@ -134,7 +134,7 @@ public class GridCacheTtlUpdateRequest<K, V> extends 
GridCacheMessage<K, V> {
     /**
      * @return Keys.
      */
-    public List<K> keys() {
+    public List<KeyCacheObject> keys() {
         return keys;
     }
 
@@ -158,7 +158,7 @@ public class GridCacheTtlUpdateRequest<K, V> extends 
GridCacheMessage<K, V> {
     /**
      * @return Keys for near cache.
      */
-    public List<K> nearKeys() {
+    public List<KeyCacheObject> nearKeys() {
         return nearKeys;
     }
 
@@ -170,7 +170,7 @@ public class GridCacheTtlUpdateRequest<K, V> extends 
GridCacheMessage<K, V> {
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr)
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr)
         throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
index a7d5819..6858a8e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedBaseMessage.java
@@ -33,7 +33,7 @@ import java.util.*;
 /**
  * Base for all messages in replicated cache.
  */
-public abstract class GridDistributedBaseMessage<K, V> extends 
GridCacheMessage<K, V> implements GridCacheDeployable,
+public abstract class GridDistributedBaseMessage extends GridCacheMessage 
implements GridCacheDeployable,
     GridCacheVersionable {
     /** */
     private static final long serialVersionUID = 0L;
@@ -49,7 +49,7 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
      */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<GridCacheMvccCandidate<K>>[] candsByIdx;
+    private Collection<GridCacheMvccCandidate>[] candsByIdx;
 
     /** */
     @GridToStringExclude
@@ -58,7 +58,7 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
     /** Collections of local lock candidates. */
     @GridToStringInclude
     @GridDirectTransient
-    private Map<K, Collection<GridCacheMvccCandidate<K>>> candsByKey;
+    private Map<KeyCacheObject, Collection<GridCacheMvccCandidate>> candsByKey;
 
     /** Collections of local lock candidates in serialized form. */
     @GridToStringExclude
@@ -109,7 +109,7 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (candsByIdx != null)
@@ -117,7 +117,7 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
 
         if (candsByKey != null) {
             if (ctx.deploymentEnabled()) {
-                for (K key : candsByKey.keySet())
+                for (KeyCacheObject key : candsByKey.keySet())
                     prepareObject(key, ctx);
             }
 
@@ -126,7 +126,7 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (candsByIdxBytes != null)
@@ -179,7 +179,7 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
      * @param candsByIdx List of candidates for that key.
      */
     @SuppressWarnings({"unchecked"})
-    public void candidatesByIndex(int idx, 
Collection<GridCacheMvccCandidate<K>> candsByIdx) {
+    public void candidatesByIndex(int idx, Collection<GridCacheMvccCandidate> 
candsByIdx) {
         assert idx < cnt;
 
         // If nothing to add.
@@ -196,15 +196,16 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
      * @param idx Key index.
      * @return Candidates for given key.
      */
-    public Collection<GridCacheMvccCandidate<K>> candidatesByIndex(int idx) {
-        return candsByIdx == null || candsByIdx[idx] == null ? 
Collections.<GridCacheMvccCandidate<K>>emptyList() : candsByIdx[idx];
+    public Collection<GridCacheMvccCandidate> candidatesByIndex(int idx) {
+        return candsByIdx == null ||
+            candsByIdx[idx] == null ? 
Collections.<GridCacheMvccCandidate>emptyList() : candsByIdx[idx];
     }
 
     /**
      * @param key Candidates key.
      * @param candsByKey Collection of local candidates.
      */
-    public void candidatesByKey(K key, Collection<GridCacheMvccCandidate<K>> 
candsByKey) {
+    public void candidatesByKey(KeyCacheObject key, 
Collection<GridCacheMvccCandidate> candsByKey) {
         if (this.candsByKey == null)
             this.candsByKey = new HashMap<>(1, 1.0f);
 
@@ -216,7 +217,7 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
      * @param key Candidates key.
      * @return Collection of lock candidates at given index.
      */
-    @Nullable public Collection<GridCacheMvccCandidate<K>> candidatesByKey(K 
key) {
+    @Nullable public Collection<GridCacheMvccCandidate> 
candidatesByKey(KeyCacheObject key) {
         assert key != null;
 
         if (candsByKey == null)
@@ -228,8 +229,9 @@ public abstract class GridDistributedBaseMessage<K, V> 
extends GridCacheMessage<
     /**
      * @return Map of candidates.
      */
-    public Map<K, Collection<GridCacheMvccCandidate<K>>> candidatesByKey() {
-        return candsByKey == null ? Collections.<K, 
Collection<GridCacheMvccCandidate<K>>>emptyMap() : candsByKey;
+    public Map<KeyCacheObject, Collection<GridCacheMvccCandidate>> 
candidatesByKey() {
+        return candsByKey == null ?
+            Collections.<KeyCacheObject, 
Collection<GridCacheMvccCandidate>>emptyMap() : candsByKey;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
index 576941f..e51b4b5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
@@ -35,7 +35,7 @@ import java.util.*;
 /**
  * Lock request message.
  */
-public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage<K, V> {
+public class GridDistributedLockRequest extends GridDistributedBaseMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -72,7 +72,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
 
     /** Keys. */
     @GridDirectTransient
-    private List<K> keys;
+    private List<KeyCacheObject> keys;
 
     /** Array indicating whether value should be returned for a key. */
     @GridToStringInclude
@@ -258,11 +258,11 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
      * @throws IgniteCheckedException If failed.
      */
     public void addKeyBytes(
-        K key,
+        KeyCacheObject key,
         @Nullable byte[] keyBytes,
         boolean retVal,
-        @Nullable Collection<GridCacheMvccCandidate<K>> cands,
-        GridCacheContext<K, V> ctx
+        @Nullable Collection<GridCacheMvccCandidate> cands,
+        GridCacheContext ctx
     ) throws IgniteCheckedException {
         if (ctx.deploymentEnabled())
             prepareObject(key, ctx.shared());
@@ -289,7 +289,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
     /**
      * @return Unmarshalled keys.
      */
-    public List<K> keys() {
+    public List<KeyCacheObject> keys() {
         return keys;
     }
 
@@ -323,7 +323,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (grpLockKey != null && grpLockKeyBytes == null) {
@@ -335,7 +335,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (keys == null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
index ee993eb..551a239 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
@@ -35,7 +35,7 @@ import java.util.*;
 /**
  * Lock response message.
  */
-public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessage<K, V> {
+public class GridDistributedLockResponse extends GridDistributedBaseMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -56,7 +56,7 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
     /** Values. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<V> vals;
+    private List<CacheObject> vals;
 
     /**
      * Empty constructor (required by {@link Externalizable}).
@@ -158,9 +158,9 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
     public boolean isCurrentlyLocked(int idx) {
         assert idx >= 0;
 
-        Collection<GridCacheMvccCandidate<K>> cands = candidatesByIndex(idx);
+        Collection<GridCacheMvccCandidate> cands = candidatesByIndex(idx);
 
-        for (GridCacheMvccCandidate<K> cand : cands)
+        for (GridCacheMvccCandidate cand : cands)
             if (cand.owner())
                 return true;
 
@@ -173,7 +173,7 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
      * @param committedVers Committed versions relative to lock version.
      * @param rolledbackVers Rolled back versions relative to lock version.
      */
-    public void setCandidates(int idx, Collection<GridCacheMvccCandidate<K>> 
cands,
+    public void setCandidates(int idx, Collection<GridCacheMvccCandidate> 
cands,
         Collection<GridCacheVersion> committedVers, 
Collection<GridCacheVersion> rolledbackVers) {
         assert idx >= 0;
 
@@ -204,22 +204,24 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
      * @param ctx Context.
      * @throws IgniteCheckedException If failed.
      */
-    public void addValueBytes(V val, @Nullable byte[] valBytes, 
GridCacheContext<K, V> ctx) throws IgniteCheckedException {
+    public void addValueBytes(CacheObject val, @Nullable byte[] valBytes, 
GridCacheContext ctx)
+        throws IgniteCheckedException {
         if (ctx.deploymentEnabled())
             prepareObject(val, ctx.shared());
 
-        GridCacheValueBytes vb = null;
-
-        if (val != null) {
-            vb = val instanceof byte[] ? GridCacheValueBytes.plain(val) : 
valBytes != null ?
-                GridCacheValueBytes.marshaled(valBytes) : null;
-        }
-        else if (valBytes != null)
-            vb = GridCacheValueBytes.marshaled(valBytes);
-
-        this.valBytes.add(vb);
-
-        vals.add(val);
+// TODO IGNITE-51.
+//        GridCacheValueBytes vb = null;
+//
+//        if (val != null) {
+//            vb = val instanceof byte[] ? GridCacheValueBytes.plain(val) : 
valBytes != null ?
+//                GridCacheValueBytes.marshaled(valBytes) : null;
+//        }
+//        else if (valBytes != null)
+//            vb = GridCacheValueBytes.marshaled(valBytes);
+//
+//        this.valBytes.add(vb);
+//
+//        vals.add(val);
     }
 
     /**
@@ -233,21 +235,22 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
      * @param idx Index.
      * @return Value for given index.
      */
-    @Nullable public V value(int idx) {
+    @Nullable public CacheObject value(int idx) {
         if (!F.isEmpty(vals)) {
-            V res = vals.get(idx);
+            CacheObject res = vals.get(idx);
 
             if (res != null)
                 return res;
         }
 
         // If there was no value in values collection, then it could be in 
value bytes collection in case of byte[].
-        if (!F.isEmpty(valBytes)) {
-            GridCacheValueBytes res = valBytes.get(idx);
-
-            if (res != null && res.isPlain())
-                return (V)res.get();
-        }
+// TODO IGNITE-51.
+//        if (!F.isEmpty(valBytes)) {
+//            GridCacheValueBytes res = valBytes.get(idx);
+//
+//            if (res != null && res.isPlain())
+//                return (V)res.get();
+//        }
 
         // Value is not found in both value and value bytes collections.
         return null;
@@ -255,7 +258,7 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (F.isEmpty(valBytes) && !F.isEmpty(vals))
@@ -266,7 +269,7 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (F.isEmpty(vals) && !F.isEmpty(valBytes))

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
index 1f3c6f4..5b74d29 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
@@ -35,7 +35,7 @@ import java.util.*;
 /**
  * Transaction completion message.
  */
-public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMessage<K, V> {
+public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage 
{
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -226,7 +226,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (grpLockKey != null && grpLockKeyBytes == null) {
@@ -238,7 +238,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (grpLockKeyBytes != null && grpLockKey == null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
index 8d21c0e..9e08038 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
@@ -29,7 +29,7 @@ import java.nio.*;
 /**
  * Transaction finish response.
  */
-public class GridDistributedTxFinishResponse<K, V> extends GridCacheMessage<K, 
V> {
+public class GridDistributedTxFinishResponse extends GridCacheMessage {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
index 2de6088..39cd6b7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
@@ -36,7 +36,7 @@ import java.util.*;
  * Transaction prepare request for optimistic and eventually consistent
  * transactions.
  */
-public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMessage<K, V> {
+public class GridDistributedTxPrepareRequest extends 
GridDistributedBaseMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -67,7 +67,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
     /** Transaction read set. */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<IgniteTxEntry<K, V>> reads;
+    private Collection<IgniteTxEntry> reads;
 
     /** */
     @GridDirectCollection(byte[].class)
@@ -76,7 +76,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
     /** Transaction write entries. */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<IgniteTxEntry<K, V>> writes;
+    private Collection<IgniteTxEntry> writes;
 
     /** */
     @GridDirectCollection(byte[].class)
@@ -85,7 +85,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
     /** DHT versions to verify. */
     @GridToStringInclude
     @GridDirectTransient
-    private Map<IgniteTxKey<K>, GridCacheVersion> dhtVers;
+    private Map<IgniteTxKey, GridCacheVersion> dhtVers;
 
     /** Serialized map. */
     @GridToStringExclude
@@ -136,9 +136,9 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
      * @param onePhaseCommit One phase commit flag.
      */
     public GridDistributedTxPrepareRequest(
-        IgniteInternalTx<K, V> tx,
-        @Nullable Collection<IgniteTxEntry<K, V>> reads,
-        Collection<IgniteTxEntry<K, V>> writes,
+        IgniteInternalTx tx,
+        @Nullable Collection<IgniteTxEntry> reads,
+        Collection<IgniteTxEntry> writes,
         IgniteTxKey grpLockKey,
         boolean partLock,
         Map<UUID, Collection<UUID>> txNodes,
@@ -183,7 +183,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
      * @param key Key for which version is verified.
      * @param dhtVer DHT version to check.
      */
-    public void addDhtVersion(IgniteTxKey<K> key, @Nullable GridCacheVersion 
dhtVer) {
+    public void addDhtVersion(IgniteTxKey key, @Nullable GridCacheVersion 
dhtVer) {
         if (dhtVers == null)
             dhtVers = new HashMap<>();
 
@@ -193,8 +193,8 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
     /**
      * @return Map of versions to be verified.
      */
-    public Map<IgniteTxKey<K>, GridCacheVersion> dhtVersions() {
-        return dhtVers == null ? Collections.<IgniteTxKey<K>, 
GridCacheVersion>emptyMap() : dhtVers;
+    public Map<IgniteTxKey, GridCacheVersion> dhtVersions() {
+        return dhtVers == null ? Collections.<IgniteTxKey, 
GridCacheVersion>emptyMap() : dhtVers;
     }
 
     /**
@@ -238,28 +238,28 @@ public class GridDistributedTxPrepareRequest<K, V> 
extends GridDistributedBaseMe
     /**
      * @return Read set.
      */
-    public Collection<IgniteTxEntry<K, V>> reads() {
+    public Collection<IgniteTxEntry> reads() {
         return reads;
     }
 
     /**
      * @return Write entries.
      */
-    public Collection<IgniteTxEntry<K, V>> writes() {
+    public Collection<IgniteTxEntry> writes() {
         return writes;
     }
 
     /**
      * @param reads Reads.
      */
-    protected void reads(Collection<IgniteTxEntry<K, V>> reads) {
+    protected void reads(Collection<IgniteTxEntry> reads) {
         this.reads = reads;
     }
 
     /**
      * @param writes Writes.
      */
-    protected void writes(Collection<IgniteTxEntry<K, V>> writes) {
+    protected void writes(Collection<IgniteTxEntry> writes) {
         this.writes = writes;
     }
 
@@ -293,7 +293,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (writes != null) {
@@ -301,7 +301,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
 
             writesBytes = new ArrayList<>(writes.size());
 
-            for (IgniteTxEntry<K, V> e : writes)
+            for (IgniteTxEntry e : writes)
                 writesBytes.add(ctx.marshaller().marshal(e));
         }
 
@@ -310,7 +310,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
 
             readsBytes = new ArrayList<>(reads.size());
 
-            for (IgniteTxEntry<K, V> e : reads)
+            for (IgniteTxEntry e : reads)
                 readsBytes.add(ctx.marshaller().marshal(e));
         }
 
@@ -325,14 +325,14 @@ public class GridDistributedTxPrepareRequest<K, V> 
extends GridDistributedBaseMe
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (writesBytes != null) {
             writes = new ArrayList<>(writesBytes.size());
 
             for (byte[] arr : writesBytes)
-                writes.add(ctx.marshaller().<IgniteTxEntry<K, 
V>>unmarshal(arr, ldr));
+                writes.add(ctx.marshaller().<IgniteTxEntry>unmarshal(arr, 
ldr));
 
             unmarshalTx(writes, false, ctx, ldr);
         }
@@ -341,7 +341,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
             reads = new ArrayList<>(readsBytes.size());
 
             for (byte[] arr : readsBytes)
-                reads.add(ctx.marshaller().<IgniteTxEntry<K, V>>unmarshal(arr, 
ldr));
+                reads.add(ctx.marshaller().<IgniteTxEntry>unmarshal(arr, ldr));
 
             unmarshalTx(reads, false, ctx, ldr);
         }
@@ -362,14 +362,14 @@ public class GridDistributedTxPrepareRequest<K, V> 
extends GridDistributedBaseMe
      * @param col Set to write.
      * @throws IOException If write failed.
      */
-    private void writeCollection(ObjectOutput out, Collection<IgniteTxEntry<K, 
V>> col) throws IOException {
+    private void writeCollection(ObjectOutput out, Collection<IgniteTxEntry> 
col) throws IOException {
         boolean empty = F.isEmpty(col);
 
         if (!empty) {
             out.writeInt(col.size());
 
-            for (IgniteTxEntry<K, V> e : col) {
-                V val = e.value();
+            for (IgniteTxEntry e : col) {
+                CacheObject val = e.value();
                 boolean hasWriteVal = e.hasWriteValue();
                 boolean hasReadVal = e.hasReadValue();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
index c8576a1..c2e5459 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
@@ -33,14 +33,14 @@ import java.util.*;
 /**
  * Response to prepare request.
  */
-public class GridDistributedTxPrepareResponse<K, V> extends 
GridDistributedBaseMessage<K, V> {
+public class GridDistributedTxPrepareResponse extends 
GridDistributedBaseMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Collections of local lock candidates. */
     @GridToStringInclude
     @GridDirectTransient
-    private Map<K, Collection<GridCacheMvccCandidate<K>>> cands;
+    private Map<KeyCacheObject, Collection<GridCacheMvccCandidate>> cands;
 
     /** */
     private byte[] candsBytes;
@@ -101,18 +101,18 @@ public class GridDistributedTxPrepareResponse<K, V> 
extends GridDistributedBaseM
     /**
      * @param cands Candidates map to set.
      */
-    public void candidates(Map<K, Collection<GridCacheMvccCandidate<K>>> 
cands) {
+    public void candidates(Map<KeyCacheObject, 
Collection<GridCacheMvccCandidate>> cands) {
         this.cands = cands;
     }
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (candsBytes == null && cands != null) {
             if (ctx.deploymentEnabled()) {
-                for (K k : cands.keySet())
+                for (KeyCacheObject k : cands.keySet())
                     prepareObject(k, ctx);
             }
 
@@ -124,7 +124,7 @@ public class GridDistributedTxPrepareResponse<K, V> extends 
GridDistributedBaseM
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (candsBytes != null && cands == null)
@@ -139,7 +139,7 @@ public class GridDistributedTxPrepareResponse<K, V> extends 
GridDistributedBaseM
      * @param key Candidates key.
      * @return Collection of lock candidates at given index.
      */
-    @Nullable public Collection<GridCacheMvccCandidate<K>> candidatesForKey(K 
key) {
+    @Nullable public Collection<GridCacheMvccCandidate> 
candidatesForKey(KeyCacheObject key) {
         assert key != null;
 
         if (cands == null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
index e36947e..9758484 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
@@ -45,18 +45,18 @@ import static 
org.apache.ignite.transactions.TransactionState.*;
 /**
  * Transaction created by system implicitly on remote nodes.
  */
-public class GridDistributedTxRemoteAdapter<K, V> extends IgniteTxAdapter<K, V>
-    implements IgniteTxRemoteEx<K, V> {
+public class GridDistributedTxRemoteAdapter extends IgniteTxAdapter
+    implements IgniteTxRemoteEx {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Read set. */
     @GridToStringInclude
-    protected Map<IgniteTxKey<K>, IgniteTxEntry<K, V>> readMap;
+    protected Map<IgniteTxKey, IgniteTxEntry> readMap;
 
     /** Write map. */
     @GridToStringInclude
-    protected Map<IgniteTxKey<K>, IgniteTxEntry<K, V>> writeMap;
+    protected Map<IgniteTxKey, IgniteTxEntry> writeMap;
 
     /** Remote thread ID. */
     @GridToStringInclude
@@ -98,7 +98,7 @@ public class GridDistributedTxRemoteAdapter<K, V> extends 
IgniteTxAdapter<K, V>
      * @param taskNameHash Task name hash code.
      */
     public GridDistributedTxRemoteAdapter(
-        GridCacheSharedContext<K, V> ctx,
+        GridCacheSharedContext<?, ?> ctx,
         UUID nodeId,
         long rmtThreadId,
         GridCacheVersion xidVer,
@@ -165,7 +165,7 @@ public class GridDistributedTxRemoteAdapter<K, V> extends 
IgniteTxAdapter<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public boolean removed(IgniteTxKey<K> key) {
+    @Override public boolean removed(IgniteTxKey key) {
         IgniteTxEntry e = writeMap.get(key);
 
         return e != null && e.op() == DELETE;
@@ -177,12 +177,12 @@ public class GridDistributedTxRemoteAdapter<K, V> extends 
IgniteTxAdapter<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public Map<IgniteTxKey<K>, IgniteTxEntry<K, V>> writeMap() {
+    @Override public Map<IgniteTxKey, IgniteTxEntry> writeMap() {
         return writeMap;
     }
 
     /** {@inheritDoc} */
-    @Override public Map<IgniteTxKey<K>, IgniteTxEntry<K, V>> readMap() {
+    @Override public Map<IgniteTxKey, IgniteTxEntry> readMap() {
         return readMap;
     }
 
@@ -202,16 +202,20 @@ public class GridDistributedTxRemoteAdapter<K, V> extends 
IgniteTxAdapter<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public GridTuple<V> peek(GridCacheContext<K, V> cacheCtx, 
boolean failFast, K key,
-        IgnitePredicate<Cache.Entry<K, V>>[] filter) throws 
GridCacheFilterFailedException {
+    @Override public GridTuple<CacheObject> peek(GridCacheContext<?, ?> 
cacheCtx,
+        boolean failFast,
+        KeyCacheObject key,
+        IgnitePredicate<Cache.Entry<K, V>>[] filter)
+        throws GridCacheFilterFailedException
+    {
         assert false : "Method peek can only be called on user transaction: " 
+ this;
 
         throw new IllegalStateException("Method peek can only be called on 
user transaction: " + this);
     }
 
     /** {@inheritDoc} */
-    @Override public IgniteTxEntry<K, V> entry(IgniteTxKey<K> key) {
-        IgniteTxEntry<K, V> e = writeMap == null ? null : writeMap.get(key);
+    @Override public IgniteTxEntry entry(IgniteTxKey key) {
+        IgniteTxEntry e = writeMap == null ? null : writeMap.get(key);
 
         if (e == null)
             e = readMap == null ? null : readMap.get(key);
@@ -224,7 +228,7 @@ public class GridDistributedTxRemoteAdapter<K, V> extends 
IgniteTxAdapter<K, V>
      *
      * @param key key to be removed.
      */
-    public void clearEntry(IgniteTxKey<K> key) {
+    public void clearEntry(IgniteTxKey key) {
         readMap.remove(key);
         writeMap.remove(key);
     }
@@ -237,12 +241,12 @@ public class GridDistributedTxRemoteAdapter<K, V> extends 
IgniteTxAdapter<K, V>
     @Override public void doneRemote(GridCacheVersion baseVer, 
Collection<GridCacheVersion> committedVers,
         Collection<GridCacheVersion> rolledbackVers, 
Collection<GridCacheVersion> pendingVers) {
         if (readMap != null && !readMap.isEmpty()) {
-            for (IgniteTxEntry<K, V> txEntry : readMap.values())
+            for (IgniteTxEntry txEntry : readMap.values())
                 doneRemote(txEntry, baseVer, committedVers, rolledbackVers, 
pendingVers);
         }
 
         if (writeMap != null && !writeMap.isEmpty()) {
-            for (IgniteTxEntry<K, V> txEntry : writeMap.values())
+            for (IgniteTxEntry txEntry : writeMap.values())
                 doneRemote(txEntry, baseVer, committedVers, rolledbackVers, 
pendingVers);
         }
     }
@@ -256,11 +260,11 @@ public class GridDistributedTxRemoteAdapter<K, V> extends 
IgniteTxAdapter<K, V>
      * @param rolledbackVers Rolled back versions relative to base version.
      * @param pendingVers Pending versions.
      */
-    private void doneRemote(IgniteTxEntry<K, V> txEntry, GridCacheVersion 
baseVer,
+    private void doneRemote(IgniteTxEntry txEntry, GridCacheVersion baseVer,
         Collection<GridCacheVersion> committedVers, 
Collection<GridCacheVersion> rolledbackVers,
         Collection<GridCacheVersion> pendingVers) {
         while (true) {
-            GridDistributedCacheEntry<K, V> entry = 
(GridDistributedCacheEntry<K, V>)txEntry.cached();
+            GridDistributedCacheEntry entry = 
(GridDistributedCacheEntry)txEntry.cached();
 
             try {
                 // Handle explicit locks.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
index 694c30c..e9c2f93 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
@@ -31,7 +31,7 @@ import java.util.*;
 /**
  * Lock request message.
  */
-public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessage<K, V> {
+public class GridDistributedUnlockRequest extends GridDistributedBaseMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -41,7 +41,7 @@ public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessa
 
     /** Keys. */
     @GridDirectTransient
-    private List<K> keys;
+    private List<KeyCacheObject> keys;
 
     /**
      * Empty constructor required by {@link Externalizable}.
@@ -70,7 +70,7 @@ public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessa
     /**
      * @return Keys.
      */
-    public List<K> keys() {
+    public List<KeyCacheObject> keys() {
         return keys;
     }
 
@@ -80,7 +80,7 @@ public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessa
      * @param ctx Context.
      * @throws IgniteCheckedException If failed.
      */
-    public void addKey(K key, byte[] bytes, GridCacheContext<K, V> ctx) throws 
IgniteCheckedException {
+    public void addKey(KeyCacheObject key, byte[] bytes, GridCacheContext ctx) 
throws IgniteCheckedException {
         boolean depEnabled = ctx.deploymentEnabled();
 
         if (depEnabled)
@@ -99,7 +99,7 @@ public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessa
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (F.isEmpty(keyBytes) && !F.isEmpty(keys))
@@ -107,7 +107,7 @@ public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessa
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (keys == null && !F.isEmpty(keyBytes))

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
index 7a2d68c..6c4eace 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
@@ -26,7 +26,7 @@ import java.nio.*;
 /**
  * Affinity assignment request.
  */
-public class GridDhtAffinityAssignmentRequest<K, V> extends 
GridCacheMessage<K, V> {
+public class GridDhtAffinityAssignmentRequest extends GridCacheMessage {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
index ea797f8..1e54294 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
@@ -31,7 +31,7 @@ import java.util.*;
 /**
  * Affinity assignment response.
  */
-public class GridDhtAffinityAssignmentResponse<K, V> extends 
GridCacheMessage<K, V> {
+public class GridDhtAffinityAssignmentResponse extends GridCacheMessage {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -91,7 +91,7 @@ public class GridDhtAffinityAssignmentResponse<K, V> extends 
GridCacheMessage<K,
     /**
      * @param ctx Context.
      */
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (affAssignment != null)
@@ -99,7 +99,7 @@ public class GridDhtAffinityAssignmentResponse<K, V> extends 
GridCacheMessage<K,
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (affAssignmentBytes != null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
index 3022efa..5a299e0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
@@ -39,14 +39,14 @@ import java.util.*;
 /**
  * DHT lock request.
  */
-public class GridDhtLockRequest<K, V> extends GridDistributedLockRequest<K, V> 
{
+public class GridDhtLockRequest extends GridDistributedLockRequest {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Near keys. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<K> nearKeys;
+    private List<KeyCacheObject> nearKeys;
 
     /** Near keys to lock. */
     @GridToStringExclude
@@ -62,7 +62,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
     /** Owner mapped version, if any. */
     @GridToStringInclude
     @GridDirectTransient
-    private Map<K, GridCacheVersion> owned;
+    private Map<KeyCacheObject, GridCacheVersion> owned;
 
     /** Owner mapped version bytes. */
     private byte[] ownedBytes;
@@ -154,7 +154,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
         this.topVer = topVer;
 
         nearKeyBytes = nearCnt == 0 ? Collections.<byte[]>emptyList() : new 
ArrayList<byte[]>(nearCnt);
-        nearKeys = nearCnt == 0 ? Collections.<K>emptyList() : new 
ArrayList<K>(nearCnt);
+        nearKeys = nearCnt == 0 ? Collections.<KeyCacheObject>emptyList() : 
new ArrayList<KeyCacheObject>(nearCnt);
         invalidateEntries = new BitSet(dhtCnt == 0 ? nearCnt : dhtCnt);
 
         assert miniId != null;
@@ -213,7 +213,8 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
      * @param ctx Context.
      * @throws IgniteCheckedException If failed.
      */
-    public void addNearKey(K key, byte[] keyBytes, GridCacheSharedContext<K, 
V> ctx) throws IgniteCheckedException {
+    public void addNearKey(KeyCacheObject key, byte[] keyBytes, 
GridCacheSharedContext ctx)
+        throws IgniteCheckedException {
         if (ctx.deploymentEnabled())
             prepareObject(key, ctx);
 
@@ -226,8 +227,8 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
     /**
      * @return Near keys.
      */
-    public List<K> nearKeys() {
-        return nearKeys == null ? Collections.<K>emptyList() : nearKeys;
+    public List<KeyCacheObject> nearKeys() {
+        return nearKeys == null ? Collections.<KeyCacheObject>emptyList() : 
nearKeys;
     }
 
     /**
@@ -240,10 +241,10 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
      * @throws IgniteCheckedException If failed.
      */
     public void addDhtKey(
-        K key,
+        KeyCacheObject key,
         byte[] keyBytes,
         boolean invalidateEntry,
-        GridCacheContext<K, V> ctx
+        GridCacheContext ctx
     ) throws IgniteCheckedException {
         invalidateEntries.set(idx, invalidateEntry);
 
@@ -277,7 +278,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
      * @param keyBytes Key bytes.
      * @param ownerMapped Owner mapped version.
      */
-    public void owned(K key, byte[] keyBytes, GridCacheVersion ownerMapped) {
+    public void owned(KeyCacheObject key, byte[] keyBytes, GridCacheVersion 
ownerMapped) {
         if (owned == null)
             owned = new GridLeanMap<>(3);
 
@@ -288,7 +289,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
      * @param key Key.
      * @return Owner and its mapped versions.
      */
-    @Nullable public GridCacheVersion owned(K key) {
+    @Nullable public GridCacheVersion owned(KeyCacheObject key) {
         return owned == null ? null : owned.get(key);
     }
 
@@ -316,7 +317,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         assert F.isEmpty(nearKeys) || !F.isEmpty(nearKeyBytes);
@@ -326,7 +327,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (nearKeys == null && nearKeyBytes != null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
index 409dbb6..9a2bc00 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
@@ -36,14 +36,14 @@ import java.util.*;
 /**
  * DHT cache lock response.
  */
-public class GridDhtLockResponse<K, V> extends GridDistributedLockResponse<K, 
V> {
+public class GridDhtLockResponse extends GridDistributedLockResponse {
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Evicted readers. */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<IgniteTxKey<K>> nearEvicted;
+    private Collection<IgniteTxKey> nearEvicted;
 
     /** Evicted reader key bytes. */
     @GridDirectCollection(byte[].class)
@@ -59,7 +59,7 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
 
     @GridDirectTransient
     /** Preload entries. */
-    private List<GridCacheEntryInfo<K, V>> preloadEntries;
+    private List<GridCacheEntryInfo> preloadEntries;
 
     /** */
     @GridDirectCollection(byte[].class)
@@ -103,14 +103,14 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
     /**
      * @return Evicted readers.
      */
-    public Collection<IgniteTxKey<K>> nearEvicted() {
+    public Collection<IgniteTxKey> nearEvicted() {
         return nearEvicted;
     }
 
     /**
      * @param nearEvicted Evicted readers.
      */
-    public void nearEvicted(Collection<IgniteTxKey<K>> nearEvicted) {
+    public void nearEvicted(Collection<IgniteTxKey> nearEvicted) {
         this.nearEvicted = nearEvicted;
     }
 
@@ -147,7 +147,7 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
      *
      * @param info Info to add.
      */
-    public void addPreloadEntry(GridCacheEntryInfo<K, V> info) {
+    public void addPreloadEntry(GridCacheEntryInfo info) {
         if (preloadEntries == null)
             preloadEntries = new ArrayList<>();
 
@@ -159,13 +159,13 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
      *
      * @return Collection of preload entries.
      */
-    public Collection<GridCacheEntryInfo<K, V>> preloadEntries() {
-        return preloadEntries == null ? Collections.<GridCacheEntryInfo<K, 
V>>emptyList() : preloadEntries;
+    public Collection<GridCacheEntryInfo> preloadEntries() {
+        return preloadEntries == null ? 
Collections.<GridCacheEntryInfo>emptyList() : preloadEntries;
     }
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (nearEvictedBytes == null && nearEvicted != null)
@@ -182,7 +182,7 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (nearEvicted == null && nearEvictedBytes != null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index ff75d86..a115129 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -35,7 +35,7 @@ import java.util.*;
 /**
  * Near transaction finish request.
  */
-public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest<K, V> {
+public class GridDhtTxFinishRequest extends GridDistributedTxFinishRequest {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
index c2595c8..1fc65ee 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
@@ -29,7 +29,7 @@ import java.nio.*;
 /**
  * DHT transaction finish response.
  */
-public class GridDhtTxFinishResponse<K, V> extends 
GridDistributedTxFinishResponse<K, V> {
+public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
index c9fe865..feb5cfb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
@@ -37,7 +37,7 @@ import java.util.*;
 /**
  * DHT prepare request.
  */
-public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequest<K, V> {
+public class GridDhtTxPrepareRequest extends GridDistributedTxPrepareRequest {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -59,7 +59,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
     /** Near writes. */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<IgniteTxEntry<K, V>> nearWrites;
+    private Collection<IgniteTxEntry> nearWrites;
 
     /** Serialized near writes. */
     @GridDirectCollection(byte[].class)
@@ -68,7 +68,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
     /** Owned versions by key. */
     @GridToStringInclude
     @GridDirectTransient
-    private Map<IgniteTxKey<K>, GridCacheVersion> owned;
+    private Map<IgniteTxKey, GridCacheVersion> owned;
 
     /** Owned versions bytes. */
     private byte[] ownedBytes;
@@ -113,9 +113,9 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
         IgniteUuid futId,
         IgniteUuid miniId,
         long topVer,
-        GridDhtTxLocalAdapter<K, V> tx,
-        Collection<IgniteTxEntry<K, V>> dhtWrites,
-        Collection<IgniteTxEntry<K, V>> nearWrites,
+        GridDhtTxLocalAdapter tx,
+        Collection<IgniteTxEntry> dhtWrites,
+        Collection<IgniteTxEntry> nearWrites,
         IgniteTxKey grpLockKey,
         boolean partLock,
         Map<UUID, Collection<UUID>> txNodes,
@@ -186,8 +186,8 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
     /**
      * @return Near writes.
      */
-    public Collection<IgniteTxEntry<K, V>> nearWrites() {
-        return nearWrites == null ? Collections.<IgniteTxEntry<K, 
V>>emptyList() : nearWrites;
+    public Collection<IgniteTxEntry> nearWrites() {
+        return nearWrites == null ? Collections.<IgniteTxEntry>emptyList() : 
nearWrites;
     }
 
     /**
@@ -253,7 +253,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
      * @param key Key.
      * @param ownerMapped Owner mapped version.
      */
-    public void owned(IgniteTxKey<K> key, GridCacheVersion ownerMapped) {
+    public void owned(IgniteTxKey key, GridCacheVersion ownerMapped) {
         if (owned == null)
             owned = new GridLeanMap<>(3);
 
@@ -263,20 +263,20 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
     /**
      * @return Owned versions map.
      */
-    public Map<IgniteTxKey<K>, GridCacheVersion> owned() {
+    public Map<IgniteTxKey, GridCacheVersion> owned() {
         return owned;
     }
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (ownedBytes == null && owned != null) {
             ownedBytes = CU.marshal(ctx, owned);
 
             if (ctx.deploymentEnabled()) {
-                for (IgniteTxKey<K> k : owned.keySet())
+                for (IgniteTxKey k : owned.keySet())
                     prepareObject(k, ctx);
             }
         }
@@ -286,13 +286,13 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
 
             nearWritesBytes = new ArrayList<>(nearWrites.size());
 
-            for (IgniteTxEntry<K, V> e : nearWrites)
+            for (IgniteTxEntry e : nearWrites)
                 nearWritesBytes.add(ctx.marshaller().marshal(e));
         }
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (ownedBytes != null && owned == null)
@@ -302,7 +302,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
             nearWrites = new ArrayList<>(nearWritesBytes.size());
 
             for (byte[] arr : nearWritesBytes)
-                nearWrites.add(ctx.marshaller().<IgniteTxEntry<K, 
V>>unmarshal(arr, ldr));
+                nearWrites.add(ctx.marshaller().<IgniteTxEntry>unmarshal(arr, 
ldr));
 
             unmarshalTx(nearWrites, true, ctx, ldr);
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
index f85d5f8..49845c6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
@@ -35,14 +35,14 @@ import java.util.*;
 /**
  * DHT transaction prepare response.
  */
-public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResponse<K, V> {
+public class GridDhtTxPrepareResponse extends GridDistributedTxPrepareResponse 
{
     /** */
     private static final long serialVersionUID = 0L;
 
     /** Evicted readers. */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<IgniteTxKey<K>> nearEvicted;
+    private Collection<IgniteTxKey> nearEvicted;
 
     /** */
     @GridDirectCollection(byte[].class)
@@ -61,7 +61,7 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
 
     @GridDirectTransient
     /** Preload entries. */
-    private List<GridCacheEntryInfo<K, V>> preloadEntries;
+    private List<GridCacheEntryInfo> preloadEntries;
 
     /** */
     @GridDirectCollection(byte[].class)
@@ -108,14 +108,14 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
     /**
      * @return Evicted readers.
      */
-    public Collection<IgniteTxKey<K>> nearEvicted() {
+    public Collection<IgniteTxKey> nearEvicted() {
         return nearEvicted;
     }
 
     /**
      * @param nearEvicted Evicted readers.
      */
-    public void nearEvicted(Collection<IgniteTxKey<K>> nearEvicted) {
+    public void nearEvicted(Collection<IgniteTxKey> nearEvicted) {
         this.nearEvicted = nearEvicted;
     }
 
@@ -159,8 +159,8 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
      *
      * @return Collection of entry infos need to be preloaded.
      */
-    public Collection<GridCacheEntryInfo<K, V>> preloadEntries() {
-        return preloadEntries == null ? Collections.<GridCacheEntryInfo<K, 
V>>emptyList() : preloadEntries;
+    public Collection<GridCacheEntryInfo> preloadEntries() {
+        return preloadEntries == null ? 
Collections.<GridCacheEntryInfo>emptyList() : preloadEntries;
     }
 
     /**
@@ -168,7 +168,7 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
      *
      * @param info Info to add.
      */
-    public void addPreloadEntry(GridCacheEntryInfo<K, V> info) {
+    public void addPreloadEntry(GridCacheEntryInfo info) {
         assert info.cacheId() != 0;
 
         if (preloadEntries == null)
@@ -179,7 +179,7 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         if (nearEvictedBytes == null)
@@ -190,7 +190,7 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         // Unmarshal even if deployment is disabled, since we could get bytes 
initially.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
index a9d035f..f101ec2 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
@@ -31,7 +31,7 @@ import java.util.*;
 /**
  * DHT cache unlock request.
  */
-public class GridDhtUnlockRequest<K, V> extends 
GridDistributedUnlockRequest<K, V> {
+public class GridDhtUnlockRequest extends GridDistributedUnlockRequest {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -41,7 +41,7 @@ public class GridDhtUnlockRequest<K, V> extends 
GridDistributedUnlockRequest<K,
 
     /** */
     @GridDirectTransient
-    private List<K> nearKeys;
+    private List<KeyCacheObject> nearKeys;
 
     /**
      * Empty constructor required by {@link Externalizable}.
@@ -68,7 +68,7 @@ public class GridDhtUnlockRequest<K, V> extends 
GridDistributedUnlockRequest<K,
     /**
      * @return Near keys.
      */
-    public List<K> nearKeys() {
+    public List<KeyCacheObject> nearKeys() {
         return nearKeys;
     }
 
@@ -80,7 +80,8 @@ public class GridDhtUnlockRequest<K, V> extends 
GridDistributedUnlockRequest<K,
      * @param ctx Context.
      * @throws IgniteCheckedException If failed.
      */
-    public void addNearKey(K key, byte[] keyBytes, GridCacheSharedContext<K, 
V> ctx) throws IgniteCheckedException {
+    public void addNearKey(KeyCacheObject key, byte[] keyBytes, 
GridCacheSharedContext ctx)
+        throws IgniteCheckedException {
         if (ctx.deploymentEnabled())
             prepareObject(key, ctx);
 
@@ -91,7 +92,7 @@ public class GridDhtUnlockRequest<K, V> extends 
GridDistributedUnlockRequest<K,
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         if (nearKeyBytes != null)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index c408394..38aa6c9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -1723,7 +1723,7 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
 
                 if (dhtFut != null) {
                     if (updRes.sendToDht()) { // Send to backups even in case 
of remove-remove scenarios.
-                        GridCacheVersionConflictContext<K, V> ctx = 
updRes.conflictResolveResult();
+                        GridCacheVersionConflictContext<?, ?> ctx = 
updRes.conflictResolveResult();
 
                         long ttl = updRes.newTtl();
                         long expireTime = updRes.conflictExpireTime();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
index f8e60c0..575f07a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
@@ -30,7 +30,7 @@ import java.util.*;
 /**
  * Deferred dht atomic update response.
  */
-public class GridDhtAtomicDeferredUpdateResponse<K, V> extends 
GridCacheMessage<K, V> implements GridCacheDeployable {
+public class GridDhtAtomicDeferredUpdateResponse<K, V> extends 
GridCacheMessage implements GridCacheDeployable {
     /** */
     private static final long serialVersionUID = 0L;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
index 36428d4..2b6066d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
@@ -36,7 +36,7 @@ import java.util.*;
 /**
  * Lite dht cache backup update request.
  */
-public class GridDhtAtomicUpdateRequest<K, V> extends GridCacheMessage<K, V> 
implements GridCacheDeployable {
+public class GridDhtAtomicUpdateRequest extends GridCacheMessage implements 
GridCacheDeployable {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -58,7 +58,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
     /** Keys to update. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<K> keys;
+    private List<KeyCacheObject> keys;
 
     /** Key bytes. */
     @GridToStringInclude
@@ -68,7 +68,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
     /** Values to update. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<V> vals;
+    private List<CacheObject> vals;
 
     /** Value bytes. */
     @GridToStringInclude
@@ -97,7 +97,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
     /** Keys to update. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<K> nearKeys;
+    private List<KeyCacheObject> nearKeys;
 
     /** Key bytes. */
     @GridToStringInclude
@@ -107,7 +107,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
     /** Values to update. */
     @GridToStringInclude
     @GridDirectTransient
-    private List<V> nearVals;
+    private List<CacheObject> nearVals;
 
     /** Value bytes. */
     @GridToStringInclude
@@ -119,7 +119,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
 
     /** Entry processors. */
     @GridDirectTransient
-    private List<EntryProcessor<K, V, ?>> entryProcessors;
+    private List<EntryProcessor<Object, Object, Object>> entryProcessors;
 
     /** Entry processors bytes. */
     @GridDirectCollection(byte[].class)
@@ -127,7 +127,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
 
     /** Near entry processors. */
     @GridDirectTransient
-    private List<EntryProcessor<K, V, ?>> nearEntryProcessors;
+    private List<EntryProcessor<Object, Object, Object>> nearEntryProcessors;
 
     /** Near entry processors bytes. */
     @GridDirectCollection(byte[].class)
@@ -222,11 +222,11 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param conflictExpireTime Conflict expire time (optional).
      * @param conflictVer Conflict version (optional).
      */
-    public void addWriteValue(K key,
+    public void addWriteValue(KeyCacheObject key,
         @Nullable byte[] keyBytes,
-        @Nullable V val,
+        @Nullable CacheObject val,
         @Nullable byte[] valBytes,
-        EntryProcessor<K, V, ?> entryProcessor,
+        EntryProcessor<Object, Object, Object> entryProcessor,
         long ttl,
         long conflictExpireTime,
         @Nullable GridCacheVersion conflictVer) {
@@ -291,11 +291,11 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param ttl TTL.
      * @param expireTime Expire time.
      */
-    public void addNearWriteValue(K key,
+    public void addNearWriteValue(KeyCacheObject key,
         @Nullable byte[] keyBytes,
-        @Nullable V val,
+        @Nullable CacheObject val,
         @Nullable byte[] valBytes,
-        EntryProcessor<K, V, ?> entryProcessor,
+        EntryProcessor<Object, Object, Object> entryProcessor,
         long ttl,
         long expireTime)
     {
@@ -422,7 +422,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
     /**
      * @return Keys.
      */
-    public Collection<K> keys() {
+    public Collection<KeyCacheObject> keys() {
         return keys;
     }
 
@@ -430,7 +430,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param idx Key index.
      * @return Key.
      */
-    public K key(int idx) {
+    public KeyCacheObject key(int idx) {
         return keys.get(idx);
     }
 
@@ -438,7 +438,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param idx Near key index.
      * @return Key.
      */
-    public K nearKey(int idx) {
+    public KeyCacheObject nearKey(int idx) {
         return nearKeys.get(idx);
     }
 
@@ -462,20 +462,21 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param idx Key index.
      * @return Value.
      */
-    @Nullable public V value(int idx) {
+    @Nullable public CacheObject value(int idx) {
         if (vals != null) {
-            V val = vals.get(idx);
+            CacheObject val = vals.get(idx);
 
             if (val != null)
                 return val;
         }
 
-        if (valBytes != null) {
-            GridCacheValueBytes valBytes0 = valBytes.get(idx);
-
-            if (valBytes0 != null && valBytes0.isPlain())
-                return (V)valBytes0.get();
-        }
+// TODO IGNITE-51.
+//        if (valBytes != null) {
+//            GridCacheValueBytes valBytes0 = valBytes.get(idx);
+//
+//            if (valBytes0 != null && valBytes0.isPlain())
+//                return valBytes0.get();
+//        }
 
         return null;
     }
@@ -484,7 +485,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param idx Key index.
      * @return Entry processor.
      */
-    @Nullable public EntryProcessor<K, V, ?> entryProcessor(int idx) {
+    @Nullable public EntryProcessor<Object, Object, Object> entryProcessor(int 
idx) {
         return entryProcessors == null ? null : entryProcessors.get(idx);
     }
 
@@ -492,20 +493,21 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param idx Near key index.
      * @return Value.
      */
-    @Nullable public V nearValue(int idx) {
+    @Nullable public CacheObject nearValue(int idx) {
         if (nearVals != null) {
-            V val = nearVals.get(idx);
+            CacheObject val = nearVals.get(idx);
 
             if (val != null)
                 return val;
         }
 
-        if (nearValBytes != null) {
-            GridCacheValueBytes valBytes0 = nearValBytes.get(idx);
-
-            if (valBytes0 != null && valBytes0.isPlain())
-                return (V)valBytes0.get();
-        }
+// TODO IGNITE-51.
+//        if (nearValBytes != null) {
+//            GridCacheValueBytes valBytes0 = nearValBytes.get(idx);
+//
+//            if (valBytes0 != null && valBytes0.isPlain())
+//                return (V)valBytes0.get();
+//        }
 
         return null;
     }
@@ -514,7 +516,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
      * @param idx Key index.
      * @return Transform closure.
      */
-    @Nullable public EntryProcessor<K, V, ?> nearEntryProcessor(int idx) {
+    @Nullable public EntryProcessor<Object, Object, Object> 
nearEntryProcessor(int idx) {
         return nearEntryProcessors == null ? null : 
nearEntryProcessors.get(idx);
     }
 
@@ -627,7 +629,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         keyBytes = marshalCollection(keys, ctx);
@@ -647,7 +649,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         keys = unmarshalCollection(keyBytes, ctx, ldr);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
index c732be5..b632863 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
@@ -33,7 +33,7 @@ import java.util.*;
 /**
  * DHT atomic cache backup update response.
  */
-public class GridDhtAtomicUpdateResponse<K, V> extends GridCacheMessage<K, V> 
implements GridCacheDeployable {
+public class GridDhtAtomicUpdateResponse extends GridCacheMessage implements 
GridCacheDeployable {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -46,7 +46,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
     /** Failed keys. */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<K> failedKeys;
+    private Collection<KeyCacheObject> failedKeys;
 
     /** Serialized failed keys. */
     private byte[] failedKeysBytes;
@@ -61,7 +61,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
     /** Evicted readers. */
     @GridToStringInclude
     @GridDirectTransient
-    private Collection<K> nearEvicted;
+    private Collection<KeyCacheObject> nearEvicted;
 
     /** Evicted reader key bytes. */
     @GridDirectCollection(byte[].class)
@@ -105,7 +105,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
     /**
      * @return Failed keys.
      */
-    public Collection<K> failedKeys() {
+    public Collection<KeyCacheObject> failedKeys() {
         return failedKeys;
     }
 
@@ -115,7 +115,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
      * @param key Key to add.
      * @param e Error cause.
      */
-    public void addFailedKey(K key, Throwable e) {
+    public void addFailedKey(KeyCacheObject key, Throwable e) {
         if (failedKeys == null)
             failedKeys = new ArrayList<>();
 
@@ -130,7 +130,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
     /**
      * @return Evicted readers.
      */
-    public Collection<K> nearEvicted() {
+    public Collection<KeyCacheObject> nearEvicted() {
         return nearEvicted;
     }
 
@@ -140,7 +140,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
      * @param key Evicted key.
      * @param bytes Bytes of evicted key.
      */
-    public void addNearEvicted(K key, @Nullable byte[] bytes) {
+    public void addNearEvicted(KeyCacheObject key, @Nullable byte[] bytes) {
         if (nearEvicted == null)
             nearEvicted = new ArrayList<>();
 
@@ -156,7 +156,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         failedKeysBytes = ctx.marshaller().marshal(failedKeys);
@@ -167,7 +167,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         failedKeys = ctx.marshaller().unmarshal(failedKeysBytes, ldr);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b7ea910f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
index 7f11214..64122d1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
@@ -42,7 +42,7 @@ import static 
org.apache.ignite.internal.processors.cache.GridCacheOperation.*;
 /**
  * Lite DHT cache update request sent from near node to primary node.
  */
-public class GridNearAtomicUpdateRequest<K, V> extends GridCacheMessage<K, V> 
implements GridCacheDeployable {
+public class GridNearAtomicUpdateRequest extends GridCacheMessage implements 
GridCacheDeployable {
     /** */
     private static final long serialVersionUID = 0L;
 
@@ -74,7 +74,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
     /** Keys to update. */
     @GridDirectTransient
     @GridToStringInclude
-    private List<K> keys;
+    private List<KeyCacheObject> keys;
 
     /** Key bytes. */
     @GridDirectCollection(byte[].class)
@@ -117,7 +117,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
 
     /** Filter. */
     @GridDirectTransient
-    private IgnitePredicate<Cache.Entry<K, V>>[] filter;
+    private IgnitePredicate<Cache.Entry<Object, Object>>[] filter;
 
     /** Filter bytes. */
     private byte[][] filterBytes;
@@ -173,7 +173,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
         boolean forceTransformBackups,
         @Nullable ExpiryPolicy expiryPlc,
         @Nullable Object[] invokeArgs,
-        @Nullable IgnitePredicate<Cache.Entry<K, V>>[] filter,
+        @Nullable IgnitePredicate<Cache.Entry<Object, Object>>[] filter,
         @Nullable UUID subjId,
         int taskNameHash
     ) {
@@ -283,7 +283,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
     /**
      * @return Filter.
      */
-    @Nullable public IgnitePredicate<Cache.Entry<K, V>>[] filter() {
+    @Nullable public IgnitePredicate<Cache.Entry<Object, Object>>[] filter() {
         return filter;
     }
 
@@ -295,7 +295,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
      * @param conflictVer Conflict version (optional).
      * @param primary If given key is primary on this mapping.
      */
-    public void addUpdateEntry(K key,
+    public void addUpdateEntry(KeyCacheObject key,
         @Nullable Object val,
         long conflictTtl,
         long conflictExpireTime,
@@ -349,7 +349,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
     /**
      * @return Keys for this update request.
      */
-    public List<K> keys() {
+    public List<KeyCacheObject> keys() {
         return keys;
     }
 
@@ -379,10 +379,10 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
      * @return Value.
      */
     @SuppressWarnings("unchecked")
-    public V value(int idx) {
+    public CacheObject value(int idx) {
         assert op == UPDATE : op;
 
-        return (V)vals.get(idx);
+        return (CacheObject)vals.get(idx);
     }
 
     /**
@@ -390,10 +390,10 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
      * @return Entry processor.
      */
     @SuppressWarnings("unchecked")
-    public EntryProcessor<K, V, ?> entryProcessor(int idx) {
+    public EntryProcessor<Object, Object, Object> entryProcessor(int idx) {
         assert op == TRANSFORM : op;
 
-        return (EntryProcessor<K, V, ?>)vals.get(idx);
+        return (EntryProcessor<Object, Object, Object>)vals.get(idx);
     }
 
     /**
@@ -505,7 +505,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
 
     /** {@inheritDoc}
      * @param ctx*/
-    @Override public void prepareMarshal(GridCacheSharedContext<K, V> ctx) 
throws IgniteCheckedException {
+    @Override public void prepareMarshal(GridCacheSharedContext ctx) throws 
IgniteCheckedException {
         super.prepareMarshal(ctx);
 
         keyBytes = marshalCollection(keys, ctx);
@@ -518,7 +518,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
     }
 
     /** {@inheritDoc} */
-    @Override public void finishUnmarshal(GridCacheSharedContext<K, V> ctx, 
ClassLoader ldr) throws IgniteCheckedException {
+    @Override public void finishUnmarshal(GridCacheSharedContext ctx, 
ClassLoader ldr) throws IgniteCheckedException {
         super.finishUnmarshal(ctx, ldr);
 
         keys = unmarshalCollection(keyBytes, ctx, ldr);

Reply via email to