[
https://issues.apache.org/jira/browse/JCR-1508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12584057#action_12584057
]
Marcel Reutegger commented on JCR-1508:
---------------------------------------
> The SPI implementation could throw the exception while adding the change to
> the Batch, couldn't it?
That's correct. It could, but we currently don't require that a Batch
implementation performs that check. If we require the check, then this has
consequences how Batches are implemented. Currently it is possible to have a
Batch that is entirely decoupled from the server. That allows a very simple
implementation.
> Setting a new property value causes a read of the previous property value
> -------------------------------------------------------------------------
>
> Key: JCR-1508
> URL: https://issues.apache.org/jira/browse/JCR-1508
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-jcr2spi
> Affects Versions: 1.4
> Reporter: David Rauschenbach
>
> When using JCR2SPI with a custom SPI, getProperty is called when one attempts
> to set a new property value with disregard to the previous value. The current
> JCR2SPI implementation causes a getPropertyInfo, which requests the old value
> from the back-end. This is fundamentally unsound, and kills performance.
> An SPI has no choice but to guard against this by returning a PropertyInfo
> proxy that performs lazy-loading of the value. The problem is that if an
> error occurs when dereferencing the value, and when performing the lazy-load,
> JCR2SPI is ill-suited to hande an unchecked exception at such a time.
> Besides, it is a "hack upon a hack", because JCR2SPI could do this work
> itself, by making proper use of the SPI functions for requesting property
> type information.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.