You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ck...@apache.org on 2010/06/11 09:08:17 UTC

svn commit: r953585 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query: AbstractQueryHandler.java OnWorkspaceInconsistency.java

Author: ckoell
Date: Fri Jun 11 07:08:17 2010
New Revision: 953585

URL: http://svn.apache.org/viewvc?rev=953585&view=rev
Log:
JCR-2651 Add a OnWorkspaceInconsistency with logging only

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/AbstractQueryHandler.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/OnWorkspaceInconsistency.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/AbstractQueryHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/AbstractQueryHandler.java?rev=953585&r1=953584&r2=953585&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/AbstractQueryHandler.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/AbstractQueryHandler.java Fri Jun 11 07:08:17 2010
@@ -140,9 +140,10 @@ public abstract class AbstractQueryHandl
 
     /**
      * Sets the {@link OnWorkspaceInconsistency} handler with the given name.
-     * Currently the only valid name is:
+     * Currently the valid names are:
      * <ul>
      * <li><code>fail</code></li>
+     * <li><code>log</code></li>
      * </ul>
      *
      * @param name the name of a {@link OnWorkspaceInconsistency} handler.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/OnWorkspaceInconsistency.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/OnWorkspaceInconsistency.java?rev=953585&r1=953584&r2=953585&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/OnWorkspaceInconsistency.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/OnWorkspaceInconsistency.java Fri Jun 11 07:08:17 2010
@@ -66,11 +66,36 @@ public abstract class OnWorkspaceInconsi
         }
     };
 
+    /**
+     * An handler that simply logs the path of the parent node and the name
+     * of the missing child node
+     */
+    public static final OnWorkspaceInconsistency LOG = new OnWorkspaceInconsistency("log") {
+
+        public void handleMissingChildNode(NoSuchItemStateException exception,
+                                           QueryHandler handler,
+                                           Path path,
+                                           NodeState node,
+                                           ChildNodeEntry child)
+                throws RepositoryException, ItemStateException {
+            NamePathResolver resolver = new DefaultNamePathResolver(
+                    handler.getContext().getNamespaceRegistry());
+            log.error("Node {} ({}) has missing child '{}' ({})",
+                    new Object[]{
+                        resolver.getJCRPath(path),
+                        node.getNodeId(),
+                        resolver.getJCRName(child.getName()),
+                        child.getId()
+                    } + ". Please run a consistency check on this workspace!");
+        }
+    };
+
     protected static final Map<String, OnWorkspaceInconsistency> INSTANCES
             = new HashMap<String, OnWorkspaceInconsistency>();
 
     static {
         INSTANCES.put(FAIL.name, FAIL);
+        INSTANCES.put(LOG.name, LOG);
     }
 
     /**