You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2006/10/27 15:52:27 UTC
svn commit: r468384 -
/jackrabbit/trunk/jcr-server/server/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
Author: angela
Date: Fri Oct 27 06:52:26 2006
New Revision: 468384
URL: http://svn.apache.org/viewvc?view=rev&rev=468384
Log:
- add distiction between session and open scoped locks
- existing lock must be listed as session-ref in order to avoid logout
- improve log output.
Modified:
jackrabbit/trunk/jcr-server/server/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
Modified: jackrabbit/trunk/jcr-server/server/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jcr-server/server/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java?view=diff&rev=468384&r1=468383&r2=468384
==============================================================================
--- jackrabbit/trunk/jcr-server/server/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java (original)
+++ jackrabbit/trunk/jcr-server/server/src/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java Fri Oct 27 06:52:26 2006
@@ -32,6 +32,7 @@
import org.apache.jackrabbit.webdav.io.InputContext;
import org.apache.jackrabbit.webdav.io.OutputContext;
import org.apache.jackrabbit.webdav.jcr.lock.JcrActiveLock;
+import org.apache.jackrabbit.webdav.jcr.lock.SessionScopedLockEntry;
import org.apache.jackrabbit.webdav.jcr.nodetype.NodeTypeProperty;
import org.apache.jackrabbit.webdav.jcr.version.report.ExportViewReport;
import org.apache.jackrabbit.webdav.jcr.version.report.LocateCorrespondingNodeReport;
@@ -537,7 +538,6 @@
log.warn("Unable to retrieve lock: no item found at '" + getResourcePath() + "'");
} else if (((Node) item).isLocked()) {
Lock jcrLock = ((Node) item).getLock();
- // TODO: find out whether this lock is session-scoped or not!
lock = new JcrActiveLock(jcrLock);
}
} catch (AccessDeniedException e) {
@@ -580,6 +580,8 @@
try {
boolean sessionScoped = EXCLUSIVE_SESSION.equals(reqLockInfo.getScope());
Lock jcrLock = ((Node)item).lock(reqLockInfo.isDeep(), sessionScoped);
+ // add reference to DAVSession for this lock
+ getSession().addReference(jcrLock.getLockToken());
return new JcrActiveLock(jcrLock, sessionScoped);
} catch (RepositoryException e) {
@@ -713,7 +715,7 @@
}
// only custom ordering is allowed
if (!OrderingConstants.ORDERING_TYPE_CUSTOM.equalsIgnoreCase(orderPatch.getOrderingType())) {
- throw new DavException(DavServletResponse.SC_UNPROCESSABLE_ENTITY,"Only DAV:custom ordering type supported.");
+ throw new DavException(DavServletResponse.SC_UNPROCESSABLE_ENTITY, "Only DAV:custom ordering type supported.");
}
OrderPatch.Member[] instructions = orderPatch.getOrderInstructions();
@@ -793,8 +795,7 @@
try {
if (exists() && ((Node)item).isNodeType(JcrConstants.MIX_LOCKABLE)) {
supportedLock.addEntry(Type.WRITE, Scope.EXCLUSIVE);
- // TODO: do session-scoped lock properly (including session caching and proper scope discovery)
- //supportedLock.addEntry(new SessionScopedLockEntry());
+ supportedLock.addEntry(new SessionScopedLockEntry());
}
} catch (RepositoryException e) {
log.warn(e.getMessage());
@@ -855,7 +856,7 @@
Item primaryItem = n.getPrimaryItem();
addHrefProperty(JCR_PRIMARYITEM, new Item[] {primaryItem}, true);
} catch (ItemNotFoundException e) {
- log.info("No primary item present on this node '" + getResourcePath() + "'");
+ log.debug("No primary item present on this node '" + getResourcePath() + "'");
} catch (RepositoryException e) {
log.error("Error while retrieving primary item: " + e.getMessage());
}