hello konrad.

yes, this is exactly the error message I'm observing as well with any bundle 
using Sling-Initial-Content on AEMaaCS.
although it's reported with "ERROR" level it's all running fine, because the 
instance was already started once during the docker image building process and 
the content contained in the bundle gets extracted and persisted in the 
"read-only" part of the repository. but this was probably not by intention, but 
a (although positive) side-effect of the current docker image building process 
that is in place.

i had also thought about extending the loader to log this error only in case 
the content in the bundle is different. but this would be rather complex to 
implement (have to make a full diff of the repository content and the 
Sling-Initial-Content), and would more try to cure the symptoms and not the 
root cause of the problem.

so i think solution should be either 1.+2. from my initial mailing to this 
thread (for 2. you already created SLING-10243), or following the idea from 
carsten building a maven plugin that moves the Sling-Initial-Content to a 
content package during the maven build of the module itself (which would make 
the handling of the resulting artifacts a bit more complicated downstream as 
you have to manage two artifacts instead of one from that point on).

stefan

>-----Original Message-----
>From: Konrad Windszus <[email protected]>
>Sent: Friday, March 19, 2021 12:51 PM
>To: [email protected]
>Subject: Re: [RT] Make bundles with Sling-Initial-Content first-class
>citizens in feature model tooling
>
>Today I faced this issue while deploying Composum Nodes to AEMaaCS Publish
>(https://github.com/ist-dresden/composum-nodes/issues/237
><https://github.com/ist-dresden/composum-nodes/issues/237>):
>
>19.03.2021 02:56:13.558 [cm-p29008-e106842-aem-publish-748769766d-rs4bh]
>*ERROR* [Apache Sling Repository Startup Thread #1]
>org.apache.sling.jcr.contentloader.internal.ContentLoaderService Problem
>loading initial content of bundle com.composum.core.usermgnt (573)
>java.lang.UnsupportedOperationException: This builder is read-only.
>       at
>org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.unsupported(ReadOnlyBui
>lder.java:44) [org.apache.jackrabbit.oak-store-spi:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.remove(ReadOnlyBuilder.
>java:110) [org.apache.jackrabbit.oak-store-spi:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.core.SecureNodeBuilder.remove(SecureNodeBuilder.j
>ava:166) [org.apache.jackrabbit.oak-core:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.plugins.tree.impl.AbstractMutableTree.remove(Abst
>ractMutableTree.java:51) [org.apache.jackrabbit.oak-core:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.core.MutableTree.remove(MutableTree.java:184)
>[org.apache.jackrabbit.oak-core:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.remove(NodeDelegate.jav
>a:701) [org.apache.jackrabbit.oak-jcr:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.jcr.session.NodeImpl$4.performVoid(NodeImpl.java:
>242) [org.apache.jackrabbit.oak-jcr:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionD
>elegate.java:275) [org.apache.jackrabbit.oak-jcr:1.39.0.R1886624]
>       at
>org.apache.jackrabbit.oak.jcr.session.NodeImpl.remove(NodeImpl.java:235)
>[org.apache.jackrabbit.oak-jcr:1.39.0.R1886624]
>       at
>org.apache.sling.jcr.contentloader.internal.BundleContentLoader.createFolde
>r(BundleContentLoader.java:509) [org.apache.sling.jcr.contentloader:2.3.0]
>       at
>org.apache.sling.jcr.contentloader.internal.BundleContentLoader.installFrom
>Path(BundleContentLoader.java:364)
>[org.apache.sling.jcr.contentloader:2.3.0]
>       at
>org.apache.sling.jcr.contentloader.internal.BundleContentLoader.installCont
>ent(BundleContentLoader.java:238)
>[org.apache.sling.jcr.contentloader:2.3.0]
>       at
>org.apache.sling.jcr.contentloader.internal.BundleContentLoader.registerBun
>dleInternal(BundleContentLoader.java:148)
>[org.apache.sling.jcr.contentloader:2.3.0]
>       at
>org.apache.sling.jcr.contentloader.internal.BundleContentLoader.registerBun
>dle(BundleContentLoader.java:95) [org.apache.sling.jcr.contentloader:2.3.0]
>       at
>org.apache.sling.jcr.contentloader.internal.ContentLoaderService.activate(C
>ontentLoaderService.java:244) [org.apache.sling.jcr.contentloader:2.3.0]
>       at
>java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>Method)
>       at
>java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethod
>AccessorImpl.java:62)
>       at
>java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Delegati
>ngMethodAccessorImpl.java:43)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at
>org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod
>.java:244) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.j
>ava:41) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMet
>hod.java:685) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:
>529) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMeth
>od.java:318) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMeth
>od.java:308) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementati
>onObject(SingleComponentManager.java:354) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(Si
>ngleComponentManager.java:115) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleC
>omponentManager.java:1000) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal
>(SingleComponentManager.java:973) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal
>(AbstractComponentManager.java:785) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.
>addedService(DependencyManager.java:1271) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.
>addedService(DependencyManager.java:1222) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(Se
>rviceTracker.java:1200) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(Se
>rviceTracker.java:1121) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAddin
>g(ServiceTracker.java:928) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(Serv
>iceTracker.java:864) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(Ser
>viceTracker.java:1152) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChan
>ged(BundleComponentActivator.java:114) [org.apache.felix.scr:2.1.26]
>       at
>org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(Ev
>entDispatcher.java:990)
>       at
>org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispat
>cher.java:838)
>       at
>org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher
>.java:545)
>       at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833)
>       at org.apache.felix.framework.Felix.registerService(Felix.java:3804)
>       at
>org.apache.felix.framework.BundleContextImpl.registerService(BundleContextI
>mpl.java:328)
>       at
>org.apache.sling.jcr.base.AbstractSlingRepositoryManager.registerService(Ab
>stractSlingRepositoryManager.java:222) [org.apache.sling.jcr.base:3.1.6]
>       at
>org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegis
>terRepositoryService(AbstractSlingRepositoryManager.java:566)
>[org.apache.sling.jcr.base:3.1.6]
>       at
>org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(Abstrac
>tSlingRepositoryManager.java:92) [org.apache.sling.jcr.base:3.1.6]
>       at
>org.apache.sling.jcr.base.AbstractSlingRepositoryManager$4.run(AbstractSlin
>gRepositoryManager.java:527) [org.apache.sling.jcr.base:3.1.6]
>What about extending the Content Loader so that it only overwrites in case
>the nodes do actually differ?
>
>@Stefan: Have you created any JIRAs about your proposed options?
>Konrad

Reply via email to