jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From IvanLatysh <i...@yourmail.com>
Subject Re: 3.1.3.1 Removing Items
Date Fri, 20 Jul 2007 15:31:26 GMT
Julian Reschke wrote:

> Well, in the JCR property model "null" and non-existance are the same. 
> As far as I can tell, the same applies to WebDAV properties, RDF and the 
> XPath data model.
I can't say for WebDAV, but I can say that for FS file with length 0 and no file 
are different things.
And you are wrong about XPath, Here is an example:

<data>
   <distance case="1" unit="km">120</distance>
   <distance case="2" unit="">130</distance>
   <distance case="3">140</distance>
</data>

exists(/data/distance[@case='1']/@unit) = true
exists(/data/distance[@case='2']/@unit) = true
exists(/data/distance[@case='3']/@unit) = false

The null is a value, even it has a special meaning, but it is a value and have 
the same weight as for instance 10 or 100 or 0 or Integer.MAX_VALUE.

> I think it is a *feature* that these data models are compatible.
It is not true.

> BTW: what would be a use case for the ability to differentiate between 
> "null" and "not there"?
> 
>> inside JCR -- and for solving this one must usually create a null-like
>> value.
>>
>> The OP is suggesting that this is a spec issue and storing null values
>> should be allowed. But doing so results in API behavioral changes,
>> because currently property.setValue(null) is equivalent to remove.

Since we are talking about 2.0 and many things will get broken, so let's do all 
fixes at one time, to minimize developers pain.

P.S. I wonder why to defend current behavior when everybody understand that 
setting value to a property does not mean that it should be deleted, regardless 
of the set value ...

-- 
Ivan Latysh
ivan@yourmail.com

Mime
View raw message