This is an automated email from the ASF dual-hosted git repository.

bschuchardt pushed a commit to branch feature/GEODE-7175
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 7e16e9400a6d2dfbfa674a1df29286456677c3d1
Author: Bruce Schuchardt <[email protected]>
AuthorDate: Tue Sep 10 14:57:10 2019 -0700

    GEODE-7175 Convert toData/fromData in other modules to use new serializers
    
    use the serialization context's readObject/writeObject methods instead
    of the static methods in DataSerializer.
---
 .../internal/locator/QueueConnectionRequest.java   |  2 +-
 .../apache/geode/cache/query/internal/CqEntry.java |  9 +++----
 .../internal/CumulativeNonDistinctResults.java     |  8 +++---
 .../cache/query/internal/LinkedResultSet.java      |  9 +++----
 .../cache/query/internal/LinkedStructSet.java      |  9 +++----
 .../cache/query/internal/NWayMergeResults.java     |  8 +++---
 .../geode/cache/query/internal/ResultsBag.java     |  9 +++----
 .../query/internal/ResultsCollectionWrapper.java   |  9 +++----
 .../geode/cache/query/internal/ResultsSet.java     |  5 ++--
 .../cache/query/internal/SortedResultSet.java      |  9 +++----
 .../cache/query/internal/SortedStructSet.java      |  6 ++---
 .../geode/cache/query/internal/StructImpl.java     |  4 +--
 .../geode/cache/query/internal/StructSet.java      |  9 +++----
 .../distributed/internal/DistributionMessage.java  |  6 +++--
 .../geode/distributed/internal/StartupMessage.java |  4 +--
 .../internal/locks/DLockRemoteToken.java           |  6 ++---
 .../geode/internal/InternalDataSerializer.java     |  2 +-
 .../statalerts/GaugeThresholdDecoratorImpl.java    |  9 +++----
 .../statalerts/NumberThresholdDecoratorImpl.java   |  4 +--
 .../internal/cache/DistTXPrecommitMessage.java     |  4 +--
 .../internal/cache/DistributedPutAllOperation.java | 28 ++++++++++----------
 .../cache/DistributedRemoveAllOperation.java       | 26 ++++++++++---------
 .../geode/internal/cache/EntryEventImpl.java       | 30 +++++++++++-----------
 .../apache/geode/internal/cache/FilterProfile.java |  4 +--
 .../internal/cache/InitialImageOperation.java      | 28 ++++++++++----------
 .../cache/InvalidatePartitionedRegionMessage.java  |  3 +--
 .../geode/internal/cache/RegionEventImpl.java      |  4 +--
 .../geode/internal/cache/TXCommitMessage.java      | 15 ++++++-----
 .../apache/geode/internal/cache/TXEntryState.java  | 13 ++++++----
 .../geode/internal/cache/locks/TXLockIdImpl.java   |  5 ++--
 .../cache/partitioned/FetchEntryMessage.java       |  5 ++--
 .../internal/cache/partitioned/GetMessage.java     |  5 ++--
 .../partitioned/PRUpdateEntryVersionMessage.java   | 13 +++++-----
 .../cache/partitioned/PartitionMessage.java        | 10 ++++----
 .../PartitionMessageWithDirectReply.java           |  6 +++--
 .../cache/partitioned/PutAllPRMessage.java         |  9 ++++---
 .../internal/cache/partitioned/PutMessage.java     |  5 ++--
 .../cache/partitioned/RemoveAllPRMessage.java      |  9 ++++---
 .../internal/cache/partitioned/SizeMessage.java    |  5 ++--
 .../internal/cache/snapshot/SnapshotPacket.java    |  4 +--
 .../tier/sockets/ClientDataSerializerMessage.java  |  6 ++---
 .../tier/sockets/ClientInstantiatorMessage.java    |  6 ++---
 .../tier/sockets/ClientInterestMessageImpl.java    |  8 +++---
 .../cache/tier/sockets/HAEventWrapper.java         |  8 +++---
 .../cache/tier/sockets/ObjectPartList.java         |  8 +++---
 .../cache/tier/sockets/ObjectPartList651.java      |  8 +++---
 .../tier/sockets/SerializedObjectPartList.java     |  4 +--
 .../cache/tier/sockets/VersionedObjectList.java    | 25 ++++++++++--------
 .../geode/internal/cache/tx/DistTxEntryEvent.java  | 28 +++++++++++---------
 .../internal/cache/tx/RemoteDestroyMessage.java    |  5 ++--
 .../internal/cache/tx/RemoteOperationMessage.java  |  9 ++++---
 .../internal/cache/tx/RemotePutAllMessage.java     |  4 +--
 .../geode/internal/cache/tx/RemotePutMessage.java  |  5 ++--
 .../internal/cache/tx/RemoteRemoveAllMessage.java  |  5 ++--
 .../internal/cache/wan/GatewaySenderEventImpl.java | 23 +++++++++--------
 ...aySenderQueueEntrySynchronizationOperation.java |  8 +++---
 .../internal/JmxManagerLocatorResponse.java        |  4 +--
 .../internal/cli/functions/CliFunctionResult.java  | 12 ++++-----
 .../ResultsBagLimitBehaviourJUnitTest.java         |  4 +--
 .../lucene/internal/LuceneResultStructImpl.java    |  9 +++----
 .../lucene/internal/distributed/EntryScore.java    |  5 ++--
 .../distributed/LuceneFunctionContext.java         |  8 +++---
 .../lucene/internal/distributed/TopEntries.java    |  5 ++--
 .../internal/distributed/TopEntriesCollector.java  |  4 +--
 .../serialization/DSFIDSerializerImpl.java         |  4 +--
 .../internal/serialization/ObjectDeserializer.java |  2 +-
 .../internal/locator/wan/LocatorJoinMessage.java   |  9 +++----
 .../locator/wan/RemoteLocatorJoinRequest.java      |  5 ++--
 .../locator/wan/RemoteLocatorResponse.java         |  5 ++--
 69 files changed, 304 insertions(+), 290 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/locator/QueueConnectionRequest.java
 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/locator/QueueConnectionRequest.java
index bcac986..597b4fd 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/locator/QueueConnectionRequest.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/locator/QueueConnectionRequest.java
@@ -64,7 +64,7 @@ public class QueueConnectionRequest extends 
ServerLocationRequest {
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     super.toData(out, context);
-    DataSerializer.writeObject(proxyId, out);
+    context.getSerializer().writeObject(proxyId, out);
     DataSerializer.writePrimitiveInt(redundantCopies, out);
     SerializationHelper.writeServerLocationSet(this.excludedServers, out);
     out.writeBoolean(this.findDurable);
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CqEntry.java 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CqEntry.java
index 6f977e5..9e00ee8 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CqEntry.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CqEntry.java
@@ -19,7 +19,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
 import org.apache.geode.internal.serialization.DeserializationContext;
 import org.apache.geode.internal.serialization.SerializationContext;
@@ -94,8 +93,8 @@ public class CqEntry implements DataSerializableFixedID {
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.key = DataSerializer.readObject(in);
-    this.value = DataSerializer.readObject(in);
+    this.key = context.getDeserializer().readObject(in);
+    this.value = context.getDeserializer().readObject(in);
   }
 
 
@@ -107,8 +106,8 @@ public class CqEntry implements DataSerializableFixedID {
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.key, out);
-    DataSerializer.writeObject(this.value, out);
+    context.getSerializer().writeObject(this.key, out);
+    context.getSerializer().writeObject(this.value, out);
   }
 
   @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CumulativeNonDistinctResults.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CumulativeNonDistinctResults.java
index 7aa17c1..33d1dd8 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CumulativeNonDistinctResults.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CumulativeNonDistinctResults.java
@@ -281,7 +281,7 @@ public class CumulativeNonDistinctResults<E> implements 
SelectResults<E>, DataSe
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    ObjectType elementType = (ObjectType) DataSerializer.readObject(in);
+    ObjectType elementType = (ObjectType) 
context.getDeserializer().readObject(in);
     this.collectionType = new 
CollectionTypeImpl(CumulativeNonDistinctResults.class, elementType);
     boolean isStruct = elementType.isStructType();
 
@@ -293,7 +293,7 @@ public class CumulativeNonDistinctResults<E> implements 
SelectResults<E>, DataSe
         Object[] fields = DataSerializer.readObjectArray(in);
         this.data.add((E) new StructImpl((StructTypeImpl) elementType, 
fields));
       } else {
-        E element = DataSerializer.readObject(in);
+        E element = context.getDeserializer().readObject(in);
         this.data.add(element);
       }
       --numLeft;
@@ -312,7 +312,7 @@ public class CumulativeNonDistinctResults<E> implements 
SelectResults<E>, DataSe
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     boolean isStruct = this.collectionType.getElementType().isStructType();
-    DataSerializer.writeObject(this.collectionType.getElementType(), out);
+    context.getSerializer().writeObject(this.collectionType.getElementType(), 
out);
 
     HeapDataOutputStream hdos = new HeapDataOutputStream(1024, null);
     LongUpdater lu = hdos.reserveLong();
@@ -324,7 +324,7 @@ public class CumulativeNonDistinctResults<E> implements 
SelectResults<E>, DataSe
         Object[] fields = ((Struct) data).getFieldValues();
         DataSerializer.writeObjectArray(fields, out);
       } else {
-        DataSerializer.writeObject(data, hdos);
+        context.getSerializer().writeObject(data, hdos);
       }
       ++numElements;
     }
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java
index 200db6c..1957709 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedResultSet.java
@@ -26,7 +26,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.internal.types.CollectionTypeImpl;
 import org.apache.geode.cache.query.types.CollectionType;
@@ -116,9 +115,9 @@ public class LinkedResultSet extends java.util.LinkedHashSet
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     int size = in.readInt();
-    this.elementType = (ObjectType) DataSerializer.readObject(in);
+    this.elementType = (ObjectType) context.getDeserializer().readObject(in);
     for (int j = size; j > 0; j--) {
-      this.add(DataSerializer.readObject(in));
+      this.add(context.getDeserializer().readObject(in));
     }
   }
 
@@ -127,9 +126,9 @@ public class LinkedResultSet extends java.util.LinkedHashSet
       SerializationContext context) throws IOException {
     // how do we serialize the comparator?
     out.writeInt(this.size());
-    DataSerializer.writeObject(this.elementType, out);
+    context.getSerializer().writeObject(this.elementType, out);
     for (Iterator i = this.iterator(); i.hasNext();) {
-      DataSerializer.writeObject(i.next(), out);
+      context.getSerializer().writeObject(i.next(), out);
     }
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedStructSet.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedStructSet.java
index ee68f5b..1ab19e4 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedStructSet.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/LinkedStructSet.java
@@ -24,7 +24,6 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.Struct;
 import org.apache.geode.cache.query.internal.types.CollectionTypeImpl;
@@ -175,9 +174,9 @@ public class LinkedStructSet extends LinkedHashSet<Struct>
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     this.modifiable = in.readBoolean();
     int size = in.readInt();
-    this.structType = (StructTypeImpl) DataSerializer.readObject(in);
+    this.structType = (StructTypeImpl) 
context.getDeserializer().readObject(in);
     for (int j = size; j > 0; j--) {
-      Object[] fieldValues = DataSerializer.readObject(in);
+      Object[] fieldValues = context.getDeserializer().readObject(in);
       this.add(new StructImpl(this.structType, fieldValues));
     }
   }
@@ -193,9 +192,9 @@ public class LinkedStructSet extends LinkedHashSet<Struct>
     // how do we serialize the comparator?
     out.writeBoolean(this.modifiable);
     out.writeInt(this.size());
-    DataSerializer.writeObject(this.structType, out);
+    context.getSerializer().writeObject(this.structType, out);
     for (Struct struct : this) {
-      DataSerializer.writeObject(struct.getFieldValues(), out);
+      context.getSerializer().writeObject(struct.getFieldValues(), out);
     }
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/NWayMergeResults.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/NWayMergeResults.java
index c03921a..83d844b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/NWayMergeResults.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/NWayMergeResults.java
@@ -440,7 +440,7 @@ public class NWayMergeResults<E> implements 
SelectResults<E>, Ordered, DataSeria
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    ObjectType elementType = (ObjectType) DataSerializer.readObject(in);
+    ObjectType elementType = (ObjectType) 
context.getDeserializer().readObject(in);
     this.collectionType = new CollectionTypeImpl(NWayMergeResults.class, 
elementType);
     boolean isStruct = elementType.isStructType();
     this.isDistinct = DataSerializer.readPrimitiveBoolean(in);
@@ -452,7 +452,7 @@ public class NWayMergeResults<E> implements 
SelectResults<E>, Ordered, DataSeria
         Object[] fields = DataSerializer.readObjectArray(in);
         this.data.add((E) new StructImpl((StructTypeImpl) elementType, 
fields));
       } else {
-        E element = DataSerializer.readObject(in);
+        E element = context.getDeserializer().readObject(in);
         this.data.add(element);
       }
       --numLeft;
