You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by dp...@apache.org on 2006/12/13 08:41:55 UTC
svn commit: r486534 - in
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core:
CachingHierarchyManager.java lock/AbstractLockInfo.java
lock/LockManagerImpl.java
Author: dpfister
Date: Tue Dec 12 23:41:55 2006
New Revision: 486534
URL: http://svn.apache.org/viewvc?view=rev&rev=486534
Log:
Make CachingHierarchyManager and LockManager dumpable to print layout of internal path maps
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/AbstractLockInfo.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java?view=diff&rev=486534&r1=486533&r2=486534
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java Tue Dec 12 23:41:55 2006
@@ -22,6 +22,7 @@
import org.apache.jackrabbit.core.state.ItemStateManager;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.NodeStateListener;
+import org.apache.jackrabbit.core.util.Dumpable;
import org.apache.jackrabbit.name.MalformedPathException;
import org.apache.jackrabbit.name.NamespaceResolver;
import org.apache.jackrabbit.name.Path;
@@ -34,6 +35,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.io.PrintStream;
import javax.jcr.ItemNotFoundException;
import javax.jcr.PathNotFoundException;
@@ -44,7 +46,7 @@
* items.
*/
public class CachingHierarchyManager extends HierarchyManagerImpl
- implements NodeStateListener {
+ implements NodeStateListener, Dumpable {
/**
* Default upper limit of cached states
@@ -661,6 +663,32 @@
}
}
}
+ }
+
+ /**
+ * Dump contents of path map and elements included to <code>PrintStream</code> given.
+ *
+ * @param ps print stream to dump to
+ */
+ public void dump(final PrintStream ps) {
+ pathCache.traverse(new PathMap.ElementVisitor() {
+ public void elementVisited(PathMap.Element element) {
+ StringBuffer line = new StringBuffer();
+ for (int i = 0; i < element.getDepth(); i++) {
+ line.append("--");
+ }
+ line.append(element.getName());
+ int index = element.getIndex();
+ if (index != 0 && index != 1) {
+ line.append('[');
+ line.append(index);
+ line.append(']');
+ }
+ line.append(" ");
+ line.append(element.get());
+ ps.println(line.toString());
+ }
+ }, true);
}
/**
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/AbstractLockInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/AbstractLockInfo.java?view=diff&rev=486534&r1=486533&r2=486534
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/AbstractLockInfo.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/AbstractLockInfo.java Tue Dec 12 23:41:55 2006
@@ -143,4 +143,26 @@
public boolean isSessionScoped() {
return sessionScoped;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append('(');
+ if (deep) {
+ buffer.append("deep ");
+ }
+ if (sessionScoped) {
+ buffer.append("session ");
+ }
+ buffer.append("holder:");
+ if (lockHolder != null) {
+ buffer.append(lockHolder.getUserID());
+ } else {
+ buffer.append("none");
+ }
+ buffer.append(')');
+ return buffer.toString();
+ }
}
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java?view=diff&rev=486534&r1=486533&r2=486534
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java Tue Dec 12 23:41:55 2006
@@ -24,6 +24,7 @@
import org.apache.jackrabbit.util.PathMap;
import org.apache.jackrabbit.core.SessionImpl;
import org.apache.jackrabbit.core.SessionListener;
+import org.apache.jackrabbit.core.util.Dumpable;
import org.apache.jackrabbit.core.cluster.LockEventChannel;
import org.apache.jackrabbit.core.cluster.LockEventListener;
import org.apache.jackrabbit.core.fs.FileSystem;
@@ -53,13 +54,15 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
+import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Iterator;
/**
* Provides the functionality needed for locking and unlocking nodes.
*/
-public class LockManagerImpl implements LockManager, SynchronousEventListener, LockEventListener {
+public class LockManagerImpl implements LockManager, SynchronousEventListener,
+ LockEventListener, Dumpable {
/**
* Logger
@@ -1005,5 +1008,31 @@
} finally {
release();
}
+ }
+
+ /**
+ * Dump contents of path map and elements included to <code>PrintStream</code> given.
+ *
+ * @param ps print stream to dump to
+ */
+ public void dump(final PrintStream ps) {
+ lockMap.traverse(new PathMap.ElementVisitor() {
+ public void elementVisited(PathMap.Element element) {
+ StringBuffer line = new StringBuffer();
+ for (int i = 0; i < element.getDepth(); i++) {
+ line.append("--");
+ }
+ line.append(element.getName());
+ int index = element.getIndex();
+ if (index != 0 && index != 1) {
+ line.append('[');
+ line.append(index);
+ line.append(']');
+ }
+ line.append(" ");
+ line.append(element.get());
+ ps.println(line.toString());
+ }
+ }, true);
}
}