[
https://issues.apache.org/jira/browse/JCR-3086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Reschke updated JCR-3086:
--------------------------------
Description:
There's an infinite loop waiting to happen when the underlying persisted
version storage is defect:
{noformat}
at
org.apache.jackrabbit.core.version.InternalVersionImpl.getSuccessors(InternalVersionImpl.java:148)
at
org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.init(InternalVersionHistoryImpl.java:165)
at
org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.reload(InternalVersionHistoryImpl.java:180)
at
org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.getVersion(InternalVersionHistoryImpl.java:299)
{noformat}
(line numbers from 2.2)
What happens here is that when a version can not be instantiated, reload() is
called, which in turn calls init(), which, as part of piece of code labeled
"fix legacy" will call getSuccessors(), which in turn wants to instantiate
versions.
was:
There's an infinite loop waiting to happen when the underlying persisted
version storage is defect:
at
org.apache.jackrabbit.core.version.InternalVersionImpl.getSuccessors(InternalVersionImpl.java:148)
at
org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.init(InternalVersionHistoryImpl.java:165)
at
org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.reload(InternalVersionHistoryImpl.java:180)
at
org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.getVersion(InternalVersionHistoryImpl.java:299)
(line numbers from 2.2)
What happens here is that when a version can not be instantiated, reload() is
called, which in turn calls init(), which, as part of piece of code labeled
"fix legacy" will call getSuccessors(), which in turn wants to instantiate
versions.
> potential infinite loop around InternalVersionImpl.getSuccessors
> ----------------------------------------------------------------
>
> Key: JCR-3086
> URL: https://issues.apache.org/jira/browse/JCR-3086
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core
> Reporter: Julian Reschke
> Assignee: Julian Reschke
> Fix For: 2.2.10, 2.3.1
>
> Attachments: JCR-3086.patch
>
>
> There's an infinite loop waiting to happen when the underlying persisted
> version storage is defect:
> {noformat}
> at
> org.apache.jackrabbit.core.version.InternalVersionImpl.getSuccessors(InternalVersionImpl.java:148)
> at
> org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.init(InternalVersionHistoryImpl.java:165)
> at
> org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.reload(InternalVersionHistoryImpl.java:180)
> at
> org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.getVersion(InternalVersionHistoryImpl.java:299)
>
> {noformat}
> (line numbers from 2.2)
> What happens here is that when a version can not be instantiated, reload() is
> called, which in turn calls init(), which, as part of piece of code labeled
> "fix legacy" will call getSuccessors(), which in turn wants to instantiate
> versions.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)