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. 

Reply via email to