Index: jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DavResourceFactoryImpl.java =================================================================== --- jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DavResourceFactoryImpl.java (revision 752480) +++ jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DavResourceFactoryImpl.java Mon Aug 17 11:51:48 CEST 2009 @@ -33,6 +33,7 @@ import org.apache.jackrabbit.webdav.transaction.TransactionResource; import org.apache.jackrabbit.webdav.version.DeltaVServletRequest; import org.apache.jackrabbit.webdav.version.VersionControlledResource; +import org.apache.jackrabbit.JcrConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -98,10 +99,14 @@ try { resource = createResourceForItem(locator, session); + Item repItem = getItem(session, locator); + boolean versionable = + repItem.isNode() && ((Node)repItem).isNodeType(JcrConstants.MIX_VERSIONABLE); + /* if the created resource is version-controlled and the request contains a Label header, the corresponding Version must be used instead.*/ - if (request instanceof DeltaVServletRequest && isVersionControlled(resource)) { + if (request instanceof DeltaVServletRequest && versionable && isVersionControlled(resource)) { String labelHeader = ((DeltaVServletRequest)request).getLabel(); if (labelHeader != null && DavMethods.isMethodAffectedByLabel(request)) { Item item = getItem(session, locator);