[ https://issues.apache.org/jira/browse/OAK-8304?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Davide Giannella closed OAK-8304.
---------------------------------
bulk close 1.14.0
> 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)
|