You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by kw...@apache.org on 2022/07/18 14:26:05 UTC

[jackrabbit-oak] branch feature/emit-checker-in-errorholder created (now 6b45799340)

This is an automated email from the ASF dual-hosted git repository.

kwin pushed a change to branch feature/emit-checker-in-errorholder
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


      at 6b45799340 OAK-9846: Emit origin for each checker report

This branch includes the following new commits:

     new 6b45799340 OAK-9846: Emit origin for each checker report

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[jackrabbit-oak] 01/01: OAK-9846: Emit origin for each checker report

Posted by kw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch feature/emit-checker-in-errorholder
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 6b457993400adc2e07142c4d16f982c9d0a5cee9
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Jul 18 16:25:59 2022 +0200

    OAK-9846: Emit origin for each checker report
---
 .../jackrabbit/oak/composite/checks/ErrorHolder.java       | 10 +++++-----
 .../composite/checks/NamespacePrefixNodestoreChecker.java  |  2 +-
 .../checks/NodeTypeDefinitionNodeStoreChecker.java         |  4 ++--
 .../composite/checks/NodeTypeMountedNodeStoreChecker.java  |  2 +-
 .../oak/composite/checks/UniqueIndexNodeStoreChecker.java  | 14 ++++++++------
 5 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/ErrorHolder.java b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/ErrorHolder.java
index 2e4a5460f1..51b717e610 100644
--- a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/ErrorHolder.java
+++ b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/ErrorHolder.java
@@ -27,16 +27,16 @@ class ErrorHolder {
     private static final int FAIL_IMMEDIATELY_THRESHOLD = 100;
     private final List<String> errors = new ArrayList<>();
     
-    public void report(MountedNodeStore mountedStore, String path, String error) {
-        errors.add(String.format("For NodeStore mount %s, path %s, encountered the following problem: '%s'", mountedStore.getMount().getName(), path, error));
+    public void report(MountedNodeStore mountedStore, String path, String error, MountedNodeStoreChecker<?> checker) {
+        errors.add(String.format("For NodeStore mount %s, path %s, encountered the following problem: '%s' (via checker %s)", mountedStore.getMount().getName(), path, error, checker));
         if ( errors.size() == FAIL_IMMEDIATELY_THRESHOLD ) { 
             end();
         }
     }
     
-    public void report(MountedNodeStore firstNS, String firstPath, MountedNodeStore secondNS, String secondPath, String value, String error) {
-        errors.add(String.format("For NodeStore mount %s, path %s, and NodeStore mount %s, path %s, encountered the following clash for value %s: '%s'", 
-                firstNS.getMount().getName(), firstPath, secondNS.getMount().getName(), secondPath, value, error));
+    public void report(MountedNodeStore firstNS, String firstPath, MountedNodeStore secondNS, String secondPath, String value, String error, MountedNodeStoreChecker<?> checker) {
+        errors.add(String.format("For NodeStore mount %s, path %s, and NodeStore mount %s, path %s, encountered the following clash for value %s: '%s' (via checker %s)", 
+                firstNS.getMount().getName(), firstPath, secondNS.getMount().getName(), secondPath, value, error, checker));
         if ( errors.size() == FAIL_IMMEDIATELY_THRESHOLD ) { 
             end();
         }
diff --git a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NamespacePrefixNodestoreChecker.java b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NamespacePrefixNodestoreChecker.java
index 15330eb8e5..dff2fa21ae 100644
--- a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NamespacePrefixNodestoreChecker.java
+++ b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NamespacePrefixNodestoreChecker.java
@@ -67,7 +67,7 @@ public class NamespacePrefixNodestoreChecker implements MountedNodeStoreChecker<
         
         String prefix = getPrefix(name);
         if ( prefix != null && !context.validPrefixes.contains(prefix) ) {
-            errorHolder.report(mountedStore, path, "invalid namespace prefix " + prefix + " , expected one of " + context.validPrefixes);
+            errorHolder.report(mountedStore, path, "invalid namespace prefix " + prefix + " , expected one of " + context.validPrefixes, this);
         }
     }
     
diff --git a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeDefinitionNodeStoreChecker.java b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeDefinitionNodeStoreChecker.java
index bb07783721..9803e5cb82 100644
--- a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeDefinitionNodeStoreChecker.java
+++ b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeDefinitionNodeStoreChecker.java
@@ -67,7 +67,7 @@ public class NodeTypeDefinitionNodeStoreChecker implements MountedNodeStoreCheck
             @Override
             public void onConstraintViolation(String path, List<String> typeNames, int code, String message)
                     throws CommitFailedException {
-                errorHolder.report(mountedStore, path, message);
+                errorHolder.report(mountedStore, path, message, NodeTypeDefinitionNodeStoreChecker.this);
             }
         };
         
@@ -90,7 +90,7 @@ public class NodeTypeDefinitionNodeStoreChecker implements MountedNodeStoreCheck
             EditorDiff.process(editor, MISSING_NODE, root);
             
         } catch (CommitFailedException e) {
-            errorHolder.report(mountedStore, "/", "Unexpected error : " + e.getMessage());
+            errorHolder.report(mountedStore, "/", "Unexpected error : " + e.getMessage(), this);
         }
 
         
diff --git a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeMountedNodeStoreChecker.java b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeMountedNodeStoreChecker.java
index a30dca9309..004f9f40a8 100644
--- a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeMountedNodeStoreChecker.java
+++ b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/NodeTypeMountedNodeStoreChecker.java
@@ -92,7 +92,7 @@ public class NodeTypeMountedNodeStoreChecker implements
         
         if ( context.getTypeManager().isNodeType(tree, invalidNodeType) &&
                 !isExcluded(mountedStore, tree, context) ) {
-            errorHolder.report(mountedStore, tree.getPath(), errorLabel);
+            errorHolder.report(mountedStore, tree.getPath(), errorLabel, this);
         }
         
         return true;
diff --git a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/UniqueIndexNodeStoreChecker.java b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/UniqueIndexNodeStoreChecker.java
index 951dff1b4d..3ac1a800bf 100644
--- a/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/UniqueIndexNodeStoreChecker.java
+++ b/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/checks/UniqueIndexNodeStoreChecker.java
@@ -78,7 +78,7 @@ public class UniqueIndexNodeStoreChecker implements MountedNodeStoreChecker<Uniq
         for ( ChildNodeEntry indexDef : indexDefs.getChildNodeEntries() ) {
             if ( indexDef.getNodeState().hasProperty(UNIQUE_PROPERTY_NAME) &&
                     indexDef.getNodeState().getBoolean(UNIQUE_PROPERTY_NAME) ) {
-                ctx.add(indexDef, mip.getDefaultMount(), indexDefs);
+                ctx.add(indexDef, mip.getDefaultMount(), indexDefs, this);
                 ctx.track(new MountedNodeStore(mip.getDefaultMount() , globalStore));
             }
         }
@@ -102,7 +102,7 @@ public class UniqueIndexNodeStoreChecker implements MountedNodeStoreChecker<Uniq
                 NodeState mountIndexDef = indexDef.getNodeState().getChildNode(mountIndexDefName);
                 
                 if ( mountIndexDef.exists() ) {
-                    context.add(indexDef, mountedStore.getMount(), indexDefs);
+                    context.add(indexDef, mountedStore.getMount(), indexDefs, this);
                 }
             }
         }