@@ -471,7 +471,7 @@ public class NWayMergeResults<E> implements 
SelectResults<E>, Ordered, DataSeria
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     boolean isStruct = this.collectionType.getElementType().isStructType();
-    DataSerializer.writeObject(this.collectionType.getElementType(), out);
+    context.getSerializer().writeObject(this.collectionType.getElementType(), 
out);
     DataSerializer.writePrimitiveBoolean(this.isDistinct, out);
     HeapDataOutputStream hdos = new HeapDataOutputStream(1024, null);
     LongUpdater lu = hdos.reserveLong();
@@ -483,7 +483,7 @@ public class NWayMergeResults<E> implements 
SelectResults<E>, Ordered, DataSeria
         Object[] fields = ((Struct) data).getFieldValues();
         DataSerializer.writeObjectArray(fields, out);
       } else {
-        DataSerializer.writeObject(data, hdos);
+        context.getSerializer().writeObject(data, hdos);
       }
       ++numElements;
     }
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsBag.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsBag.java
index 64a1804..a529ec6 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsBag.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsBag.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.Iterator;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.internal.ObjectIntHashMap.Entry;
 import org.apache.geode.cache.query.types.ObjectType;
@@ -139,7 +138,7 @@ public class ResultsBag extends Bag implements 
DataSerializableFixedID {
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.elementType = (ObjectType) DataSerializer.readObject(in);
+    this.elementType = (ObjectType) context.getDeserializer().readObject(in);
     this.size = in.readInt();
     assert this.size >= 0 : this.size;
     this.map = createMapForFromData();
@@ -149,7 +148,7 @@ public class ResultsBag extends Bag implements 
DataSerializableFixedID {
     int numLeft = this.size - this.numNulls;
 
     while (numLeft > 0) {
-      Object key = DataSerializer.readObject(in);
+      Object key = context.getDeserializer().readObject(in);
       int occurrence = in.readInt();
       this.map.put(key, occurrence);
       numLeft -= occurrence;
@@ -164,7 +163,7 @@ public class ResultsBag extends Bag implements 
DataSerializableFixedID {
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.elementType, out);
+    context.getSerializer().writeObject(this.elementType, out);
     out.writeInt(this.size());
     this.writeNumNulls(out);
     // TODO:Asif: Should we actually pass the limit in serialization?
@@ -175,7 +174,7 @@ public class ResultsBag extends Bag implements 
DataSerializableFixedID {
     for (Iterator<Entry> itr = this.map.entrySet().iterator(); itr.hasNext() 
&& numLeft > 0;) {
       Entry entry = itr.next();
       Object key = entry.getKey();
-      DataSerializer.writeObject(key, out);
+      context.getSerializer().writeObject(key, out);
       int occurrence = entry.getValue();
       if (numLeft < occurrence) {
         occurrence = numLeft;
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsCollectionWrapper.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsCollectionWrapper.java
index 4ca312e..9dedff7 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsCollectionWrapper.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsCollectionWrapper.java
@@ -30,7 +30,6 @@ import java.util.NoSuchElementException;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.InternalGemFireError;
 import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.internal.types.CollectionTypeImpl;
@@ -550,9 +549,9 @@ public class ResultsCollectionWrapper implements 
SelectResults, DataSerializable
     if (isBagSetView) {
       InternalDataSerializer.writeSet((Set) this.base, out);
     } else {
-      DataSerializer.writeObject(this.base, out);
+      context.getSerializer().writeObject(this.base, out);
     }
-    DataSerializer.writeObject(this.collectionType, out);
+    context.getSerializer().writeObject(this.collectionType, out);
     out.writeBoolean(this.modifiable);
   }
 
@@ -569,9 +568,9 @@ public class ResultsCollectionWrapper implements 
SelectResults, DataSerializable
     if (isBagSetView) {
       this.base = (Set) InternalDataSerializer.readSet(in);
     } else {
-      this.base = (Collection) DataSerializer.readObject(in);
+      this.base = (Collection) context.getDeserializer().readObject(in);
     }
-    this.collectionType = (CollectionType) DataSerializer.readObject(in);
+    this.collectionType = (CollectionType) 
context.getDeserializer().readObject(in);
     this.modifiable = in.readBoolean();
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java
index 6efe833..f672a1f 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/ResultsSet.java
@@ -25,7 +25,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.internal.types.CollectionTypeImpl;
 import org.apache.geode.cache.query.internal.types.ObjectTypeImpl;
@@ -149,7 +148,7 @@ public class ResultsSet extends HashSet implements 
SelectResults, DataSerializab
     InternalDataSerializer.invokeFromData(clt, in);
     setElementType(clt);
     for (int k = size; k > 0; k--) {
-      this.add(DataSerializer.readObject(in));
+      this.add(context.getDeserializer().readObject(in));
     }
   }
 
@@ -161,7 +160,7 @@ public class ResultsSet extends HashSet implements 
SelectResults, DataSerializab
     Assert.assertTrue(ctImpl != null, "ctImpl can not be null");
     InternalDataSerializer.invokeToData(ctImpl, out);
     for (Iterator itr = this.iterator(); itr.hasNext();) {
-      DataSerializer.writeObject(itr.next(), out);
+      context.getSerializer().writeObject(itr.next(), out);
     }
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java
index f88affd..a9445b7 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedResultSet.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.internal.types.CollectionTypeImpl;
 import org.apache.geode.cache.query.types.CollectionType;
@@ -130,9 +129,9 @@ public class SortedResultSet extends TreeSet
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     int size = in.readInt();
-    this.elementType = (ObjectType) DataSerializer.readObject(in);
+    this.elementType = (ObjectType) context.getDeserializer().readObject(in);
     for (int j = size; j > 0; j--) {
-      this.add(DataSerializer.readObject(in));
+      this.add(context.getDeserializer().readObject(in));
     }
   }
 
@@ -141,9 +140,9 @@ public class SortedResultSet extends TreeSet
       SerializationContext context) throws IOException {
     // how do we serialize the comparator?
     out.writeInt(this.size());
-    DataSerializer.writeObject(this.elementType, out);
+    context.getSerializer().writeObject(this.elementType, out);
     for (Iterator i = this.iterator(); i.hasNext();) {
-      DataSerializer.writeObject(i.next(), out);
+      context.getSerializer().writeObject(i.next(), out);
     }
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java
index 7e59691..58fc83a 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/SortedStructSet.java
@@ -374,9 +374,9 @@ public class SortedStructSet extends TreeSet
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     this.modifiable = in.readBoolean();
     int size = in.readInt();
-    this.structType = (StructTypeImpl) DataSerializer.readObject(in);
+    this.structType = (StructTypeImpl) 
context.getDeserializer().readObject(in);
     for (int j = size; j > 0; j--) {
-      Object[] fieldValues = DataSerializer.readObject(in);
+      Object[] fieldValues = context.getDeserializer().readObject(in);
       this.addFieldValues(fieldValues);
     }
   }
@@ -387,7 +387,7 @@ public class SortedStructSet extends TreeSet
     // how do we serialize the comparator?
     out.writeBoolean(this.modifiable);
     out.writeInt(this.size());
-    DataSerializer.writeObject(this.structType, out);
+    context.getSerializer().writeObject(this.structType, out);
     for (Iterator i = this.fieldValuesIterator(); i.hasNext();) {
       Object[] fieldValues = (Object[]) i.next();
       DataSerializer.writeObjectArray(fieldValues, out);
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructImpl.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructImpl.java
index 6a45273..b1919c0 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructImpl.java
@@ -171,7 +171,7 @@ public class StructImpl implements Struct, 
DataSerializableFixedID, Serializable
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.type = (StructTypeImpl) DataSerializer.readObject(in);
+    this.type = context.getDeserializer().readObject(in);
     this.values = DataSerializer.readObjectArray(in);
     if (this.values != null) {
       for (Object o : values) {
@@ -186,7 +186,7 @@ public class StructImpl implements Struct, 
DataSerializableFixedID, Serializable
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.type, out);
+    context.getSerializer().writeObject(this.type, out);
     DataSerializer.writeObjectArray(this.values, out);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructSet.java 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructSet.java
index ecce14c..cdbe064 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructSet.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/StructSet.java
@@ -28,7 +28,6 @@ import it.unimi.dsi.fastutil.objects.AbstractObjectIterator;
 import it.unimi.dsi.fastutil.objects.ObjectIterator;
 import it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.Struct;
 import org.apache.geode.cache.query.internal.types.CollectionTypeImpl;
@@ -461,9 +460,9 @@ public class StructSet /* extends ObjectOpenCustomHashSet 
*/ implements Set, Sel
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     this.contents = new ObjectOpenCustomHashSet(new 
ObjectArrayHashingStrategy());
     int size = in.readInt();
-    this.structType = (StructTypeImpl) DataSerializer.readObject(in);
+    this.structType = (StructTypeImpl) 
context.getDeserializer().readObject(in);
     for (int j = size; j > 0; j--) {
-      this.add(DataSerializer.readObject(in));
+      this.add(context.getDeserializer().readObject(in));
     }
   }
 
@@ -471,9 +470,9 @@ public class StructSet /* extends ObjectOpenCustomHashSet 
*/ implements Set, Sel
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     out.writeInt(this.size());
-    DataSerializer.writeObject(this.structType, out);
+    context.getSerializer().writeObject(this.structType, out);
     for (Iterator i = this.iterator(); i.hasNext();) {
-      DataSerializer.writeObject(i.next(), out);
+      context.getSerializer().writeObject(i.next(), out);
     }
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionMessage.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionMessage.java
index ef6837e..dfcd5ba 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionMessage.java
@@ -559,7 +559,8 @@ public abstract class DistributionMessage implements 
DataSerializableFixedID, Cl
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    // DataSerializer.writeObject(this.recipients, out); // no need to 
serialize; filled in later
+    // context.getSerializer().writeObject(this.recipients, out); // no need 
to serialize; filled in
+    // later
     // ((IpAddress)this.sender).toData(out); // no need to serialize; filled 
in later
     // out.writeLong(this.timeStamp);
   }
@@ -573,7 +574,8 @@ public abstract class DistributionMessage implements 
DataSerializableFixedID, Cl
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
 
-    // this.recipients = (Set)DataSerializer.readObject(in); // no to 
deserialize; filled in later
+    // this.recipients = (Set)context.getDeserializer().readObject(in); // no 
to deserialize; filled
+    // in later
     // this.sender = DataSerializer.readIpAddress(in); // no to deserialize; 
filled in later
     // this.timeStamp = (long)in.readLong();
   }
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/StartupMessage.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/StartupMessage.java
index e2c4218..d38993b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/StartupMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/StartupMessage.java
@@ -360,7 +360,7 @@ public class StartupMessage extends DistributionMessage 
implements AdminMessageT
       DataSerializer.writeNonPrimitiveClassName(instantiatedClassName, out);
       out.writeInt(id);
     }
-    DataSerializer.writeObject(interfaces, out);
+    context.getSerializer().writeObject(interfaces, out);
     out.writeInt(distributedSystemId);
     DataSerializer.writeString(redundancyZone, out);
     out.writeBoolean(enforceUniqueZone);
@@ -428,7 +428,7 @@ public class StartupMessage extends DistributionMessage 
implements AdminMessageT
       }
     } // for
 
-    this.interfaces = DataSerializer.readObject(in);
+    this.interfaces = context.getDeserializer().readObject(in);
     this.distributedSystemId = in.readInt();
     this.redundancyZone = DataSerializer.readString(in);
     this.enforceUniqueZone = in.readBoolean();
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockRemoteToken.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockRemoteToken.java
index f0910b7..9bfa90a 100755
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockRemoteToken.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockRemoteToken.java
@@ -83,7 +83,7 @@ public class DLockRemoteToken implements 
DataSerializableFixedID {
       throws IOException, ClassNotFoundException {
     Object name = DataSerializer.readObject(in);
     RemoteThread lesseeThread = null;
-    InternalDistributedMember lessee = (InternalDistributedMember) 
DataSerializer.readObject(in);
+    InternalDistributedMember lessee = DataSerializer.readObject(in);
     lesseeThread = new RemoteThread(lessee, in.readInt());
     int leaseId = in.readInt();
     long leaseExpireTime = in.readLong();
@@ -199,8 +199,8 @@ public class DLockRemoteToken implements 
DataSerializableFixedID {
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.name, out);
-    DataSerializer.writeObject(this.lesseeThread.getDistributedMember(), out);
+    context.getSerializer().writeObject(this.name, out);
+    
context.getSerializer().writeObject(this.lesseeThread.getDistributedMember(), 
out);
     out.writeInt(this.lesseeThread.getThreadId());
     out.writeInt(this.leaseId);
     out.writeLong(this.leaseExpireTime);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java
 
b/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java
index 64152cc..42275fe 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java
@@ -308,7 +308,7 @@ public abstract class InternalDataSerializer extends 
DataSerializer {
       }
     }).setObjectDeserializer(new ObjectDeserializer() {
       @Override
-      public Object readObject(DataInput input) throws IOException, 
ClassNotFoundException {
+      public <T> T readObject(DataInput input) throws IOException, 
ClassNotFoundException {
         return InternalDataSerializer.readObject(input);
       }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/GaugeThresholdDecoratorImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/GaugeThresholdDecoratorImpl.java
index 2bfbef9..7858c9d 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/GaugeThresholdDecoratorImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/GaugeThresholdDecoratorImpl.java
@@ -18,7 +18,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.StatisticsFactory;
 import org.apache.geode.internal.admin.StatAlert;
 import org.apache.geode.internal.admin.StatAlertDefinition;
@@ -128,16 +127,16 @@ public class GaugeThresholdDecoratorImpl extends 
BaseDecoratorImpl
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     super.toData(out);
-    DataSerializer.writeObject(this.lowerLimit, out);
-    DataSerializer.writeObject(this.upperLimit, out);
+    context.getSerializer().writeObject(this.lowerLimit, out);
+    context.getSerializer().writeObject(this.upperLimit, out);
   }
 
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     super.fromData(in);
-    this.lowerLimit = (Number) DataSerializer.readObject(in);
-    this.upperLimit = (Number) DataSerializer.readObject(in);
+    this.lowerLimit = (Number) context.getDeserializer().readObject(in);
+    this.upperLimit = (Number) context.getDeserializer().readObject(in);
   }
 
   public static final String ID = "GaugeThreshold";
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/NumberThresholdDecoratorImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/NumberThresholdDecoratorImpl.java
index 7b46b08..a849581 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/NumberThresholdDecoratorImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/admin/statalerts/NumberThresholdDecoratorImpl.java
@@ -128,7 +128,7 @@ public class NumberThresholdDecoratorImpl extends 
BaseDecoratorImpl
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     super.toData(out);
-    DataSerializer.writeObject(this.threshold, out);
+    context.getSerializer().writeObject(this.threshold, out);
     DataSerializer.writePrimitiveBoolean(this.evalForGtThan, out);
   }
 
