[
https://issues.apache.org/jira/browse/OAK-2384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14270956#comment-14270956
]
Michael Dürig commented on OAK-2384:
------------------------------------
A fix would need to cache the property states on the heap.
See
https://github.com/mduerig/jackrabbit-oak/commit/2b678a8a430375f5e4411512551c6335fd986cb8
for a simple solution.
A more sophisticated approach would only cache once the underlying segment is
being gc'ed. See
https://github.com/mduerig/jackrabbit-oak/commit/5d5260e19653e85554da3ad77dc5cd35f7d089a5.
[~alex.parvulescu], could you have a look?
> SegmentNotFoundException when keeping JCR Value references
> ----------------------------------------------------------
>
> Key: OAK-2384
> URL: https://issues.apache.org/jira/browse/OAK-2384
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: core
> Reporter: Michael Dürig
> Assignee: Michael Dürig
> Priority: Critical
> Fix For: 1.0.10, 1.1.5
>
>
> With OAK-2192 revision gc started to remove segments older than a certain
> threshold. The underlying assumption was that old sessions would call refresh
> (i.e. auto refresh) anyway once they become active again. However, it turns
> out that refreshing a sessions does not affect JCR values as those are
> directly tied to the underlying record. Accessing those values after its
> segment has been gc'ed results in a {{SegmentNotFoundException}}.
> Keeping reference to JCR values is an important use case for Sling's
> {{JcrPropertyMap}}, which is widely used.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)