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,