Repository: ignite
Updated Branches:
  refs/heads/ignite-2100 060e09498 -> 972d5a9bd


IGNITE-2100: Fix to AffinityKey class.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/972d5a9b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/972d5a9b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/972d5a9b

Branch: refs/heads/ignite-2100
Commit: 972d5a9bd978bc1410c1a40c43e7fecab5f9b8f4
Parents: 060e094
Author: vozerov-gridgain <voze...@gridgain.com>
Authored: Mon Dec 14 16:57:40 2015 +0300
Committer: vozerov-gridgain <voze...@gridgain.com>
Committed: Mon Dec 14 16:57:40 2015 +0300

----------------------------------------------------------------------
 .../ignite/cache/affinity/AffinityKey.java      |  2 +-
 .../ignite/internal/binary/BinaryContext.java   | 21 ++++++++++++++++++--
 2 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/972d5a9b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java 
b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
index ee6321c..c745ed8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/affinity/AffinityKey.java
@@ -64,6 +64,7 @@ public class AffinityKey<K> implements Externalizable {
     private K key;
 
     /** Affinity key. */
+    @AffinityKeyMapped
     @GridToStringInclude
     private Object affKey;
 
@@ -126,7 +127,6 @@ public class AffinityKey<K> implements Externalizable {
      *
      * @return Affinity key to use for affinity mapping.
      */
-    @AffinityKeyMapped
     @SuppressWarnings({"unchecked"})
     public <T> T affinityKey() {
         A.notNull(key, "key");

http://git-wip-us.apache.org/repos/asf/ignite/blob/972d5a9b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
index 9cd8a94..f227238 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java
@@ -26,6 +26,7 @@ import org.apache.ignite.binary.BinarySerializer;
 import org.apache.ignite.binary.BinaryType;
 import org.apache.ignite.binary.BinaryTypeConfiguration;
 import org.apache.ignite.cache.CacheKeyConfiguration;
+import org.apache.ignite.cache.affinity.AffinityKey;
 import org.apache.ignite.cache.affinity.AffinityKeyMapped;
 import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -205,14 +206,17 @@ public class BinaryContext implements Externalizable {
         registerPredefinedType(Timestamp[].class, 
GridBinaryMarshaller.TIMESTAMP_ARR);
         registerPredefinedType(Object[].class, GridBinaryMarshaller.OBJ_ARR);
 
+        // Special collections.
         registerPredefinedType(ArrayList.class, 0);
         registerPredefinedType(LinkedList.class, 0);
         registerPredefinedType(HashSet.class, 0);
         registerPredefinedType(LinkedHashSet.class, 0);
-
         registerPredefinedType(HashMap.class, 0);
         registerPredefinedType(LinkedHashMap.class, 0);
 
+        // Classes with overriden default serialziation flag.
+        registerPredefinedType(AffinityKey.class, 0, false);
+
         registerPredefinedType(GridMapEntry.class, 60);
         registerPredefinedType(IgniteBiTuple.class, 61);
         registerPredefinedType(T2.class, 62);
@@ -719,8 +723,21 @@ public class BinaryContext implements Externalizable {
      * @return GridBinaryClassDescriptor.
      */
     public BinaryClassDescriptor registerPredefinedType(Class<?> cls, int id) {
+        return registerPredefinedType(cls, id, true);
+    }
+
+    /**
+     * @param cls Class.
+     * @param id Type ID.
+     * @param useDfltSerialization Use default serialization flag.
+     * @return GridBinaryClassDescriptor.
+     */
+    public BinaryClassDescriptor registerPredefinedType(Class<?> cls, int id, 
boolean useDfltSerialization) {
         String typeName = typeName(cls.getName());
 
+        if (id == 0)
+            id = BinaryInternalIdMapper.defaultInstance().typeId(typeName);
+
         BinaryClassDescriptor desc = new BinaryClassDescriptor(
             this,
             cls,
@@ -733,7 +750,7 @@ public class BinaryContext implements Externalizable {
             false,
             true, /* registered */
             true, /* predefined */
-            true /* default serialization */
+            useDfltSerialization /* default serialization */
         );
 
         predefinedTypeNames.put(typeName, id);

Reply via email to