On 2012-07-20 00:44, Alexander Klimetschek wrote:
On 19.07.2012, at 22:22, Julian Reschke wrote:
On 2012-07-19 21:47, Alexander Klimetschek wrote:
On 12.06.2012, at 15:01, Julian Reschke wrote:
Is this just to avoid catching exceptions? (keep in mind that the
exception might be thrown anyway...)
No, if hasProperty() returns true, you don't expect the PathNotFoundEx and
don't have to handle it for the purpose of semantics! There is no
catch(PathNotFoundEx) in the code you quote :-)
Except for race conditions.
Yes, but that's a separate issue (atomic behavior). Any write operation based
on that will be a separate call anyway.
IMHO such application-level semantics (does exist vs. does not exist) should
not be handled by exceptions. Simply because it is not what exceptions are
designed for (exceptions), when the normal application logic expects this case.
try/catch for normal logic is confusing.
I agree with that, but that's how JCR works.
It probably would be good to consider getProperties(...), returning an
Iterator, instead. Of course we first would need to optimize this in
Jackrabbit.
Best regards, Julian