@@ -136,7 +136,7 @@ public class NumberThresholdDecoratorImpl extends 
BaseDecoratorImpl
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     super.fromData(in);
-    this.threshold = (Number) DataSerializer.readObject(in);
+    this.threshold = (Number) context.getDeserializer().readObject(in);
     this.evalForGtThan = DataSerializer.readPrimitiveBoolean(in);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistTXPrecommitMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistTXPrecommitMessage.java
index 46c70f6..5091ab3 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistTXPrecommitMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistTXPrecommitMessage.java
@@ -253,14 +253,14 @@ public class DistTXPrecommitMessage extends TXMessage {
     public void toData(DataOutput out,
         SerializationContext context) throws IOException {
       super.toData(out, context);
-      DataSerializer.writeObject(commitResponse, out);
+      context.getSerializer().writeObject(commitResponse, out);
     }
 
     @Override
     public void fromData(DataInput in,
         DeserializationContext context) throws IOException, 
ClassNotFoundException {
       super.fromData(in, context);
-      this.commitResponse = (DistTxPrecommitResponse) 
DataSerializer.readObject(in);
+      this.commitResponse = (DistTxPrecommitResponse) 
context.getDeserializer().readObject(in);
     }
 
     @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedPutAllOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedPutAllOperation.java
index 2d54cac..2cec6f4 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedPutAllOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedPutAllOperation.java
@@ -333,12 +333,13 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
     /**
      * Constructor to use when receiving a putall from someone else
      */
-    public PutAllEntryData(DataInput in, EventID baseEventID, int idx, Version 
version,
+    public PutAllEntryData(DataInput in, DeserializationContext context, 
EventID baseEventID,
+        int idx, Version version,
         ByteArrayDataInput bytesIn) throws IOException, ClassNotFoundException 
{
-      this.key = DataSerializer.readObject(in);
+      this.key = context.getDeserializer().readObject(in);
       byte flgs = in.readByte();
       if ((flgs & IS_OBJECT) != 0) {
-        this.value = DataSerializer.readObject(in);
+        this.value = context.getDeserializer().readObject(in);
       } else {
         byte[] bb = DataSerializer.readByteArray(in);
         if ((flgs & IS_CACHED_DESER) != 0) {
@@ -351,7 +352,7 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
       this.op = Operation.fromOrdinal(in.readByte());
       this.flags = in.readByte();
       if ((this.flags & FILTER_ROUTING) != 0) {
-        this.filterRouting = (FilterRoutingInfo) DataSerializer.readObject(in);
+        this.filterRouting = (FilterRoutingInfo) 
context.getDeserializer().readObject(in);
       }
       if ((this.flags & VERSION_TAG) != 0) {
         boolean persistentTag = (this.flags & PERSISTENT_TAG) != 0;
@@ -403,10 +404,11 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
      * {@link DataSerializableFixedID#toData(DataOutput, 
SerializationContext)} <br>
      * {@link DataSerializableFixedID#toData(DataOutput, 
SerializationContext)} <br>
      */
-    public void toData(final DataOutput out) throws IOException {
+    public void toData(final DataOutput out,
+        SerializationContext context) throws IOException {
       Object key = this.key;
       final Object v = this.value;
-      DataSerializer.writeObject(key, out);
+      context.getSerializer().writeObject(key, out);
 
       if (v instanceof byte[] || v == null) {
         out.writeByte(0);
@@ -436,7 +438,7 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
       out.writeByte(bits);
 
       if (this.filterRouting != null) {
-        DataSerializer.writeObject(this.filterRouting, out);
+        context.getSerializer().writeObject(this.filterRouting, out);
       }
       if (this.versionTag != null) {
         InternalDataSerializer.invokeToData(this.versionTag, out);
@@ -1204,14 +1206,14 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
         DeserializationContext context) throws IOException, 
ClassNotFoundException {
 
       super.fromData(in, context);
-      this.eventId = (EventID) DataSerializer.readObject(in);
+      this.eventId = (EventID) context.getDeserializer().readObject(in);
       this.putAllDataSize = (int) InternalDataSerializer.readUnsignedVL(in);
       this.putAllData = new PutAllEntryData[this.putAllDataSize];
       if (this.putAllDataSize > 0) {
         final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
         final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
         for (int i = 0; i < this.putAllDataSize; i++) {
-          this.putAllData[i] = new PutAllEntryData(in, eventId, i, version, 
bytesIn);
+          this.putAllData[i] = new PutAllEntryData(in, context, eventId, i, 
version, bytesIn);
         }
 
         boolean hasTags = in.readBoolean();
@@ -1224,7 +1226,7 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
       }
 
       if ((flags & HAS_BRIDGE_CONTEXT) != 0) {
-        this.context = DataSerializer.readObject(in);
+        this.context = context.getDeserializer().readObject(in);
       }
       this.skipCallbacks = (flags & SKIP_CALLBACKS) != 0;
     }
@@ -1233,7 +1235,7 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
     public void toData(DataOutput out,
         SerializationContext context) throws IOException {
       super.toData(out, context);
-      DataSerializer.writeObject(this.eventId, out);
+      context.getSerializer().writeObject(this.eventId, out);
       InternalDataSerializer.writeUnsignedVL(this.putAllDataSize, out);
       if (this.putAllDataSize > 0) {
         EntryVersionsList versionTags = new EntryVersionsList(putAllDataSize);
@@ -1246,7 +1248,7 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
           VersionTag<?> tag = putAllData[i].versionTag;
           versionTags.add(tag);
           putAllData[i].versionTag = null;
-          this.putAllData[i].toData(out);
+          this.putAllData[i].toData(out, context);
           this.putAllData[i].versionTag = tag;
         }
 
@@ -1256,7 +1258,7 @@ public class DistributedPutAllOperation extends 
AbstractUpdateOperation {
         }
       }
       if (this.context != null) {
-        DataSerializer.writeObject(this.context, out);
+        context.getSerializer().writeObject(this.context, out);
       }
     }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRemoveAllOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRemoveAllOperation.java
index 06d352d..587c3c7 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRemoveAllOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRemoveAllOperation.java
@@ -318,13 +318,14 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
      * Constructor to use when receiving a putall from someone else
      */
     public RemoveAllEntryData(DataInput in, EventID baseEventID, int idx, 
Version version,
-        ByteArrayDataInput bytesIn) throws IOException, ClassNotFoundException 
{
-      this.key = DataSerializer.readObject(in);
+        ByteArrayDataInput bytesIn,
+        DeserializationContext context) throws IOException, 
ClassNotFoundException {
+      this.key = context.getDeserializer().readObject(in);
       this.oldValue = null;
       this.op = Operation.fromOrdinal(in.readByte());
       this.flags = in.readByte();
       if ((this.flags & FILTER_ROUTING) != 0) {
-        this.filterRouting = (FilterRoutingInfo) DataSerializer.readObject(in);
+        this.filterRouting = (FilterRoutingInfo) 
context.getDeserializer().readObject(in);
       }
       if ((this.flags & VERSION_TAG) != 0) {
         boolean persistentTag = (this.flags & PERSISTENT_TAG) != 0;
@@ -375,9 +376,10 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
      * {@link DataSerializableFixedID#toData(DataOutput, 
SerializationContext)} <br>
      * {@link DataSerializableFixedID#toData(DataOutput, 
SerializationContext)} <br>
      */
-    public void toData(final DataOutput out) throws IOException {
+    public void toData(final DataOutput out,
+        SerializationContext context) throws IOException {
       Object key = this.key;
-      DataSerializer.writeObject(key, out);
+      context.getSerializer().writeObject(key, out);
 
       out.writeByte(this.op.ordinal);
       byte bits = this.flags;
@@ -396,7 +398,7 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
       out.writeByte(bits);
 
       if (this.filterRouting != null) {
-        DataSerializer.writeObject(this.filterRouting, out);
+        context.getSerializer().writeObject(this.filterRouting, out);
       }
       if (this.versionTag != null) {
         InternalDataSerializer.invokeToData(this.versionTag, out);
@@ -984,14 +986,14 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
         DeserializationContext context) throws IOException, 
ClassNotFoundException {
 
       super.fromData(in, context);
-      this.eventId = (EventID) DataSerializer.readObject(in);
+      this.eventId = (EventID) context.getDeserializer().readObject(in);
       this.removeAllDataSize = (int) InternalDataSerializer.readUnsignedVL(in);
       this.removeAllData = new RemoveAllEntryData[this.removeAllDataSize];
       if (this.removeAllDataSize > 0) {
         final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
         final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
         for (int i = 0; i < this.removeAllDataSize; i++) {
-          this.removeAllData[i] = new RemoveAllEntryData(in, eventId, i, 
version, bytesIn);
+          this.removeAllData[i] = new RemoveAllEntryData(in, eventId, i, 
version, bytesIn, context);
         }
 
         boolean hasTags = in.readBoolean();
@@ -1004,7 +1006,7 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
       }
 
       if ((flags & HAS_BRIDGE_CONTEXT) != 0) {
-        this.context = DataSerializer.readObject(in);
+        this.context = context.getDeserializer().readObject(in);
       }
       this.skipCallbacks = (flags & SKIP_CALLBACKS) != 0;
     }
@@ -1014,7 +1016,7 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
         SerializationContext context) throws IOException {
 
       super.toData(out, context);
-      DataSerializer.writeObject(this.eventId, out);
+      context.getSerializer().writeObject(this.eventId, out);
       InternalDataSerializer.writeUnsignedVL(this.removeAllDataSize, out);
       if (this.removeAllDataSize > 0) {
         EntryVersionsList versionTags = new 
EntryVersionsList(removeAllDataSize);
@@ -1027,7 +1029,7 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
           VersionTag<?> tag = removeAllData[i].versionTag;
           versionTags.add(tag);
           removeAllData[i].versionTag = null;
-          this.removeAllData[i].toData(out);
+          this.removeAllData[i].toData(out, context);
           this.removeAllData[i].versionTag = tag;
         }
 
@@ -1037,7 +1039,7 @@ public class DistributedRemoveAllOperation extends 
AbstractUpdateOperation {
         }
       }
       if (this.context != null) {
-        DataSerializer.writeObject(this.context, out);
+        context.getSerializer().writeObject(this.context, out);
       }
     }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
index 3bc56d8..4b76785 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
@@ -196,14 +196,14 @@ public class EntryEventImpl implements 
InternalEntryEvent, InternalCacheEvent,
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.eventID = (EventID) DataSerializer.readObject(in);
-    Object key = DataSerializer.readObject(in);
-    Object value = DataSerializer.readObject(in);
+    this.eventID = (EventID) context.getDeserializer().readObject(in);
+    Object key = context.getDeserializer().readObject(in);
+    Object value = context.getDeserializer().readObject(in);
     this.keyInfo = new KeyInfo(key, value, null);
     this.op = Operation.fromOrdinal(in.readByte());
     this.eventFlags = in.readShort();
-    this.keyInfo.setCallbackArg(DataSerializer.readObject(in));
-    this.txId = (TXId) DataSerializer.readObject(in);
+    this.keyInfo.setCallbackArg(context.getDeserializer().readObject(in));
+    this.txId = (TXId) context.getDeserializer().readObject(in);
 
     if (in.readBoolean()) { // isDelta
       assert false : "isDelta should never be true";
@@ -217,7 +217,7 @@ public class EntryEventImpl implements InternalEntryEvent, 
InternalCacheEvent,
       } else {
         this.newValueBytes = null;
         this.cachedSerializedNewValue = null;
-        this.newValue = DataSerializer.readObject(in);
+        this.newValue = context.getDeserializer().readObject(in);
       }
     }
 
@@ -228,7 +228,7 @@ public class EntryEventImpl implements InternalEntryEvent, 
InternalCacheEvent,
       this.oldValue = null; // set later in basicGetOldValue
     } else {
       this.oldValueBytes = null;
-      this.oldValue = DataSerializer.readObject(in);
+      this.oldValue = context.getDeserializer().readObject(in);
     }
     this.distributedMember = DSFIDFactory.readInternalDistributedMember(in);
     this.context = ClientProxyMembershipID.readCanonicalized(in);
@@ -2233,13 +2233,13 @@ public class EntryEventImpl implements 
InternalEntryEvent, InternalCacheEvent,
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.eventID, out);
-    DataSerializer.writeObject(this.getKey(), out);
-    DataSerializer.writeObject(this.keyInfo.getValue(), out);
+    context.getSerializer().writeObject(this.eventID, out);
+    context.getSerializer().writeObject(this.getKey(), out);
+    context.getSerializer().writeObject(this.keyInfo.getValue(), out);
     out.writeByte(this.op.ordinal);
     out.writeShort(this.eventFlags & EventFlags.FLAG_TRANSIENT_MASK);
-    DataSerializer.writeObject(this.getRawCallbackArgument(), out);
-    DataSerializer.writeObject(this.txId, out);
+    context.getSerializer().writeObject(this.getRawCallbackArgument(), out);
+    context.getSerializer().writeObject(this.txId, out);
 
     {
       out.writeBoolean(false);
@@ -2260,7 +2260,7 @@ public class EntryEventImpl implements 
InternalEntryEvent, InternalCacheEvent,
             DataSerializer.writeObjectAsByteArray(cd.getValue(), out);
           }
         } else {
-          DataSerializer.writeObject(nv, out);
+          context.getSerializer().writeObject(nv, out);
         }
       }
     }
