Add path context to data validation failures 50/72250/1
authorTom Pantelis <tompantelis@gmail.com>
Mon, 21 May 2018 16:07:51 +0000 (12:07 -0400)
committerSam Hague <shague@redhat.com>
Fri, 25 May 2018 01:15:03 +0000 (01:15 +0000)
JIRA: CONTROLLER-1830

Change-Id: I588303ef2bbe01f8267da32b6b37d327dcbfbeb4
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
(cherry picked from commit 52725324973f22ac0c85ed4fd8459cf0ef504407)

opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java

index a155e5e0e049ab5afc19e2dc969bbcd775c0a494..fbc1a43c8286414a5a6e624b34bf4f0271769999 100644 (file)
@@ -737,7 +737,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
             } catch (ConflictingModificationAppliedException e) {
                 LOG.warn("{}: Store Tx {}: Conflicting modification for path {}.", logContext, cohort.getIdentifier(),
                     e.getPath());
-                cause = new OptimisticLockFailedException("Optimistic lock failed.", e);
+                cause = new OptimisticLockFailedException("Optimistic lock failed for path " + e.getPath(), e);
             } catch (DataValidationFailedException e) {
                 LOG.warn("{}: Store Tx {}: Data validation failed for path {}.", logContext, cohort.getIdentifier(),
                     e.getPath(), e);
@@ -746,7 +746,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
                 // precondition log, it should allow us to understand what went on.
                 LOG.debug("{}: Store Tx {}: modifications: {} tree: {}", cohort.getIdentifier(), modification,
                         dataTree);
-                cause = new TransactionCommitFailedException("Data did not pass validation.", e);
+                cause = new TransactionCommitFailedException("Data did not pass validation for path " + e.getPath(), e);
             } catch (Exception e) {
                 LOG.warn("{}: Unexpected failure in validation phase", logContext, e);
                 cause = e;