Roland Porath wrote:
When I try to set a property on a resource (non collection) to an xml-value
I get some strange behavior:

This is the request:
PROPPATCH
/jackrabbit-webapp-1.4/repository/default/SmartRepository/files/Demonstratio
n/proptest/test.txt HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: cadaver/0.22.2 neon/0.24.6
Connection: TE
TE: trailers
Content-Length: 304
Content-Type: application/xml
Authorization: Basic QWRtaW5pc3RyYXRvcjpmcmVlLkRPTQ==
<?xml version="1.0" encoding="utf-8" ?>
   <D:propertyupdate xmlns:D="DAV:">
      <D:set>
         <D:prop>
            <anotherProp
xmlns="http://webdav.org/cadaver/custom-properties/";>
               <subProp1>subProp1Value</subProp1>
               <subProp2>
                  <subSubProp>subSubPropValue</subSubProp>
               </subProp2>
            </anotherProp>
         </D:prop>
      </D:set>
   </D:propertyupdate>

- the result is HTTP 207 Multi-Status;
- jackrabbit throws no exceptions and logs no errors so everything seems to
be just fine.

However when I do a propget this is what comes back:
anotherProp = [[subProp1: null], [subProp2: null]]

am I missing something here?

The same request works just nicely with slide.

JCR lacks the ability to store XML properties natively.

Thus the WebDAV layer either should reject these values, or make sure the XML is serialized when stored, and re-parsed in the other direction. That may be tricky to implement as there's no simple way to distinguish between strings and XML in the store.

BR, Julian


Reply via email to