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
