[
https://issues.apache.org/jira/browse/JCRVLT-648?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konrad Windszus updated JCRVLT-648:
-----------------------------------
Description:
With JCRVLT-547 there was a distinction between recoverable/non-recoverable
repository exceptions introduced to allow to fail earlier and also to improve
the retry mechanism.
It turned out the {{javax.jcr.InvalidItemStateException}} was incorrectly
qualified as recoverable exception, as a simple save() later on the same
session does never succeed.
There are two different recovery mechanisms in place:
# Simple retry of the save() on the same session just after few more
nodes/properties have been added/modified
# More complex retry based on checkpoints in the past, where a new session is
being used
While 1. is the correct approach for {{ConstraintViolationException}} it is
never successful for {{InvalidItemStateException}}.
was:
With JCRVLT-547 there was a distinction between recoverable/non-recoverable
repository exceptions introduced to allow to fail earlier and also to improve
the retry mechanism.
It turned out the {{javax.jcr.InvalidItemStateException}} was incorrectly
qualified as recoverable exception, as it seems if mid-air write collisions
occur so won't resolve later.
There are two different recovery mechanisms in place:
# Simple retry of the save() on the same session just after few more
nodes/properties have been added/modified
# More complex retry based on checkpoints in the past, where a new session is
being used
While 1. is the correct approach for {{ConstraintViolationException}} it is
never successful for {{InvalidItemStateException}}.
> Don't treat javax.jcr.InvalidItemStateException as transient during package
> import
> ----------------------------------------------------------------------------------
>
> Key: JCRVLT-648
> URL: https://issues.apache.org/jira/browse/JCRVLT-648
> Project: Jackrabbit FileVault
> Issue Type: Improvement
> Reporter: Konrad Windszus
> Assignee: Konrad Windszus
> Priority: Major
> Fix For: 3.6.2
>
>
> With JCRVLT-547 there was a distinction between recoverable/non-recoverable
> repository exceptions introduced to allow to fail earlier and also to improve
> the retry mechanism.
> It turned out the {{javax.jcr.InvalidItemStateException}} was incorrectly
> qualified as recoverable exception, as a simple save() later on the same
> session does never succeed.
> There are two different recovery mechanisms in place:
> # Simple retry of the save() on the same session just after few more
> nodes/properties have been added/modified
> # More complex retry based on checkpoints in the past, where a new session is
> being used
> While 1. is the correct approach for {{ConstraintViolationException}} it is
> never successful for {{InvalidItemStateException}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)