commit | d3692283f8e47d9a5527836ad2f085b4120325c8 | [log] [tgz] |
---|---|---|
author | Maksim Timonin <timoninmaxim@apache.org> | Fri Apr 19 17:27:20 2024 +0300 |
committer | GitHub <noreply@github.com> | Fri Apr 19 17:27:20 2024 +0300 |
tree | 1b701e80a6268d482e07d3f3b1dc4c3a725b2dc1 | |
parent | af7fdb098f1820327dc24c9873cc93287506505d [diff] | |
parent | 88236cae5265adfe732a37f52258a0e05c9a63d3 [diff] |
IGNITE-22080 Fix ConflictResolver fails on debug logging (#261)
diff --git a/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/CacheVersionConflictResolverImpl.java b/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/CacheVersionConflictResolverImpl.java index 85315e2..422d870 100644 --- a/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/CacheVersionConflictResolverImpl.java +++ b/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/CacheVersionConflictResolverImpl.java
@@ -57,7 +57,7 @@ * @see CacheVersionConflictResolverImpl */ @GridToStringInclude - private final String conflictResolveField; + protected final String conflictResolveField; /** Logger. */ protected final IgniteLogger log;
diff --git a/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/DebugCacheVersionConflictResolverImpl.java b/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/DebugCacheVersionConflictResolverImpl.java index 000cbf3..9b1b490 100644 --- a/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/DebugCacheVersionConflictResolverImpl.java +++ b/modules/cdc-ext/src/main/java/org/apache/ignite/cdc/conflictresolve/DebugCacheVersionConflictResolverImpl.java
@@ -45,10 +45,10 @@ Object newVal = conflictResolveFieldEnabled ? newEntry.value(ctx) : null; if (oldVal != null) - oldVal = value(oldVal); + oldVal = debugValue(oldVal); if (newVal != null) - newVal = value(newVal); + newVal = debugValue(newVal); log.debug("isUseNew[" + "start=" + oldEntry.isStartVersion() + @@ -63,6 +63,18 @@ return res; } + /** @return Conflict resolve field value, or specified {@code val} if the field not found. */ + private Object debugValue(Object val) { + try { + return super.value(val); + } + catch (Exception e) { + log.debug("Can't resolve field value [field=" + conflictResolveField + ", val=" + val + ']'); + + return val; + } + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(CacheVersionConflictResolverImpl.class, this);