@@ -2281,11 +2281,11 @@ public class EntryEventImpl implements 
InternalEntryEvent, InternalCacheEvent,
         }
       } else {
         ov = AbstractRegion.handleNotAvailable(ov);
-        DataSerializer.writeObject(ov, out);
+        context.getSerializer().writeObject(ov, out);
       }
     }
     InternalDataSerializer.invokeToData((InternalDistributedMember) 
this.distributedMember, out);
-    DataSerializer.writeObject(getContext(), out);
+    context.getSerializer().writeObject(getContext(), out);
     DataSerializer.writeLong(tailKey, out);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/FilterProfile.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/FilterProfile.java
index 86f82b0..4e83491 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/FilterProfile.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/FilterProfile.java
@@ -2008,7 +2008,7 @@ public class FilterProfile implements 
DataSerializableFixedID {
       } else {
         // For interest list.
         out.writeLong(this.clientID);
-        DataSerializer.writeObject(this.interest, out);
+        context.getSerializer().writeObject(this.interest, out);
       }
     }
 
@@ -2028,7 +2028,7 @@ public class FilterProfile implements 
DataSerializableFixedID {
         }
       } else {
         this.clientID = in.readLong();
-        this.interest = DataSerializer.readObject(in);
+        this.interest = context.getDeserializer().readObject(in);
       }
     }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
index efd03b7..f0035cc 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
@@ -2132,10 +2132,10 @@ public class InitialImageOperation {
       this.keysOnly = in.readBoolean();
       this.targetReinitialized = in.readBoolean();
       this.checkTombstoneVersions = in.readBoolean();
-      this.lostMemberVersionID = (VersionSource) DataSerializer.readObject(in);
-      this.versionVector = (RegionVersionVector) DataSerializer.readObject(in);
-      this.lostMemberID = (InternalDistributedMember) 
DataSerializer.readObject(in);
-      this.unfinishedKeys = (Set) DataSerializer.readObject(in);
+      this.lostMemberVersionID = (VersionSource) 
context.getDeserializer().readObject(in);
+      this.versionVector = (RegionVersionVector) 
context.getDeserializer().readObject(in);
+      this.lostMemberID = (InternalDistributedMember) 
context.getDeserializer().readObject(in);
+      this.unfinishedKeys = (Set) context.getDeserializer().readObject(in);
     }
 
     @Override
@@ -2147,10 +2147,10 @@ public class InitialImageOperation {
       out.writeBoolean(this.keysOnly);
       out.writeBoolean(this.targetReinitialized);
       out.writeBoolean(this.checkTombstoneVersions);
-      DataSerializer.writeObject(this.lostMemberVersionID, out);
-      DataSerializer.writeObject(this.versionVector, out);
-      DataSerializer.writeObject(this.lostMemberID, out);
-      DataSerializer.writeObject(this.unfinishedKeys, out);
+      context.getSerializer().writeObject(this.lostMemberVersionID, out);
+      context.getSerializer().writeObject(this.versionVector, out);
+      context.getSerializer().writeObject(this.lostMemberID, out);
+      context.getSerializer().writeObject(this.unfinishedKeys, out);
     }
 
     @Override
@@ -2904,7 +2904,7 @@ public class InitialImageOperation {
         gcVersions = new HashMap<VersionSource, Long>(gcVersionsLength);
       }
       for (int i = 0; i < gcVersionsLength; i++) {
-        VersionSource key = InternalDataSerializer.readObject(in);
+        VersionSource key = context.getDeserializer().readObject(in);
         long value = InternalDataSerializer.readUnsignedVL(in);
         gcVersions.put(key, value);
       }
