Hi again,
> > please note, that the 'local' scope only informs the > server, that any subsequent modification flaged with the > locktoken return by this special LOCK request must > be treated as transient modification. Session.save() or > Item.save() will be called upon the UNLOCK only. If I made any mistake please correct me. If Session.save/Item.save is called only upon the UNLOCK - thus if I call only LOCK and MKCOL with lock token (but without UNLOCK), then the collection SHOULD NOT be created. Is that true? I took the following steps: 1. (connecting) calling SEARCH to show that given resource does not exist (disconnecting) 2. (connecting) calling LOCK and MKCOL with lock token (disconnecting) 3. (connecting) calling SEARCH again to show that given resource exists although I did not call UNLOCK Bellow I inserted how looked my requests and received responses: Ad.1. First SEARCH: ############# SEARCH request ################## SEARCH http://localhost:8080/org.eclipse.corona.jackrabbit.web/server/Jackrabbi tDemoWorkspace/ Content-Type: text/xml; charset="UTF8" <?xml version="1.0" encoding="UTF-8"?> <D:searchrequest xmlns:D="DAV:" xmlns:corona="http://www.eclipse.org/corona" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0"> <xpath>//corona:root/testNoCommit</xpath> </D:searchrequest> ############################################## ############# SEARCH response ################## 207 Multi-Status content-type: text/xml;charset=UTF-8 date: Tue, 09 Jan 2007 11:44:17 GMT content-length: 71 server: Apache-Coyote/1.1 <?xml version="1.0" encoding="UTF-8"?> <D:multistatus xmlns:D="DAV:"/> ############################################## No results returned - testNoCommit folder does not exist. Ad.2. LOCK and MKCOL after reconnecting: ############# LOCK request ################## LOCK http://localhost:8080/org.eclipse.corona.jackrabbit.web/server/Jackrabbi tDemoWorkspace/corona%3aroot Depth: infinity Timeout: Second-60 Content-Type: text/xml; charset="UTF8" <?xml version="1.0" encoding="UTF-8"?> <D:lockinfo xmlns:D="DAV:"> <D:lockscope><dcr:local xmlns:dcr="http://www.day.com/jcr/webdav/1.0"/></D:lockscope> <D:locktype><dcr:transaction xmlns:dcr="http://www.day.com/jcr/webdav/1.0"/></D:locktype> </D:lockinfo> ############################################## ############# LOCK response ################## 200 OK content-type: text/xml;charset=UTF-8 date: Tue, 09 Jan 2007 11:47:57 GMT lock-token: <opaquelocktoken:1e78af65-babc-4cc0-a830-29b6169e1ed7> server: Apache-Coyote/1.1 content-length: 649 <?xml version="1.0" encoding="UTF-8"?> <D:prop xmlns:D="DAV:"> <D:lockdiscovery> <D:activelock> <D:lockscope> <dcr:local xmlns:dcr="http://www.day.com/jcr/webdav/1.0"/> </D:lockscope> <D:locktype> <dcr:transaction xmlns:dcr="http://www.day.com/jcr/webdav/1.0"/> </D:locktype> <D:depth>infinity</D:depth> <D:timeout>Second-60</D:timeout> <D:locktoken> <D:href>opaquelocktoken:1e78af65-babc-4cc0-a830-29b6169e1ed7</D:href> </D:locktoken> </D:activelock> </D:lockdiscovery> </D:prop> ############################################## ############# MKCOL request ################## MKCOL http://localhost:8080/org.eclipse.corona.jackrabbit.web/server/Jackrabbi tDemoWorkspace/corona%3aroot/testNoCommit/ Lock-Token: <opaquelocktoken:1e78af65-babc-4cc0-a830-29b6169e1ed7> Content-Type: text/xml; charset="UTF8" <?xml version="1.0" encoding="UTF-8"?> <sv:node xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" sv:name="testNoCommit"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>nt:folder</sv:value> </sv:property> <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> <sv:value>mix:referenceable</sv:value> <sv:value>mix:lockable</sv:value> </sv:property> </sv:node> ############################################## ############# MKCOL response ################## 201 Created date: Tue, 09 Jan 2007 11:47:57 GMT server: Apache-Coyote/1.1 content-length: 0 ############################################## No UNLOCK is called thus session.save() should not be called - after reconnecting "testNoCommit" folder should not exist. Ad.3. Second SEARCH after reconnecting: ############# SEARCH request ################## SEARCH http://localhost:8080/org.eclipse.corona.jackrabbit.web/server/Jackrabbi tDemoWorkspace/ Content-Type: text/xml; charset="UTF8" <?xml version="1.0" encoding="UTF-8"?> <D:searchrequest xmlns:D="DAV:" xmlns:corona="http://www.eclipse.org/corona" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0"> <xpath>//corona:root/testNoCommit</xpath> </D:searchrequest> ############################################## ############# SEARCH response ################## 207 Multi-Status content-type: text/xml;charset=UTF-8 date: Tue, 09 Jan 2007 12:00:57 GMT content-length: 1005 server: Apache-Coyote/1.1 <?xml version="1.0" encoding="UTF-8"?> <D:multistatus xmlns:D="DAV:"> <D:response> <D:href>http://localhost:8080/org.eclipse.corona.jackrabbit.web/server/J ackrabbitDemoWorkspace/corona%3aroot/testNoCommit/</D:href> <D:propstat> <D:prop> <dcr:search-result-property xmlns:dcr="http://www.day.com/jcr/webdav/1.0"> <dcr:name>jcr:primaryType</dcr:name> <dcr:value>nt:folder</dcr:value> <dcr:type>Name</dcr:type> <dcr:name>jcr:path</dcr:name> <dcr:value>/corona:root/testNoCommit</dcr:value> <dcr:type>Path</dcr:type> <dcr:name>jcr:score</dcr:name> <dcr:value>1000</dcr:value> <dcr:type>Long</dcr:type> </dcr:search-result-property> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> </D:multistatus> ############################################## SEARCH found "testNoCommit" folder - thus session.save was called without UNLOCK! BR Edyta > > see the corresponding docu draft at > > http://www.day.com/jsr170/server/JCR_Webdav_Protocol.zip > > real transaction is not supported anyway at the moment, > since it has been decided once, that dependency to > jackrabbit-core should be present in the jcr-server. the > corresponding code therefore was commented. The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.
