You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/11/26 11:01:40 UTC

[19/34] ignite git commit: ignite-1282 - Fixing tests.

ignite-1282 - Fixing tests.


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

Branch: refs/heads/ignite-1956
Commit: 809a44260d10fb394767ebb1df66857c22cc8cbd
Parents: 9c1b765
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Wed Nov 25 15:16:23 2015 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Nov 25 15:16:23 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/cache/CacheTypeMetadata.java  |  2 ++
 .../processors/cache/GridCacheEventManager.java | 38 ++++++++++++++++++--
 2 files changed, 37 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/809a4426/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java
index 2b7205b..76dea6a 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java
@@ -33,7 +33,9 @@ import org.apache.ignite.lang.IgniteBiTuple;
 
 /**
  * Cache type metadata need for configuration of indexes or automatic persistence.
+ * @deprecated Use {@link org.apache.ignite.cache.QueryEntity} instead.
  */
+@Deprecated
 public class CacheTypeMetadata implements Serializable {
     /** */
     private static final long serialVersionUID = 0L;

http://git-wip-us.apache.org/repos/asf/ignite/blob/809a4426/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
index afca43b..7ff3a99 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
@@ -39,6 +39,9 @@ import static org.apache.ignite.events.EventType.EVT_CACHE_STOPPED;
  * Cache event manager.
  */
 public class GridCacheEventManager extends GridCacheManagerAdapter {
+    /** Force keep binary flag. Will be set if event notification encountered exception during unmarshalling. */
+    private boolean forceKeepBinary;
+
     /**
      * Adds local event listener.
      *
@@ -262,6 +265,35 @@ public class GridCacheEventManager extends GridCacheManagerAdapter {
                     "(try to increase topology history size configuration property of configured " +
                     "discovery SPI): " + evtNodeId);
 
+            keepPortable = keepPortable || forceKeepBinary;
+
+            Object key0;
+            Object val0;
+            Object oldVal0;
+
+            try {
+                key0 = cctx.cacheObjectContext().unwrapPortableIfNeeded(key, keepPortable, false);
+                val0 = cctx.cacheObjectContext().unwrapPortableIfNeeded(newVal, keepPortable, false);
+                oldVal0 = cctx.cacheObjectContext().unwrapPortableIfNeeded(oldVal, keepPortable, false);
+            }
+            catch (Exception e) {
+                if (!cctx.cacheObjectContext().processor().isPortableEnabled(cctx.config()))
+                    throw e;
+
+                if (log.isDebugEnabled())
+                    log.debug("Failed to unmarshall cache object value for the event notification: " + e);
+
+                if (!forceKeepBinary)
+                    LT.warn(log, null, "Failed to unmarshall cache object value for the event notification " +
+                        "(all further notifications will keep binary object format).");
+
+                forceKeepBinary = true;
+
+                key0 = cctx.cacheObjectContext().unwrapPortableIfNeeded(key, true, false);
+                val0 = cctx.cacheObjectContext().unwrapPortableIfNeeded(newVal, true, false);
+                oldVal0 = cctx.cacheObjectContext().unwrapPortableIfNeeded(oldVal, true, false);
+            }
+
             cctx.gridEvents().record(new CacheEvent(cctx.name(),
                 cctx.localNode(),
                 evtNode,
@@ -269,12 +301,12 @@ public class GridCacheEventManager extends GridCacheManagerAdapter {
                 type,
                 part,
                 cctx.isNear(),
-                cctx.cacheObjectContext().unwrapPortableIfNeeded(key, keepPortable, false),
+                key0,
                 xid,
                 lockId,
-                cctx.cacheObjectContext().unwrapPortableIfNeeded(newVal, keepPortable, false),
+                val0,
                 hasNewVal,
-                cctx.cacheObjectContext().unwrapPortableIfNeeded(oldVal, keepPortable, false),
+                oldVal0,
                 hasOldVal,
                 subjId,
                 cloClsName,