Repository: ignite Updated Branches: refs/heads/master d3ccaf6d9 -> 7f7445814
ignite-4710 More information in IgniteTxOptimisticCheckedException message. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7f744581 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7f744581 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7f744581 Branch: refs/heads/master Commit: 7f74458148268af5bd721fd308b66b57e9a3852b Parents: d3ccaf6 Author: sboikov <[email protected]> Authored: Thu Feb 16 18:34:02 2017 +0300 Committer: sboikov <[email protected]> Committed: Thu Feb 16 18:34:02 2017 +0300 ---------------------------------------------------------------------- .../distributed/dht/GridDhtTxPrepareFuture.java | 35 ++++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/7f744581/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java index eadb69e..1227ba9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java @@ -1141,11 +1141,40 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter * @return Optimistic version check error. */ private IgniteTxOptimisticCheckedException versionCheckError(IgniteTxEntry entry) { + StringBuilder msg = new StringBuilder("Failed to prepare transaction, read/write conflict ["); + GridCacheContext cctx = entry.context(); - return new IgniteTxOptimisticCheckedException("Failed to prepare transaction, " + - "read/write conflict [key=" + entry.key().value(cctx.cacheObjectContext(), false) + - ", cache=" + cctx.name() + ']'); + try { + Object key = cctx.unwrapBinaryIfNeeded(entry.key(), entry.keepBinary(), false); + + assert key != null : entry.key(); + + msg.append("key=").append(key.toString()).append(", keyCls=").append(key.getClass().getName()); + } + catch (Exception e) { + msg.append("key=<failed to get key: ").append(e.toString()).append(">"); + } + + try { + GridCacheEntryEx entryEx = entry.cached(); + + CacheObject cacheVal = entryEx != null ? entryEx.rawGet() : null; + + Object val = cacheVal != null ? cctx.unwrapBinaryIfNeeded(cacheVal, entry.keepBinary(), false) : null; + + if (val != null) + msg.append(", val=").append(val.toString()).append(", valCls=").append(val.getClass().getName()); + else + msg.append(", val=null"); + } + catch (Exception e) { + msg.append(", val=<failed to get value: ").append(e.toString()).append(">"); + } + + msg.append(", cache=").append(cctx.name()).append(", thread=").append(Thread.currentThread()).append("]"); + + return new IgniteTxOptimisticCheckedException(msg.toString()); } /**
