[ 
https://issues.apache.org/jira/browse/OAK-11768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcel Reutegger resolved OAK-11768.
------------------------------------
    Fix Version/s: 1.82.0
       Resolution: Fixed

Merged the PR.

> Repository on read-only NodeStore
> ---------------------------------
>
>                 Key: OAK-11768
>                 URL: https://issues.apache.org/jira/browse/OAK-11768
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core, jcr
>            Reporter: Marcel Reutegger
>            Assignee: Marcel Reutegger
>            Priority: Minor
>             Fix For: 1.82.0
>
>
> It is currently not possible to create a Repository on a read-only 
> SegmentNodeStore. The following code fails with an exception when trying to 
> create a repository on an existing segment store on the filesystem.
> {noformat}
> ReadOnlyFileStore store = newFileStoreBuilder().buildReadOnly();
> SegmentNodeStore ns = SegmentNodeStoreBuilders.builder(store).build();
> Jcr jcr = new Jcr(new Oak(ns), false);
> jcr.with(new OpenSecurityProvider());
> Repository repo = jcr.createRepository();
> {noformat}
> The exception looks something like this:
> {noformat}
> java.lang.UnsupportedOperationException: Cannot write to read-only store
>       at 
> org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder$1.getGCGeneration(DefaultSegmentWriterBuilder.java:184)
>       at 
> org.apache.jackrabbit.oak.segment.DefaultSegmentWriter.writeNode(DefaultSegmentWriter.java:202)
>       at 
> org.apache.jackrabbit.oak.segment.SegmentWriter.writeNode(SegmentWriter.java:79)
>       at 
> org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.getNodeState(SegmentNodeBuilder.java:140)
>       at 
> org.apache.jackrabbit.oak.segment.scheduler.Commit.getAfterState(Commit.java:76)
>       at 
> org.apache.jackrabbit.oak.segment.scheduler.Commit.hasChanges(Commit.java:129)
>       at 
> org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.execute(LockBasedScheduler.java:292)
>       at 
> org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.schedule(LockBasedScheduler.java:270)
>       at 
> org.apache.jackrabbit.oak.segment.SegmentNodeStore.merge(SegmentNodeStore.java:212)
>       at 
> org.apache.jackrabbit.oak.OakInitializer.initialize(OakInitializer.java:68)
>       at org.apache.jackrabbit.oak.Oak.initialContent(Oak.java:713)
>       at 
> org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:743)
>       at org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:683)
>       at 
> org.apache.jackrabbit.oak.jcr.Jcr.createContentRepository(Jcr.java:389)
>       at org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:398)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to