@@ -2934,7 +2934,7 @@ public class InitialImageOperation {
       out.writeShort(gcVersions == null ? -1 : gcVersions.size());
       if (gcVersions != null) {
         for (Map.Entry<VersionSource, Long> entry : gcVersions.entrySet()) {
-          InternalDataSerializer.writeObject(entry.getKey(), out);
+          context.getSerializer().writeObject(entry.getKey(), out);
           InternalDataSerializer.writeUnsignedVL(entry.getValue(), out);
         }
       }
@@ -3084,7 +3084,7 @@ public class InitialImageOperation {
       byte flags = (this.versionTag != null) ? HAS_VERSION : 0;
       flags |= (this.versionTag instanceof DiskVersionTag) ? 
PERSISTENT_VERSION : 0;
       out.writeByte(flags);
-      DataSerializer.writeObject(this.key, out);
+      context.getSerializer().writeObject(this.key, out);
       if (!EntryBits.isTombstone(this.entryBits)) {
         DataSerializer.writeObjectAsByteArray(this.value, out);
       }
@@ -3102,7 +3102,7 @@ public class InitialImageOperation {
         DeserializationContext context) throws IOException, 
ClassNotFoundException {
       this.entryBits = in.readByte();
       byte flags = in.readByte();
-      this.key = DataSerializer.readObject(in);
+      this.key = context.getDeserializer().readObject(in);
 
       if (EntryBits.isTombstone(this.entryBits)) {
         this.value = Token.TOMBSTONE;
@@ -3323,7 +3323,7 @@ public class InitialImageOperation {
       if (hasEntries) {
         InternalDataSerializer.writeUnsignedVL(super.size(), out);
         for (int i = 0; i < super.size(); i++) {
-          DataSerializer.writeObject(super.get(i), out);
+          context.getSerializer().writeObject(super.get(i), out);
         }
       }
       if (hasTags) {
@@ -3380,7 +3380,7 @@ public class InitialImageOperation {
           logger.trace(LogMarker.INITIAL_IMAGE_VERSIONED_VERBOSE, "reading {} 
keys", size);
         }
         for (int i = 0; i < size; i++) {
-          super.add((Entry) DataSerializer.readObject(in));
+          super.add((Entry) context.getDeserializer().readObject(in));
         }
       }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/InvalidatePartitionedRegionMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/InvalidatePartitionedRegionMessage.java
index ba147c2..53035e3 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/InvalidatePartitionedRegionMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/InvalidatePartitionedRegionMessage.java
@@ -19,7 +19,6 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Set;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.CacheException;
 import org.apache.geode.cache.Operation;
 import org.apache.geode.cache.query.QueryException;
@@ -109,7 +108,7 @@ public class InvalidatePartitionedRegionMessage extends 
PartitionMessage {
   public void toDataPre_GEODE_1_9_0_0(DataOutput out, SerializationContext 
context)
       throws IOException {
     super.toData(out, context);
-    DataSerializer.writeObject(this.callbackArg, out);
+    context.getSerializer().writeObject(this.callbackArg, out);
   }
 
   /*
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEventImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEventImpl.java
index a015c43..402b7f2 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEventImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEventImpl.java
@@ -207,7 +207,7 @@ public class RegionEventImpl
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     DataSerializer.writeString(this.regionPath, out);
-    DataSerializer.writeObject(this.callbackArgument, out);
+    context.getSerializer().writeObject(this.callbackArgument, out);
     out.writeByte(this.op.ordinal);
     out.writeBoolean(this.originRemote);
     InternalDataSerializer.invokeToData(((InternalDistributedMember) 
this.distributedMember), out);
@@ -220,7 +220,7 @@ public class RegionEventImpl
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     this.regionPath = DataSerializer.readString(in);
-    this.callbackArgument = DataSerializer.readObject(in);
+    this.callbackArgument = context.getDeserializer().readObject(in);
     this.op = Operation.fromOrdinal(in.readByte());
     this.originRemote = in.readBoolean();
     this.distributedMember = DSFIDFactory.readInternalDistributedMember(in);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java
index 5057e88..42c0002 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java
@@ -919,7 +919,7 @@ public class TXCommitMessage extends 
PooledDistributionMessage
       if (regionsSize > 0) {
         for (int i = 0; i < this.regions.size(); i++) {
           RegionCommit rc = (RegionCommit) this.regions.get(i);
-          rc.toData(out, useShadowKey);
+          rc.toData(out, context, useShadowKey);
         }
       }
     }
@@ -1456,7 +1456,9 @@ public class TXCommitMessage extends 
PooledDistributionMessage
       return result.toString();
     }
 
-    private void basicToData(DataOutput out, boolean useShadowKey) throws 
IOException {
+    private void basicToData(DataOutput out,
+        SerializationContext context,
+        boolean useShadowKey) throws IOException {
       if (this.internalRegion != null) {
         DataSerializer.writeString(this.internalRegion.getFullPath(), out);
         if (this.internalRegion instanceof BucketRegion) {
@@ -1501,7 +1503,7 @@ public class TXCommitMessage extends 
PooledDistributionMessage
           DataSerializer.writeObject(this.opKeys.get(i), out);
           if (this.msg.txState != null) {
             /* we are still on tx node and have the entry state */
-            ((TXEntryState) this.opEntries.get(i)).toFarSideData(out, 
largeModCount,
+            ((TXEntryState) this.opEntries.get(i)).toFarSideData(out, context, 
largeModCount,
                 sendVersionTags, useShadowKey);
           } else {
             ((FarSideEntryOp) this.opEntries.get(i)).toData(out, 
largeModCount, sendVersionTags,
@@ -1512,18 +1514,19 @@ public class TXCommitMessage extends 
PooledDistributionMessage
     }
 
 
-    public void toData(DataOutput out, boolean useShadowKey) throws 
IOException {
+    public void toData(DataOutput out, SerializationContext context, boolean 
useShadowKey)
+        throws IOException {
       if (this.preserializedBuffer != null) {
         this.preserializedBuffer.rewind();
         this.preserializedBuffer.sendTo(out);
       } else if (this.refCount > 1) {
         Version v = InternalDataSerializer.getVersionForDataStream(out);
         HeapDataOutputStream hdos = new HeapDataOutputStream(1024, v);
-        basicToData(hdos, useShadowKey);
+        basicToData(hdos, context, useShadowKey);
         this.preserializedBuffer = hdos;
         this.preserializedBuffer.sendTo(out);
       } else {
-        basicToData(out, useShadowKey);
+        basicToData(out, context, useShadowKey);
       }
     }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/TXEntryState.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/TXEntryState.java
index 8ed8e00..f98b730 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXEntryState.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXEntryState.java
@@ -1872,6 +1872,7 @@ public class TXEntryState implements Releasable {
    * <p>
    * The fromData for this is 
TXCommitMessage$RegionCommit$FarSideEntryOp#fromData.
    *
+   *
    * @param largeModCount true if modCount needs to be represented by an int; 
false if a byte is
    *        enough
    * @param sendVersionTag true if versionTag should be sent to clients 7.0 
and above
@@ -1879,7 +1880,9 @@ public class TXEntryState implements Releasable {
    *
    * @since GemFire 5.0
    */
-  void toFarSideData(DataOutput out, boolean largeModCount, boolean 
sendVersionTag,
+  void toFarSideData(DataOutput out,
+      SerializationContext context,
+      boolean largeModCount, boolean sendVersionTag,
       boolean sendShadowKey) throws IOException {
     Operation operation = getFarSideOperation();
     out.writeByte(operation.ordinal);
@@ -1888,10 +1891,10 @@ public class TXEntryState implements Releasable {
     } else {
       out.writeByte(this.modSerialNum);
     }
-    DataSerializer.writeObject(getCallbackArgument(), out);
-    DataSerializer.writeObject(getFilterRoutingInfo(), out);
+    context.getSerializer().writeObject(getCallbackArgument(), out);
+    context.getSerializer().writeObject(getFilterRoutingInfo(), out);
     if (sendVersionTag) {
-      DataSerializer.writeObject(getVersionTag(), out);
+      context.getSerializer().writeObject(getVersionTag(), out);
       assert getVersionTag() != null || 
!txRegionState.getRegion().getConcurrencyChecksEnabled()
           || txRegionState.getRegion().getDataPolicy() != DataPolicy.REPLICATE 
: "tag:"
               + getVersionTag() + " r:" + txRegionState.getRegion() + " op:" + 
opToString()
@@ -1909,7 +1912,7 @@ public class TXEntryState implements Releasable {
         out.writeBoolean(isTokenOrByteArray);
         if (isTokenOrByteArray) {
           // this is a token or byte[] only
-          DataSerializer.writeObject(getPendingValue(), out);
+          context.getSerializer().writeObject(getPendingValue(), out);
         } else {
           // this is a CachedDeserializable, Object and PDX
           DataSerializer.writeByteArray(getSerializedPendingValue(), out);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockIdImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockIdImpl.java
index 157ca82..85121bc 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockIdImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockIdImpl.java
@@ -18,7 +18,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.annotations.internal.MakeNotStatic;
 import org.apache.geode.distributed.internal.locks.LockGrantorId;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -136,14 +135,14 @@ public class TXLockIdImpl implements TXLockId, 
DataSerializableFixedID {
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.memberId = (InternalDistributedMember) DataSerializer.readObject(in);
+    this.memberId = (InternalDistributedMember) 
context.getDeserializer().readObject(in);
     this.id = in.readInt();
   }
 
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.memberId, out);
+    context.getSerializer().writeObject(this.memberId, out);
     out.writeInt(this.id);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java
index 100f733..ce15c7f 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java
@@ -185,8 +185,9 @@ public class FetchEntryMessage extends PartitionMessage {
   }
 
   @Override
-  protected void setBooleans(short s, DataInput in) throws IOException, 
ClassNotFoundException {
-    super.setBooleans(s, in);
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    super.setBooleans(s, in, context);
     this.access = ((s & HAS_ACCESS) != 0);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/GetMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/GetMessage.java
index d707688..465540b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/GetMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/GetMessage.java
@@ -263,8 +263,9 @@ public class GetMessage extends 
PartitionMessageWithDirectReply {
   }
 
   @Override
-  protected void setBooleans(short s, DataInput in) throws 
ClassNotFoundException, IOException {
-    super.setBooleans(s, in);
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws ClassNotFoundException, 
IOException {
+    super.setBooleans(s, in, context);
   }
 
   public void setKey(Object key) {
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PRUpdateEntryVersionMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PRUpdateEntryVersionMessage.java
index 1345792..dbd6339 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PRUpdateEntryVersionMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PRUpdateEntryVersionMessage.java
@@ -24,7 +24,6 @@ import java.util.Set;
 
 import org.apache.logging.log4j.Logger;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.CacheException;
 import org.apache.geode.cache.EntryNotFoundException;
 import org.apache.geode.cache.Operation;
@@ -172,20 +171,20 @@ public class PRUpdateEntryVersionMessage extends 
PartitionMessageWithDirectReply
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     super.fromData(in, context);
-    this.key = DataSerializer.readObject(in);
+    this.key = context.getDeserializer().readObject(in);
     this.op = Operation.fromOrdinal(in.readByte());
-    this.eventId = (EventID) DataSerializer.readObject(in);
-    this.versionTag = DataSerializer.readObject(in);
+    this.eventId = (EventID) context.getDeserializer().readObject(in);
+    this.versionTag = context.getDeserializer().readObject(in);
   }
 
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     super.toData(out, context);
-    DataSerializer.writeObject(getKey(), out);
+    context.getSerializer().writeObject(getKey(), out);
     out.writeByte(this.op.ordinal);
-    DataSerializer.writeObject(this.eventId, out);
-    DataSerializer.writeObject(this.versionTag, out);
+    context.getSerializer().writeObject(this.eventId, out);
+    context.getSerializer().writeObject(this.versionTag, out);
   }
 
   /**
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java
index 3a8953e..d3d7a4c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java
@@ -23,7 +23,6 @@ import java.util.Set;
 import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.CancelException;
-import org.apache.geode.DataSerializer;
 import org.apache.geode.InternalGemFireError;
 import org.apache.geode.SystemFailure;
 import org.apache.geode.annotations.Immutable;
@@ -538,7 +537,7 @@ public abstract class PartitionMessage extends 
DistributionMessage
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     super.fromData(in, context);
     this.flags = in.readShort();
-    setBooleans(this.flags, in);
+    setBooleans(this.flags, in, context);
     this.regionId = in.readInt();
     // extra field post 9.0
     if 
(InternalDataSerializer.getVersionForDataStream(in).compareTo(Version.GFE_90) 
>= 0) {
@@ -550,7 +549,8 @@ public abstract class PartitionMessage extends 
DistributionMessage
    * Re-construct the booleans using the compressed short. A subclass must 
override this method if
    * it is using bits in the compressed short.
    */
-  protected void setBooleans(short s, DataInput in) throws IOException, 
ClassNotFoundException {
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
     if ((s & HAS_PROCESSOR_ID) != 0) {
       this.processorId = in.readInt();
       ReplyProcessor21.setMessageRPId(this.processorId);
@@ -560,7 +560,7 @@ public abstract class PartitionMessage extends 
DistributionMessage
     if ((s & HAS_TX_ID) != 0)
       this.txUniqId = in.readInt();
     if ((s & HAS_TX_MEMBERID) != 0) {
-      this.txMemberId = (InternalDistributedMember) 
DataSerializer.readObject(in);
+      this.txMemberId = context.getDeserializer().readObject(in);
     }
   }
 
@@ -581,7 +581,7 @@ public abstract class PartitionMessage extends 
DistributionMessage
     if (this.txUniqId != TXManagerImpl.NOTX)
       out.writeInt(this.txUniqId);
     if (this.txMemberId != null)
-      DataSerializer.writeObject(this.txMemberId, out);
+      context.getSerializer().writeObject(this.txMemberId, out);
     out.writeInt(this.regionId);
     // extra field post 9.0
     if 
(InternalDataSerializer.getVersionForDataStream(out).compareTo(Version.GFE_90) 
>= 0) {
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessageWithDirectReply.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessageWithDirectReply.java
index 197ef11..41a157b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessageWithDirectReply.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessageWithDirectReply.java
@@ -27,6 +27,7 @@ import org.apache.geode.internal.cache.DirectReplyMessage;
 import org.apache.geode.internal.cache.EntryEventImpl;
 import org.apache.geode.internal.cache.FilterRoutingInfo;
 import org.apache.geode.internal.cache.PartitionedRegion;
+import org.apache.geode.internal.serialization.DeserializationContext;
 
 /**
  * Used for partitioned region messages which support direct ack responses. 
Direct ack should be
@@ -115,8 +116,9 @@ public abstract class PartitionMessageWithDirectReply 
extends PartitionMessage
   }
 
   @Override
-  protected void setBooleans(short s, DataInput in) throws IOException, 
ClassNotFoundException {
-    super.setBooleans(s, in);
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    super.setBooleans(s, in, context);
     if ((s & POS_DUP) != 0) {
       this.posDup = true;
     }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutAllPRMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutAllPRMessage.java
index 0979db2..2760242 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutAllPRMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutAllPRMessage.java
@@ -232,7 +232,7 @@ public class PutAllPRMessage extends 
PartitionMessageWithDirectReply {
       final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
       final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
       for (int i = 0; i < this.putAllPRDataSize; i++) {
-        this.putAllPRData[i] = new PutAllEntryData(in, null, i, version, 
bytesIn);
+        this.putAllPRData[i] = new PutAllEntryData(in, context, null, i, 
version, bytesIn);
       }
 
       boolean hasTags = in.readBoolean();
@@ -274,7 +274,7 @@ public class PutAllPRMessage extends 
PartitionMessageWithDirectReply {
         VersionTag<?> tag = putAllPRData[i].versionTag;
         versionTags.add(tag);
         putAllPRData[i].versionTag = null;
-        putAllPRData[i].toData(out);
+        putAllPRData[i].toData(out, context);
         putAllPRData[i].versionTag = tag;
         // PutAllEntryData's toData did not serialize eventID to save
         // performance for DR, but in PR,
@@ -299,8 +299,9 @@ public class PutAllPRMessage extends 
PartitionMessageWithDirectReply {
   }
 
   @Override
-  protected void setBooleans(short s, DataInput in) throws IOException, 
ClassNotFoundException {
-    super.setBooleans(s, in);
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    super.setBooleans(s, in, context);
     this.skipCallbacks = ((s & SKIP_CALLBACKS) != 0);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutMessage.java
index 52354e5..054a049 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PutMessage.java
@@ -630,8 +630,9 @@ public class PutMessage extends 
PartitionMessageWithDirectReply implements NewVa
   }
 
   @Override
-  protected void setBooleans(short s, DataInput in) throws IOException, 
ClassNotFoundException {
-    super.setBooleans(s, in);
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    super.setBooleans(s, in, context);
     this.ifNew = ((s & IF_NEW) != 0);
     this.ifOld = ((s & IF_OLD) != 0);
     this.requireOldValue = ((s & REQUIRED_OLD_VAL) != 0);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/RemoveAllPRMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/RemoveAllPRMessage.java
index e88c360..8f1a534 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/RemoveAllPRMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/RemoveAllPRMessage.java
@@ -227,7 +227,7 @@ public class RemoveAllPRMessage extends 
PartitionMessageWithDirectReply {
       final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
       final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
       for (int i = 0; i < this.removeAllPRDataSize; i++) {
-        this.removeAllPRData[i] = new RemoveAllEntryData(in, null, i, version, 
bytesIn);
+        this.removeAllPRData[i] = new RemoveAllEntryData(in, null, i, version, 
bytesIn, context);
       }
 
       boolean hasTags = in.readBoolean();
@@ -268,7 +268,7 @@ public class RemoveAllPRMessage extends 
PartitionMessageWithDirectReply {
         VersionTag<?> tag = removeAllPRData[i].versionTag;
         versionTags.add(tag);
         removeAllPRData[i].versionTag = null;
-        removeAllPRData[i].toData(out);
+        removeAllPRData[i].toData(out, context);
         removeAllPRData[i].versionTag = tag;
         // RemoveAllEntryData's toData did not serialize eventID to save
         // performance for DR, but in PR,
@@ -293,8 +293,9 @@ public class RemoveAllPRMessage extends 
PartitionMessageWithDirectReply {
   }
 
   @Override
-  protected void setBooleans(short s, DataInput in) throws IOException, 
ClassNotFoundException {
-    super.setBooleans(s, in);
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    super.setBooleans(s, in, context);
     this.skipCallbacks = ((s & SKIP_CALLBACKS) != 0);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/SizeMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/SizeMessage.java
index 51f2e69..28b11f8 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/SizeMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/SizeMessage.java
@@ -122,8 +122,9 @@ public class SizeMessage extends PartitionMessage {
   }
 
   @Override
-  protected void setBooleans(short s, DataInput in) throws 
ClassNotFoundException, IOException {
-    super.setBooleans(s, in);
+  protected void setBooleans(short s, DataInput in,
+      DeserializationContext context) throws ClassNotFoundException, 
IOException {
+    super.setBooleans(s, in, context);
     this.estimate = ((s & ESTIMATE) != 0);
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/SnapshotPacket.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/SnapshotPacket.java
index 06f2515..5a26be3 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/SnapshotPacket.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/snapshot/SnapshotPacket.java
@@ -248,7 +248,7 @@ public class SnapshotPacket implements 
DataSerializableFixedID {
       SerializationContext context) throws IOException {
     out.writeInt(windowId);
     InternalDataSerializer.writeString(packetId, out);
-    InternalDataSerializer.writeObject(sender, out);
+    context.getSerializer().writeObject(sender, out);
 
     InternalDataSerializer.writeArrayLength(records.length, out);
     for (SnapshotRecord rec : records) {
@@ -261,7 +261,7 @@ public class SnapshotPacket implements 
DataSerializableFixedID {
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     windowId = in.readInt();
     packetId = InternalDataSerializer.readString(in);
-    sender = InternalDataSerializer.readObject(in);
+    sender = context.getDeserializer().readObject(in);
 
     int count = InternalDataSerializer.readArrayLength(in);
     records = new SnapshotRecord[count];
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java
index 7a44215..8742af5 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java
@@ -171,8 +171,8 @@ public class ClientDataSerializerMessage extends 
ClientUpdateMessageImpl {
     for (int i = 0; i < dataSerializerCount; i++) {
       DataSerializer.writeByteArray(this.serializedDataSerializer[i], out);
     }
-    DataSerializer.writeObject(_membershipId, out);
-    DataSerializer.writeObject(_eventIdentifier, out);
+    context.getSerializer().writeObject(_membershipId, out);
+    context.getSerializer().writeObject(_eventIdentifier, out);
   }
 
   /**
@@ -193,7 +193,7 @@ public class ClientDataSerializerMessage extends 
ClientUpdateMessageImpl {
       this.serializedDataSerializer[i] = DataSerializer.readByteArray(in);
     }
     _membershipId = ClientProxyMembershipID.readCanonicalized(in);
-    _eventIdentifier = (EventID) DataSerializer.readObject(in);
+    _eventIdentifier = (EventID) context.getDeserializer().readObject(in);
   }
 
   @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java
index 6d6bb87..2d88cb5 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java
@@ -156,8 +156,8 @@ public class ClientInstantiatorMessage extends 
ClientUpdateMessageImpl {
     for (int i = 0; i < instantiatorCount; i++) {
       DataSerializer.writeByteArray(this.serializedInstantiators[i], out);
     }
-    DataSerializer.writeObject(_membershipId, out);
-    DataSerializer.writeObject(_eventIdentifier, out);
+    context.getSerializer().writeObject(_membershipId, out);
+    context.getSerializer().writeObject(_eventIdentifier, out);
   }
 
   /**
@@ -178,7 +178,7 @@ public class ClientInstantiatorMessage extends 
ClientUpdateMessageImpl {
       this.serializedInstantiators[i] = DataSerializer.readByteArray(in);
     }
     _membershipId = ClientProxyMembershipID.readCanonicalized(in);
-    _eventIdentifier = (EventID) DataSerializer.readObject(in);
+    _eventIdentifier = (EventID) context.getDeserializer().readObject(in);
   }
 
   @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java
index 573c9ba..a482745 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java
@@ -211,9 +211,9 @@ public class ClientInterestMessageImpl implements 
ClientMessage {
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.eventId, out);
+    context.getSerializer().writeObject(this.eventId, out);
     DataSerializer.writeString(this.regionName, out);
-    DataSerializer.writeObject(this.keyOfInterest, out);
+    context.getSerializer().writeObject(this.keyOfInterest, out);
     DataSerializer.writePrimitiveBoolean(this.isDurable, out);
     DataSerializer.writePrimitiveBoolean(this.forUpdatesAsInvalidates, out);
     DataSerializer.writePrimitiveInt(this.interestType, out);
@@ -224,9 +224,9 @@ public class ClientInterestMessageImpl implements 
ClientMessage {
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.eventId = (EventID) DataSerializer.readObject(in);
+    this.eventId = (EventID) context.getDeserializer().readObject(in);
     this.regionName = DataSerializer.readString(in);
-    this.keyOfInterest = DataSerializer.readObject(in);
+    this.keyOfInterest = context.getDeserializer().readObject(in);
     this.isDurable = DataSerializer.readPrimitiveBoolean(in);
     this.forUpdatesAsInvalidates = DataSerializer.readPrimitiveBoolean(in);
     this.interestType = DataSerializer.readPrimitiveInt(in);
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java
index c0b53ee..d3e55f5 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HAEventWrapper.java
@@ -281,10 +281,10 @@ public class HAEventWrapper implements Conflatable, 
DataSerializableFixedID, Siz
     // by sending false boolean value.
     if (cum != null) {
       DataSerializer.writePrimitiveBoolean(true, out);
-      DataSerializer.writeObject(cum.getEventId(), out);
+      context.getSerializer().writeObject(cum.getEventId(), out);
     } else {
       DataSerializer.writePrimitiveBoolean(false, out);
-      DataSerializer.writeObject(new EventID(), out);
+      context.getSerializer().writeObject(new EventID(), out);
       // Create a dummy ClientUpdateMessageImpl instance
       cum = new ClientUpdateMessageImpl(EnumListenerEvent.AFTER_CREATE,
           new ClientProxyMembershipID(), null);
@@ -306,7 +306,7 @@ public class HAEventWrapper implements Conflatable, 
DataSerializableFixedID, Siz
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     if (DataSerializer.readPrimitiveBoolean(in)) {
       // Indicates that we have a ClientUpdateMessage along with the HAEW 
instance in inputstream.
-      this.eventIdentifier = (EventID) DataSerializer.readObject(in);
+      this.eventIdentifier = (EventID) 
context.getDeserializer().readObject(in);
       this.clientUpdateMessage = new ClientUpdateMessageImpl();
       InternalDataSerializer.invokeFromData(this.clientUpdateMessage, in);
       ((ClientUpdateMessageImpl) 
this.clientUpdateMessage).setEventIdentifier(this.eventIdentifier);
@@ -363,7 +363,7 @@ public class HAEventWrapper implements Conflatable, 
DataSerializableFixedID, Siz
       rcUpdater.set(this, 0);
     } else {
       // Read and ignore dummy eventIdentifier instance.
-      DataSerializer.readObject(in);
+      context.getDeserializer().readObject(in);
       // Read and ignore dummy ClientUpdateMessageImpl instance.
       InternalDataSerializer.invokeFromData(new ClientUpdateMessageImpl(), in);
       // hasCq will be false here, so client CQs are not read from this input
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList.java
index 9154d67..6b2b165 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList.java
@@ -195,7 +195,7 @@ public class ObjectPartList implements 
DataSerializableFixedID, Releasable {
         Object value = this.objects.get(index);
         byte objectType = this.objectTypeArray[index];
         if (this.hasKeys) {
-          DataSerializer.writeObject(this.keys.get(index), out);
+          context.getSerializer().writeObject(this.keys.get(index), out);
         }
         out.writeBoolean(objectType == EXCEPTION);
         if (objectType == OBJECT && value instanceof byte[]) {
@@ -206,7 +206,7 @@ public class ObjectPartList implements 
DataSerializableFixedID, Releasable {
           // write the exception string for native clients
           DataSerializer.writeString(value.toString(), out);
         } else {
-          DataSerializer.writeObject(value, out);
+          context.getSerializer().writeObject(value, out);
         }
       }
     } else {
@@ -225,7 +225,7 @@ public class ObjectPartList implements 
DataSerializableFixedID, Releasable {
     if (numObjects > 0) {
       for (int index = 0; index < numObjects; ++index) {
         if (this.hasKeys) {
-          Object key = DataSerializer.readObject(in);
+          Object key = context.getDeserializer().readObject(in);
           this.keys.add(key);
         }
         boolean isException = in.readBoolean();
@@ -236,7 +236,7 @@ public class ObjectPartList implements 
DataSerializableFixedID, Releasable {
           // ignore the exception string meant for native clients
           DataSerializer.readString(in);
         } else {
-          value = DataSerializer.readObject(in);
+          value = context.getDeserializer().readObject(in);
         }
         this.objects.add(value);
       }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList651.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList651.java
index 634ee4e..c9b27cc 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList651.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ObjectPartList651.java
@@ -88,7 +88,7 @@ public class ObjectPartList651 extends ObjectPartList {
         Object value = this.objects.get(index);
         byte objectType = this.objectTypeArray[index];
         if (this.hasKeys) {
-          DataSerializer.writeObject(this.keys.get(index), out);
+          context.getSerializer().writeObject(this.keys.get(index), out);
         }
         if ((objectType == KEY_NOT_AT_SERVER)) {
           out.writeByte(KEY_NOT_AT_SERVER);
@@ -106,7 +106,7 @@ public class ObjectPartList651 extends ObjectPartList {
           // write the exception string for native clients
           DataSerializer.writeString(value.toString(), out);
         } else {
-          DataSerializer.writeObject(value, out);
+          context.getSerializer().writeObject(value, out);
         }
       }
     } else {
@@ -127,7 +127,7 @@ public class ObjectPartList651 extends ObjectPartList {
     if (numObjects > 0) {
       for (int index = 0; index < numObjects; ++index) {
         if (keysPresent) {
-          Object key = DataSerializer.readObject(in);
+          Object key = context.getDeserializer().readObject(in);
           this.keys.add(key);
         }
         byte objectType = in.readByte();
@@ -139,7 +139,7 @@ public class ObjectPartList651 extends ObjectPartList {
           // ignore the exception string meant for native clients
           DataSerializer.readString(in);
         } else {
-          value = DataSerializer.readObject(in);
+          value = context.getDeserializer().readObject(in);
         }
         this.objects.add(value);
       }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SerializedObjectPartList.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SerializedObjectPartList.java
index f146c5f..3f5d1cd 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SerializedObjectPartList.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SerializedObjectPartList.java
@@ -52,7 +52,7 @@ public class SerializedObjectPartList extends 
ObjectPartList651 {
         Object value = this.objects.get(index);
         byte objectType = this.objectTypeArray[index];
         if (this.hasKeys) {
-          DataSerializer.writeObject(this.keys.get(index), out);
+          context.getSerializer().writeObject(this.keys.get(index), out);
         }
         if ((objectType == KEY_NOT_AT_SERVER)) {
           out.writeByte(KEY_NOT_AT_SERVER);
@@ -93,7 +93,7 @@ public class SerializedObjectPartList extends 
ObjectPartList651 {
     if (numObjects > 0) {
       for (int index = 0; index < numObjects; ++index) {
         if (keysPresent) {
-          Object key = DataSerializer.readObject(in);
+          Object key = context.getDeserializer().readObject(in);
           this.keys.add(key);
         }
         byte objectType = in.readByte();
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/VersionedObjectList.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/VersionedObjectList.java
index b5acf2f..f126a4c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/VersionedObjectList.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/VersionedObjectList.java
@@ -342,10 +342,11 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    toData(out, 0, this.regionIsVersioned ? this.versionTags.size() : size(), 
true, true);
+    toData(out, context, 0, this.regionIsVersioned ? this.versionTags.size() : 
size(), true, true);
   }
 
-  void toData(DataOutput out, int startIndex, int numEntries, boolean 
sendKeys, boolean sendObjects)
+  void toData(DataOutput out, SerializationContext context,
+      int startIndex, int numEntries, boolean sendKeys, boolean sendObjects)
       throws IOException {
     int flags = 0;
     boolean hasObjects = false;
@@ -389,7 +390,7 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
       InternalDataSerializer.writeUnsignedVL(numToWrite, out);
       int index = startIndex;
       for (int i = 0; i < numToWrite; i++, index++) {
-        DataSerializer.writeObject(this.keys.get(index), out);
+        context.getSerializer().writeObject(this.keys.get(index), out);
       }
     }
     if (sendObjects && hasObjects) {
@@ -401,7 +402,7 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
       int idx = 0;
       int index = startIndex;
       for (int i = 0; i < numToWrite; i++, index++) {
-        writeObject(this.objects.get(index), idx++, out);
+        writeObject(this.objects.get(index), idx++, out, context);
       }
     }
     if (hasTags) {
@@ -464,7 +465,7 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
         logger.trace(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE, "reading {} 
keys", size);
       }
       for (int i = 0; i < size; i++) {
-        this.keys.add(DataSerializer.readObject(in));
+        this.keys.add(context.getDeserializer().readObject(in));
       }
     }
     if (hasObjects) {
@@ -475,7 +476,7 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
       this.objects = new ArrayList(size);
       this.objectTypeArray = new byte[size];
       for (int i = 0; i < size; i++) {
-        readObject(i, in);
+        readObject(i, in, context);
       }
     } else {
       this.objects = new ArrayList();
@@ -514,7 +515,8 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
     }
   }
 
-  private void writeObject(Object value, int index, DataOutput out) throws 
IOException {
+  private void writeObject(Object value, int index, DataOutput out,
+      SerializationContext context) throws IOException {
     byte objectType = this.objectTypeArray[index];
     if (logger.isTraceEnabled(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE)) {
       logger.trace(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE, "writing object {} 
of type {}: {}",
@@ -536,13 +538,14 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
       if (this.serializeValues) {
         DataSerializer.writeObjectAsByteArray(value, out);
       } else {
-        DataSerializer.writeObject(value, out);
+        context.getSerializer().writeObject(value, out);
       }
     }
   }
 
 
-  private void readObject(int index, DataInput in) throws IOException, 
ClassNotFoundException {
+  private void readObject(int index, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
     Object value;
     this.objectTypeArray[index] = in.readByte();
     if (logger.isTraceEnabled(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE)) {
@@ -558,7 +561,7 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
     } else if (this.serializeValues) {
       value = DataSerializer.readByteArray(in);
     } else {
-      value = DataSerializer.readObject(in);
+      value = context.getDeserializer().readObject(in);
     }
     this.objects.add(value);
   }
@@ -749,7 +752,7 @@ public class VersionedObjectList extends ObjectPartList 
implements Externalizabl
         SerializationContext context) throws IOException {
       int startIndex = index;
       this.index += this.chunkSize;
-      this.list.toData(out, startIndex, chunkSize, sendKeys, sendObjects);
+      this.list.toData(out, context, startIndex, chunkSize, sendKeys, 
sendObjects);
     }
 
     @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/DistTxEntryEvent.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/DistTxEntryEvent.java
index ac189ed..db90755 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/DistTxEntryEvent.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/DistTxEntryEvent.java
@@ -91,11 +91,11 @@ public class DistTxEntryEvent extends EntryEventImpl {
 
     // handle putAll
     if (this.putAllOp != null) {
-      putAllToData(out);
+      putAllToData(out, context);
     }
     // handle removeAll
     if (this.removeAllOp != null) {
-      removeAllToData(out);
+      removeAllToData(out, context);
     }
   }
 
@@ -117,15 +117,16 @@ public class DistTxEntryEvent extends EntryEventImpl {
     byte flags = DataSerializer.readByte(in);
 
     if ((flags & HAS_PUTALL_OP) != 0) {
-      putAllFromData(in);
+      putAllFromData(in, context);
     }
 
     if ((flags & HAS_REMOVEALL_OP) != 0) {
-      removeAllFromData(in);
+      removeAllFromData(in, context);
     }
   }
 
-  private void putAllToData(DataOutput out) throws IOException {
+  private void putAllToData(DataOutput out,
+      SerializationContext context) throws IOException {
     DataSerializer.writeInteger(this.putAllOp.putAllDataSize, out);
     EntryVersionsList versionTags = new 
EntryVersionsList(this.putAllOp.putAllDataSize);
     boolean hasTags = false;
@@ -137,7 +138,7 @@ public class DistTxEntryEvent extends EntryEventImpl {
       VersionTag<?> tag = putAllData[i].versionTag;
       versionTags.add(tag);
       putAllData[i].versionTag = null;
-      putAllData[i].toData(out);
+      putAllData[i].toData(out, context);
       putAllData[i].versionTag = tag;
     }
     out.writeBoolean(hasTags);
@@ -146,14 +147,15 @@ public class DistTxEntryEvent extends EntryEventImpl {
     }
   }
 
-  private void putAllFromData(DataInput in) throws IOException, 
ClassNotFoundException {
+  private void putAllFromData(DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
     int putAllSize = DataSerializer.readInteger(in);
     PutAllEntryData[] putAllEntries = new PutAllEntryData[putAllSize];
     if (putAllSize > 0) {
       final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
       final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
       for (int i = 0; i < putAllSize; i++) {
-        putAllEntries[i] = new PutAllEntryData(in, this.eventID, i, version, 
bytesIn);
+        putAllEntries[i] = new PutAllEntryData(in, context, this.eventID, i, 
version, bytesIn);
       }
 
       boolean hasTags = in.readBoolean();
@@ -172,7 +174,8 @@ public class DistTxEntryEvent extends EntryEventImpl {
     this.putAllOp.setPutAllEntryData(putAllEntries);
   }
 
-  private void removeAllToData(DataOutput out) throws IOException {
+  private void removeAllToData(DataOutput out,
+      SerializationContext context) throws IOException {
     DataSerializer.writeInteger(this.removeAllOp.removeAllDataSize, out);
 
     EntryVersionsList versionTags = new 
EntryVersionsList(this.removeAllOp.removeAllDataSize);
@@ -186,7 +189,7 @@ public class DistTxEntryEvent extends EntryEventImpl {
       VersionTag<?> tag = removeAllData[i].versionTag;
       versionTags.add(tag);
       removeAllData[i].versionTag = null;
-      removeAllData[i].toData(out);
+      context.getSerializer().invokeToData(removeAllData[i], out);
       removeAllData[i].versionTag = tag;
     }
     out.writeBoolean(hasTags);
@@ -195,13 +198,14 @@ public class DistTxEntryEvent extends EntryEventImpl {
     }
   }
 
-  private void removeAllFromData(DataInput in) throws IOException, 
ClassNotFoundException {
+  private void removeAllFromData(DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
     int removeAllSize = DataSerializer.readInteger(in);
     final RemoveAllEntryData[] removeAllData = new 
RemoveAllEntryData[removeAllSize];
     final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
     final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
     for (int i = 0; i < removeAllSize; i++) {
-      removeAllData[i] = new RemoveAllEntryData(in, this.eventID, i, version, 
bytesIn);
+      removeAllData[i] = new RemoveAllEntryData(in, this.eventID, i, version, 
bytesIn, context);
     }
 
     boolean hasTags = in.readBoolean();
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteDestroyMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteDestroyMessage.java
index 6a3e963..a5550c6 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteDestroyMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteDestroyMessage.java
@@ -458,8 +458,9 @@ public class RemoteDestroyMessage extends 
RemoteOperationMessageWithDirectReply
   }
 
   @Override
-  protected void setFlags(short flags, DataInput in) throws IOException, 
ClassNotFoundException {
-    super.setFlags(flags, in);
+  protected void setFlags(short flags, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    super.setFlags(flags, in, context);
     this.hasOldValue = (flags & HAS_OLD_VALUE) != 0;
     this.useOriginRemote = (flags & USE_ORIGIN_REMOTE) != 0;
     this.possibleDuplicate = (flags & POS_DUP) != 0;
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteOperationMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteOperationMessage.java
index 176c766..7f852db 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteOperationMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteOperationMessage.java
@@ -320,7 +320,7 @@ public abstract class RemoteOperationMessage extends 
DistributionMessage
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     super.fromData(in, context);
     this.flags = in.readShort();
-    setFlags(this.flags, in);
+    setFlags(this.flags, in, context);
     this.regionPath = DataSerializer.readString(in);
     this.isTransactionDistributed = in.readBoolean();
   }
@@ -351,7 +351,7 @@ public abstract class RemoteOperationMessage extends 
DistributionMessage
       out.writeInt(this.getTXUniqId());
     }
     if (this.getTXMemberId() != null) {
-      DataSerializer.writeObject(this.getTXMemberId(), out);
+      context.getSerializer().writeObject(this.getTXMemberId(), out);
     }
     DataSerializer.writeString(this.regionPath, out);
     out.writeBoolean(this.isTransactionDistributed);
@@ -370,7 +370,8 @@ public abstract class RemoteOperationMessage extends 
DistributionMessage
     return flags;
   }
 
-  protected void setFlags(short flags, DataInput in) throws IOException, 
ClassNotFoundException {
+  protected void setFlags(short flags, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
     if ((flags & HAS_PROCESSOR_ID) != 0) {
       this.processorId = in.readInt();
       ReplyProcessor21.setMessageRPId(this.processorId);
@@ -382,7 +383,7 @@ public abstract class RemoteOperationMessage extends 
DistributionMessage
       this.txUniqId = in.readInt();
     }
     if ((flags & HAS_TX_MEMBERID) != 0) {
-      this.txMemberId = DataSerializer.readObject(in);
+      this.txMemberId = context.getDeserializer().readObject(in);
     }
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutAllMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutAllMessage.java
index 333cf05..304df4d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutAllMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutAllMessage.java
@@ -239,7 +239,7 @@ public class RemotePutAllMessage extends 
RemoteOperationMessageWithDirectReply {
       final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
       final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
       for (int i = 0; i < this.putAllDataCount; i++) {
-        this.putAllData[i] = new PutAllEntryData(in, this.eventId, i, version, 
bytesIn);
+        this.putAllData[i] = new PutAllEntryData(in, context, this.eventId, i, 
version, bytesIn);
       }
 
       boolean hasTags = in.readBoolean();
@@ -276,7 +276,7 @@ public class RemotePutAllMessage extends 
RemoteOperationMessageWithDirectReply {
         VersionTag<?> tag = putAllData[i].versionTag;
         versionTags.add(tag);
         putAllData[i].versionTag = null;
-        this.putAllData[i].toData(out);
+        this.putAllData[i].toData(out, context);
         this.putAllData[i].versionTag = tag;
       }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutMessage.java
index 5eb4282..168534a 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutMessage.java
@@ -490,8 +490,9 @@ public class RemotePutMessage extends 
RemoteOperationMessageWithDirectReply
   }
 
   @Override
-  protected void setFlags(short flags, DataInput in) throws IOException, 
ClassNotFoundException {
-    super.setFlags(flags, in);
+  protected void setFlags(short flags, DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    super.setFlags(flags, in, context);
     this.ifNew = (flags & IF_NEW) != 0;
     this.ifOld = (flags & IF_OLD) != 0;
     this.requireOldValue = (flags & REQUIRED_OLD_VAL) != 0;
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteRemoveAllMessage.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteRemoveAllMessage.java
index 91a46a2..27ad928 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteRemoveAllMessage.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteRemoveAllMessage.java
@@ -234,7 +234,8 @@ public class RemoteRemoveAllMessage extends 
RemoteOperationMessageWithDirectRepl
       final Version version = 
InternalDataSerializer.getVersionForDataStreamOrNull(in);
       final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
       for (int i = 0; i < this.removeAllDataCount; i++) {
-        this.removeAllData[i] = new RemoveAllEntryData(in, this.eventId, i, 
version, bytesIn);
+        this.removeAllData[i] = new RemoveAllEntryData(in, this.eventId, i, 
version, bytesIn,
+            context);
       }
 
       boolean hasTags = in.readBoolean();
@@ -271,7 +272,7 @@ public class RemoteRemoveAllMessage extends 
RemoteOperationMessageWithDirectRepl
         VersionTag<?> tag = removeAllData[i].versionTag;
         versionTags.add(tag);
         removeAllData[i].versionTag = null;
-        this.removeAllData[i].toData(out);
+        this.removeAllData[i].toData(out, context);
         this.removeAllData[i].versionTag = tag;
       }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
index ef6bd89..f04c59c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
@@ -704,12 +704,12 @@ public class GatewaySenderEventImpl
     out.writeInt(this.action);
     out.writeInt(this.numberOfParts);
     // out.writeUTF(this._id);
-    DataSerializer.writeObject(this.id, out);
+    context.getSerializer().writeObject(this.id, out);
     DataSerializer.writeString(this.regionPath, out);
     out.writeByte(this.valueIsObject);
-    serializeKey(out);
+    serializeKey(out, context);
     DataSerializer.writeByteArray(getSerializedValue(), out);
-    DataSerializer.writeObject(this.callbackArgument, out);
+    context.getSerializer().writeObject(this.callbackArgument, out);
     out.writeBoolean(this.possibleDuplicate);
     out.writeLong(this.creationTime);
     out.writeInt(this.bucketId);
@@ -717,8 +717,9 @@ public class GatewaySenderEventImpl
     out.writeLong(getVersionTimeStamp());
   }
 
-  protected void serializeKey(DataOutput out) throws IOException {
-    DataSerializer.writeObject(this.key, out);
+  protected void serializeKey(DataOutput out,
+      SerializationContext context) throws IOException {
+    context.getSerializer().writeObject(this.key, out);
   }
 
   @Override
@@ -741,16 +742,17 @@ public class GatewaySenderEventImpl
         && InternalDataSerializer.getVersionForDataStream(in) == 
Version.CURRENT) {
       in = new VersionedDataInputStream((InputStream) in, Version.GFE_701);
     }
-    this.id = (EventID) DataSerializer.readObject(in);
+    this.id = (EventID) context.getDeserializer().readObject(in);
     // TODO:Asif ; Check if this violates Barry's logic of not assiging VM
     // specific Token.FROM_GATEWAY
     // and retain the serialized Token.FROM_GATEWAY
     // this._id.setFromGateway(false);
     this.regionPath = DataSerializer.readString(in);
     this.valueIsObject = in.readByte();
-    deserializeKey(in);
+    deserializeKey(in, context);
     this.value = DataSerializer.readByteArray(in);
-    this.callbackArgument = (GatewaySenderEventCallbackArgument) 
DataSerializer.readObject(in);
+    this.callbackArgument =
+        (GatewaySenderEventCallbackArgument) 
context.getDeserializer().readObject(in);
     this.possibleDuplicate = in.readBoolean();
     this.creationTime = in.readLong();
     this.bucketId = in.readInt();
@@ -759,8 +761,9 @@ public class GatewaySenderEventImpl
     // TODO should this call initializeKey()?
   }
 
-  protected void deserializeKey(DataInput in) throws IOException, 
ClassNotFoundException {
-    this.key = DataSerializer.readObject(in);
+  protected void deserializeKey(DataInput in,
+      DeserializationContext context) throws IOException, 
ClassNotFoundException {
+    this.key = context.getDeserializer().readObject(in);
   }
 
   @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java
index bed7aa0..069e340 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java
@@ -299,15 +299,15 @@ public class 
GatewaySenderQueueEntrySynchronizationOperation {
     @Override
     public void toData(DataOutput out,
         SerializationContext context) throws IOException {
-      DataSerializer.writeObject(this.key, out);
-      DataSerializer.writeObject(this.entryVersion, out);
+      context.getSerializer().writeObject(this.key, out);
+      context.getSerializer().writeObject(this.entryVersion, out);
     }
 
     @Override
     public void fromData(DataInput in,
         DeserializationContext context) throws IOException, 
ClassNotFoundException {
-      this.key = DataSerializer.readObject(in);
-      this.entryVersion = DataSerializer.readObject(in);
+      this.key = context.getDeserializer().readObject(in);
+      this.entryVersion = context.getDeserializer().readObject(in);
     }
 
     @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorResponse.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorResponse.java
index 5b1a30d..b0d69c8 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorResponse.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorResponse.java
@@ -54,7 +54,7 @@ public class JmxManagerLocatorResponse implements 
DataSerializableFixedID {
     this.host = DataSerializer.readString(in);
     this.port = DataSerializer.readPrimitiveInt(in);
     this.ssl = DataSerializer.readPrimitiveBoolean(in);
-    this.ex = DataSerializer.readObject(in);
+    this.ex = context.getDeserializer().readObject(in);
   }
 
   @Override
@@ -63,7 +63,7 @@ public class JmxManagerLocatorResponse implements 
DataSerializableFixedID {
     DataSerializer.writeString(this.host, out);
     DataSerializer.writePrimitiveInt(this.port, out);
     DataSerializer.writePrimitiveBoolean(this.ssl, out);
-    DataSerializer.writeObject(this.ex, out);
+    context.getSerializer().writeObject(this.ex, out);
   }
 
   @Override
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java
index 2effc0a..f9b65d4 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CliFunctionResult.java
@@ -220,9 +220,9 @@ public class CliFunctionResult implements 
Comparable<CliFunctionResult>, DataSer
       throws IOException {
     DataSerializer.writeString(this.memberIdOrName, out);
     DataSerializer.writePrimitiveBoolean(this.isSuccessful(), out);
-    DataSerializer.writeObject(this.xmlEntity, out);
+    context.getSerializer().writeObject(this.xmlEntity, out);
     DataSerializer.writeObjectArray(this.serializables, out);
-    DataSerializer.writeObject(this.resultObject, out);
+    context.getSerializer().writeObject(this.resultObject, out);
     DataSerializer.writeByteArray(this.byteData, out);
   }
 
@@ -230,7 +230,7 @@ public class CliFunctionResult implements 
Comparable<CliFunctionResult>, DataSer
       throws IOException {
     DataSerializer.writeString(this.memberIdOrName, out);
     DataSerializer.writeObjectArray(this.serializables, out);
-    DataSerializer.writeObject(this.resultObject, out);
+    context.getSerializer().writeObject(this.resultObject, out);
   }
 
   @Override
@@ -244,16 +244,16 @@ public class CliFunctionResult implements 
Comparable<CliFunctionResult>, DataSer
       throws IOException, ClassNotFoundException {
     this.memberIdOrName = DataSerializer.readString(in);
     this.state = DataSerializer.readPrimitiveBoolean(in) ? StatusState.OK : 
StatusState.ERROR;
-    this.xmlEntity = DataSerializer.readObject(in);
+    this.xmlEntity = context.getDeserializer().readObject(in);
     this.serializables = (Serializable[]) DataSerializer.readObjectArray(in);
-    this.resultObject = DataSerializer.readObject(in);
+    this.resultObject = context.getDeserializer().readObject(in);
     this.byteData = DataSerializer.readByteArray(in);
   }
 
   public void fromDataPre_GFE_8_0_0_0(DataInput in, DeserializationContext 
context)
       throws IOException, ClassNotFoundException {
     this.memberIdOrName = DataSerializer.readString(in);
-    this.resultObject = DataSerializer.readObject(in);
+    this.resultObject = context.getDeserializer().readObject(in);
     this.serializables = (Serializable[]) DataSerializer.readObjectArray(in);
   }
 
diff --git 
a/geode-core/src/test/java/org/apache/geode/cache/query/internal/ResultsBagLimitBehaviourJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/cache/query/internal/ResultsBagLimitBehaviourJUnitTest.java
index a6884ec..ec58c7d 100644
--- 
a/geode-core/src/test/java/org/apache/geode/cache/query/internal/ResultsBagLimitBehaviourJUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/cache/query/internal/ResultsBagLimitBehaviourJUnitTest.java
@@ -18,7 +18,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Mockito.mock;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -37,7 +36,6 @@ import 
org.apache.geode.cache.query.internal.types.ObjectTypeImpl;
 import org.apache.geode.cache.query.types.ObjectType;
 import org.apache.geode.cache.query.types.StructType;
 import org.apache.geode.internal.InternalDataSerializer;
-import org.apache.geode.internal.serialization.DeserializationContext;
 
 /**
  * Test ResultsBag Limit behaviour
@@ -332,7 +330,7 @@ public class ResultsBagLimitBehaviourJUnitTest {
     DataInputStream dis = new DataInputStream(bis);
     // Create a From ResultBag
     ResultsBag fromBag = getBagObject(String.class);
-    fromBag.fromData(dis, mock(DeserializationContext.class));
+    fromBag.fromData(dis, 
InternalDataSerializer.createDeserializationContext(dis));
     assertEquals(toBag.size(), fromBag.size());
     assertEquals(toBag.occurrences(wrap(null, 
toBag.getCollectionType().getElementType())),
         fromBag.occurrences(wrap(null, 
fromBag.getCollectionType().getElementType())));
diff --git 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneResultStructImpl.java
 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneResultStructImpl.java
index 1a22f14..bc9af64 100644
--- 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneResultStructImpl.java
+++ 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneResultStructImpl.java
@@ -19,7 +19,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.lucene.LuceneResultStruct;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
 import org.apache.geode.internal.serialization.DeserializationContext;
@@ -107,16 +106,16 @@ public class LuceneResultStructImpl<K, V>
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(key, out);
-    DataSerializer.writeObject(value, out);
+    context.getSerializer().writeObject(key, out);
+    context.getSerializer().writeObject(value, out);
     out.writeFloat(score);
   }
 
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    key = DataSerializer.readObject(in);
-    value = DataSerializer.readObject(in);
+    key = context.getDeserializer().readObject(in);
+    value = context.getDeserializer().readObject(in);
     score = in.readFloat();
   }
 
diff --git 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/EntryScore.java
 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/EntryScore.java
index f02a41f..8040f47 100644
--- 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/EntryScore.java
+++ 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/EntryScore.java
@@ -19,7 +19,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
 import org.apache.geode.internal.serialization.DeserializationContext;
 import org.apache.geode.internal.serialization.SerializationContext;
@@ -70,14 +69,14 @@ public class EntryScore<K> implements 
DataSerializableFixedID {
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(key, out);
+    context.getSerializer().writeObject(key, out);
     out.writeFloat(score);
   }
 
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    key = DataSerializer.readObject(in);
+    key = context.getDeserializer().readObject(in);
     score = in.readFloat();
   }
 }
diff --git 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneFunctionContext.java
 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneFunctionContext.java
index fd3db32..736e87b 100644
--- 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneFunctionContext.java
+++ 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneFunctionContext.java
@@ -98,8 +98,8 @@ public class LuceneFunctionContext<C extends 
IndexResultCollector>
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     out.writeInt(limit);
-    DataSerializer.writeObject(queryProvider, out);
-    DataSerializer.writeObject(manager, out);
+    context.getSerializer().writeObject(queryProvider, out);
+    context.getSerializer().writeObject(manager, out);
     DataSerializer.writeString(indexName, out);
   }
 
@@ -107,8 +107,8 @@ public class LuceneFunctionContext<C extends 
IndexResultCollector>
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     limit = in.readInt();
-    queryProvider = DataSerializer.readObject(in);
-    manager = DataSerializer.readObject(in);
+    queryProvider = context.getDeserializer().readObject(in);
+    manager = context.getDeserializer().readObject(in);
     this.indexName = DataSerializer.readString(in);
   }
 
diff --git 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntries.java
 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntries.java
index 6cba65b..156a62f 100644
--- 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntries.java
+++ 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntries.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.lucene.LuceneQueryFactory;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
 import org.apache.geode.internal.serialization.DeserializationContext;
@@ -122,13 +121,13 @@ public class TopEntries<K> implements 
DataSerializableFixedID {
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     out.writeInt(limit);
-    DataSerializer.writeObject(hits, out);
+    context.getSerializer().writeObject(hits, out);
   }
 
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     limit = in.readInt();
-    hits = DataSerializer.readObject(in);
+    hits = context.getDeserializer().readObject(in);
   };
 }
diff --git 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntriesCollector.java
 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntriesCollector.java
index 0fb14a7..623bbab 100644
--- 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntriesCollector.java
+++ 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/TopEntriesCollector.java
@@ -90,13 +90,13 @@ public class TopEntriesCollector implements 
IndexResultCollector, DataSerializab
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     DataSerializer.writeString(name, out);
-    DataSerializer.writeObject(entries, out);
+    context.getSerializer().writeObject(entries, out);
   }
 
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     name = DataSerializer.readString(in);
-    entries = DataSerializer.readObject(in);
+    entries = context.getDeserializer().readObject(in);
   }
 }
diff --git 
a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DSFIDSerializerImpl.java
 
b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DSFIDSerializerImpl.java
index 8ec9c2f..1852322 100644
--- 
a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DSFIDSerializerImpl.java
+++ 
b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DSFIDSerializerImpl.java
@@ -75,8 +75,8 @@ public class DSFIDSerializerImpl implements DSFIDSerializer {
   private ObjectDeserializer createDefaultObjectDeserializer() {
     return new ObjectDeserializer() {
       @Override
-      public Object readObject(DataInput input) throws IOException, 
ClassNotFoundException {
-        return DSFIDSerializerImpl.this.readDSFID(input);
+      public <T> T readObject(DataInput input) throws IOException, 
ClassNotFoundException {
+        return (T) DSFIDSerializerImpl.this.readDSFID(input);
       }
 
       @Override
diff --git 
a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/ObjectDeserializer.java
 
b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/ObjectDeserializer.java
index 7534145..4907719 100644
--- 
a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/ObjectDeserializer.java
+++ 
b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/ObjectDeserializer.java
@@ -22,7 +22,7 @@ public interface ObjectDeserializer {
   /**
    * Read an object from the given data input
    */
-  Object readObject(DataInput input) throws IOException, 
ClassNotFoundException;
+  <T> T readObject(DataInput input) throws IOException, ClassNotFoundException;
 
   /**
    * When deserializing you may want to invoke a fromData method on an object.
diff --git 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorJoinMessage.java
 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorJoinMessage.java
index d976a48..f3ea552 100644
--- 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorJoinMessage.java
+++ 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorJoinMessage.java
@@ -18,7 +18,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.client.internal.locator.ServerLocationRequest;
 import org.apache.geode.internal.admin.remote.DistributionLocatorId;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
@@ -49,18 +48,18 @@ public class LocatorJoinMessage extends 
ServerLocationRequest {
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
     super.fromData(in, context);
-    this.locator = DataSerializer.readObject(in);
+    this.locator = context.getDeserializer().readObject(in);
     this.distributedSystemId = in.readInt();
-    this.sourceLocator = DataSerializer.readObject(in);
+    this.sourceLocator = context.getDeserializer().readObject(in);
   }
 
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     super.toData(out, context);
-    DataSerializer.writeObject(locator, out);
+    context.getSerializer().writeObject(locator, out);
     out.writeInt(this.distributedSystemId);
-    DataSerializer.writeObject(sourceLocator, out);
+    context.getSerializer().writeObject(sourceLocator, out);
   }
 
   public DistributionLocatorId getLocator() {
diff --git 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorJoinRequest.java
 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorJoinRequest.java
index 2b243e8..788c496 100644
--- 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorJoinRequest.java
+++ 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorJoinRequest.java
@@ -18,7 +18,6 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.internal.admin.remote.DistributionLocatorId;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
 import org.apache.geode.internal.serialization.DeserializationContext;
@@ -51,14 +50,14 @@ public class RemoteLocatorJoinRequest implements 
DataSerializableFixedID {
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.locator = DataSerializer.readObject(in);
+    this.locator = context.getDeserializer().readObject(in);
     this.distributedSystemId = in.readInt();
   }
 
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(locator, out);
+    context.getSerializer().writeObject(locator, out);
     out.writeInt(this.distributedSystemId);
   }
 
diff --git 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorResponse.java
 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorResponse.java
index 3f0cb86..2134eae 100644
--- 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorResponse.java
+++ 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/RemoteLocatorResponse.java
@@ -19,7 +19,6 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Set;
 
-import org.apache.geode.DataSerializer;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
 import org.apache.geode.internal.serialization.DeserializationContext;
 import org.apache.geode.internal.serialization.SerializationContext;
@@ -41,13 +40,13 @@ public class RemoteLocatorResponse implements 
DataSerializableFixedID {
   @Override
   public void fromData(DataInput in,
       DeserializationContext context) throws IOException, 
ClassNotFoundException {
-    this.locators = DataSerializer.readObject(in);
+    this.locators = context.getDeserializer().readObject(in);
   }
 
   @Override
   public void toData(DataOutput out,
       SerializationContext context) throws IOException {
-    DataSerializer.writeObject(this.locators, out);
+    context.getSerializer().writeObject(this.locators, out);
   }
 
   public Set<String> getLocators() {

Reply via email to