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 Later Charlie
