Hi Jukka On 09/10/2007, Jukka Zitting <[EMAIL PROTECTED]> wrote: > Looking at the code I never realized this was happening, but now that > you mentioned it I was able to find the relevant calls in > DefaultRecordProducer and AppendRecord. Is there a rationale for > having the calls in these locations, or should we consider refactoring > the code somehow? I'd find something like journal.append(record) > followed by journal.unlock() more intuitive than record.update(), but > I guess that would spread both the journal reference and the locking > functionality to a number of places around Jackrabbit.
I agree that the "lock and sync" functionality is located in a place where it is hard to find. The actual design was influenced by the need for an abstraction of the journal and by some bugs (notably https://issues.apache.org/jira/browse/JCR-884), which made it necessary to move more information (and responsibility) to the Record class. I can refactor the necessary parts if you think that it's worthwhile. Dominique
