[
https://issues.apache.org/jira/browse/OAK-8304?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
angela resolved OAK-8304.
-------------------------
Resolution: Fixed
Fix Version/s: 1.14.0
Committed revision 1858994.
> VersionablePathHook: Diff.setVersionablePath never results in
> CommitFailedException
> -----------------------------------------------------------------------------------
>
> Key: OAK-8304
> URL: https://issues.apache.org/jira/browse/OAK-8304
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core, security
> Reporter: angela
> Assignee: angela
> Priority: Major
> Fix For: 1.14.0
>
> Attachments: OAK-8304.patch
>
>
> I tried to come up with a test case that would result in the
> {{VersionablePathHook}} running into a {{CommitFailedException}} upon
> accessing the version history and found out that this will never occur. In
> other words, the whole logic to collection {{CommitFailedException}} in
> {{VersionablePathHook}} is redundant.
> What I found was that {{ReadWriteVersionManager.getOrCreateVersionHistory}}
> is defined to potentially throw the exception on calling {{createVersion}},
> which is only triggered if the version history node contains no
> {{jcr:rootVersion}} child. However, {{createVersion}} will never throw
> {{CommitFailedException}} if the root version is created as the exception may
> only occur upon populating the {{jcr:frozenNode}}.
> Long story short: introducing {{ReadWriteVersionManager.createRootVersion}}
> and calling it from {{getOrCreateVersionHistory}} would simplify
> {{createVersion}}, make the exception declaration redundant and spare us the
> unused but prominent exception handling code in {{VersionablePathHook}}.
> [~stillalex], [~mreutegg], i would appreciate if you could review the
> proposed changes to {{VersionablePathHook}} and {{ReadWriteVersionManager}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)