jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Charles Brooking" <public+jackrab...@charlie.brooking.id.au>
Subject WebDAV from Mac
Date Fri, 15 May 2009 06:52:26 GMT
Hi all

I'm running the Jackrabbit WebDAV servlet
(org.apache.jackrabbit.j2ee.SimpleWebdavServlet) and am currently
wrestling with the quirks of the Mac client. This has been mentioned
previously on the list: basically, if you upload a file 'foo.img', it will
create that file without any content, create another file '._foo.img' and
populate it with content, then *fail to* copy the contents from
'._foo.img' to 'foo.img' and delete '._foo.img'. The failure to copy
content means that only a zero-byte file remains.

Before I go and further debug things, is this a known problem?

I have performed an upload while running a simple event listener that just
outputs every event that happens. This might help people wanting to
understand things (and save them from running the experiment themselves).
I've added comments, particularly at the end where things totally break.

// Create foo.img file
[PROP_ADDED  ] at /files/foo.img/jcr:content/jcr:lastModified
[PROP_ADDED  ] at /files/foo.img/jcr:content/jcr:mimeType
[PROP_ADDED  ] at /files/foo.img/jcr:content/jcr:data
[PROP_ADDED  ] at /files/foo.img/jcr:content/jcr:primaryType
[NODE_ADDED  ] at /files/foo.img/jcr:content
[PROP_ADDED  ] at /files/foo.img/jcr:primaryType
[PROP_ADDED  ] at /files/foo.img/jcr:created
[NODE_ADDED  ] at /files/foo.img

// Create ._foo.img file
[PROP_ADDED  ] at /files/._foo.img/jcr:content/jcr:lastModified
[PROP_ADDED  ] at /files/._foo.img/jcr:content/jcr:data
[PROP_ADDED  ] at /files/._foo.img/jcr:content/jcr:mimeType
[PROP_ADDED  ] at /files/._foo.img/jcr:content/jcr:primaryType
[PROP_ADDED  ] at /files/._foo.img/jcr:created
[PROP_ADDED  ] at /files/._foo.img/jcr:primaryType
[NODE_ADDED  ] at /files/._foo.img/jcr:content
[NODE_ADDED  ] at /files/._foo.img

// Add data to ._foo.img file
[PROP_ADDED  ] at /files/._foo.img/jcr:mixinTypes
[PROP_ADDED  ] at /files/._foo.img/jcr:lockIsDeep
[PROP_ADDED  ] at /files/._foo.img/jcr:lockOwner
[PROP_CHANGED] at /files/._foo.img/jcr:content/jcr:lastModified
[PROP_CHANGED] at /files/._foo.img/jcr:content/jcr:data
[PROP_REMOVED] at /files/._foo.img/jcr:lockIsDeep
[PROP_REMOVED] at /files/._foo.img/jcr:lockOwner

// Add data to .DS_Store file
[PROP_ADDED  ] at /files/.DS_Store/jcr:lockOwner
[PROP_ADDED  ] at /files/.DS_Store/jcr:lockIsDeep
[PROP_CHANGED] at /files/.DS_Store/jcr:content/jcr:lastModified
[PROP_CHANGED] at /files/.DS_Store/jcr:content/jcr:data
[PROP_REMOVED] at /files/.DS_Store/jcr:lockOwner
[PROP_REMOVED] at /files/.DS_Store/jcr:lockIsDeep

// Delete ._foo.img file
[PROP_ADDED  ] at /files/._foo.img/jcr:lockIsDeep
[PROP_ADDED  ] at /files/._foo.img/jcr:lockOwner
[PROP_REMOVED] at /files/._foo.img/jcr:lockIsDeep
[PROP_REMOVED] at /files/._foo.img/jcr:lockOwner
[NODE_REMOVED] at /files/._foo.img/jcr:content
[NODE_REMOVED] at /files/._foo.img

// Add data to foo.img file? (most times nothing actually happens here:
// jcr:content/jcr:data is not set and resulting files is 0 bytes)
[PROP_ADDED  ] at /files/foo.img/jcr:mixinTypes
[PROP_ADDED  ] at /files/foo.img/jcr:lockOwner
[PROP_ADDED  ] at /files/foo.img/jcr:lockIsDeep
// Expect [PROP_CHANGED] at /files/foo.img/jcr:content/jcr:lastModified
// Expect [PROP_CHANGED] at /files/foo.img/jcr:content/jcr:data
[PROP_REMOVED] at /files/foo.img/jcr:lockOwner
[PROP_REMOVED] at /files/foo.img/jcr:lockIsDeep


View raw message