On Wed, Jun 20, 2012 at 2:30 PM, C. Michael Pilato <cmpil...@collab.net> wrote: > On 06/20/2012 02:24 PM, gst...@apache.org wrote: >> + /* If we are talking to an old server, then the sha1-checksum property >> + will not exist. In our property parsing code, we don't bother to >> + check the <status> element which would indicate a 404. That section >> + needs to name the 404'd property, so our parsing code only sees: >> + >> + <g0:sha1-checksum/> >> + >> + That is parsed as an empty string value for the property. >> + >> + When checking the property, if it is missing (NULL), or the above >> + empty string, then we know the property doesn't exist. >> + >> + Strictly speaking, we could start parsing <status> and omit any >> + properties that were 404'd. But the 404 only happens when we ask >> + for a specific property, and it is easier to just check for the >> + empty string. Since it isn't a legal value in this case, we won't >> + get confused with a truly existent property. */ > > I remember writing ra_neon's PROPFIND parsing logic to parse the > per-property status field. Surely it can't be *that hard* to do the right > thing here, and stop conflating the empty string with a NULL one.
404 can only happen for properties we specifically ask for. They are always there. Except for this one, on old servers. I'm not going to write a hundred lines of code when an empty string test works just fine. Cheers, -g