You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ni...@apache.org on 2018/11/30 18:46:16 UTC

ignite git commit: IGNITE-9794 Handle UnregisteredBinaryTypeException on metadata registration under topology lock. - Fixes #4916.

Repository: ignite
Updated Branches:
  refs/heads/ignite-2.7 c87e67069 -> 9c2ba403f


IGNITE-9794 Handle UnregisteredBinaryTypeException on metadata registration under topology lock. - Fixes #4916.

Signed-off-by: Dmitriy Govorukhin <dm...@gmail.com>


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

Branch: refs/heads/ignite-2.7
Commit: 9c2ba403fae5079201e9df6bc7b7eea5bacdf4c0
Parents: c87e670
Author: Denis Mekhanikov <dm...@gmail.com>
Authored: Fri Oct 5 16:13:45 2018 +0300
Committer: Nikolay Izhikov <ni...@apache.org>
Committed: Fri Nov 30 21:37:28 2018 +0300

----------------------------------------------------------------------
 .../internal/binary/BinaryFieldAccessor.java    |  3 +-
 ...ataRegistrationInsideEntryProcessorTest.java | 49 +++++++++++---------
 2 files changed, 30 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9c2ba403/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
index 87c4f3e..7d138a3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java
@@ -26,6 +26,7 @@ import java.util.Date;
 import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.internal.UnregisteredBinaryTypeException;
 import org.apache.ignite.internal.UnregisteredClassException;
 import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.internal.util.typedef.F;
@@ -156,7 +157,7 @@ public abstract class BinaryFieldAccessor {
             write0(obj, writer);
         }
         catch (Exception ex) {
-            if (ex instanceof UnregisteredClassException)
+            if (ex instanceof UnregisteredClassException || ex instanceof UnregisteredBinaryTypeException)
                 throw ex;
 
             if (S.INCLUDE_SENSITIVE && !F.isEmpty(name))

http://git-wip-us.apache.org/repos/asf/ignite/blob/9c2ba403/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java
index 73dae4b..c7c3757 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataRegistrationInsideEntryProcessorTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache;
 
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import javax.cache.processor.EntryProcessor;
@@ -40,7 +40,7 @@ public class BinaryMetadataRegistrationInsideEntryProcessorTest extends GridComm
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration() {
         TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder()
-            .setAddresses(Arrays.asList("127.0.0.1:47500..47509"));
+            .setAddresses(Collections.singletonList("127.0.0.1:47500..47509"));
 
         return new IgniteConfiguration()
             .setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(ipFinder))
@@ -60,9 +60,9 @@ public class BinaryMetadataRegistrationInsideEntryProcessorTest extends GridComm
                 cache.invoke(i, new CustomProcessor());
         }
         catch (Exception e) {
-            Map<Integer, CustomObj> value = cache.get(1);
+            Map<Integer, CustomObj> val = cache.get(1);
 
-            if ((value != null) && (value.get(1) != null) && (value.get(1).getObj() == CustomEnum.ONE))
+            if ((val != null) && (val.get(1).anEnum == CustomEnum.ONE) && val.get(1).obj.data.equals("test"))
                 System.out.println("Data was saved.");
             else
                 System.out.println("Data wasn't saved.");
@@ -82,7 +82,7 @@ public class BinaryMetadataRegistrationInsideEntryProcessorTest extends GridComm
             Object... objects) throws EntryProcessorException {
             Map<Integer, CustomObj> map = new HashMap<>();
 
-            map.put(1, new CustomObj(CustomEnum.ONE));
+            map.put(1, new CustomObj(new CustomInnerObject("test"), CustomEnum.ONE));
 
             entry.setValue(map);
 
@@ -95,27 +95,20 @@ public class BinaryMetadataRegistrationInsideEntryProcessorTest extends GridComm
      */
     private static class CustomObj {
         /** Object. */
-        private final Object obj;
+        private final CustomInnerObject obj;
+
+        /** Enum. */
+        private final CustomEnum anEnum;
 
         /**
          * @param obj Object.
+         * @param anEnum Enum.
          */
-        public CustomObj(Object obj) {
+        CustomObj(
+            CustomInnerObject obj,
+            CustomEnum anEnum) {
             this.obj = obj;
-        }
-
-        /**
-         * @param val Value.
-         */
-        public static CustomObj valueOf(int val) {
-            return new CustomObj(val);
-        }
-
-        /**
-         *
-         */
-        public Object getObj() {
-            return obj;
+            this.anEnum = anEnum;
         }
     }
 
@@ -138,4 +131,18 @@ public class BinaryMetadataRegistrationInsideEntryProcessorTest extends GridComm
         }
     }
 
+    /**
+     *
+     */
+    private static class CustomInnerObject {
+        /** */
+        private final String data;
+
+        /**
+         * @param data Data.
+         */
+        CustomInnerObject(String data) {
+            this.data = data;
+        }
+    }
 }
\ No newline at end of file