@@ -126,11 +126,11 @@ public class UniqueIndexNodeStoreChecker implements MountedNodeStoreChecker<Uniq
             mountedNodeStoresByName.put(mountedNodeStore.getMount().getName(), mountedNodeStore);
         }
 
-        public void add(ChildNodeEntry rootIndexDef, Mount mount, NodeState indexDef) {
+        public void add(ChildNodeEntry rootIndexDef, Mount mount, NodeState indexDef, UniqueIndexNodeStoreChecker checker) {
 
             IndexCombination combination = combinations.get(rootIndexDef.getName());
             if ( combination == null ) {
-                combination = new IndexCombination(rootIndexDef);
+                combination = new IndexCombination(rootIndexDef, checker);
                 combinations.put(rootIndexDef.getName(), combination);
             }
             
@@ -151,12 +151,14 @@ public class UniqueIndexNodeStoreChecker implements MountedNodeStoreChecker<Uniq
     
     static class IndexCombination {
         private final ChildNodeEntry rootIndexDef;
+        private final UniqueIndexNodeStoreChecker checker;
         private final Map<Mount, NodeState> indexEntries = Maps.newHashMap();
         private final List<Mount[]> checked = new ArrayList<>();
         // bounded as the ErrorHolder has a reasonable limit of entries before it fails immediately
         private final Set<String> reportedConflictingValues = new HashSet<>();
         
-        IndexCombination(ChildNodeEntry rootIndexDef) {
+        IndexCombination(ChildNodeEntry rootIndexDef, UniqueIndexNodeStoreChecker checker) {
+            this.checker = checker;
             this.rootIndexDef = rootIndexDef;
         }
         
@@ -227,7 +229,7 @@ public class UniqueIndexNodeStoreChecker implements MountedNodeStoreChecker<Uniq
                     IndexEntry hit2 = result.get();
                     if ( reportedConflictingValues.add(hit.getPropertyValue())) {
                         errorHolder.report(wrapper.nodeStore, hit.getPath(), wrapper2.nodeStore, hit2.getPath(), 
-                                hit.getPropertyValue(), "duplicate unique index entry");
+                                hit.getPropertyValue(), "duplicate unique index entry", checker);
                     }
                 }
             }