Context :
For some reason, a project contains a search engine that doesn't have any requests.
Bug:
This prevents Ametys from starting
Stacktrace :
org.apache.avalon.framework.CascadingRuntimeException: Unable to get the request object from the context. at org.apache.cocoon.components.ContextHelper.getRequest(ContextHelper.java:64) at java.base/java.util.Optional.map(Optional.java:260) at org.ametys.cms.search.solr.field.MultilingualStringSearchField.getCurrentLanguage(MultilingualStringSearchField.java:75) at org.ametys.cms.search.solr.field.ContentSearchField._getMultilingualSortFieldSuffix(ContentSearchField.java:97) at org.ametys.cms.search.solr.field.ContentSearchField._getSortFieldSuffix(ContentSearchField.java:91) at org.ametys.cms.search.solr.field.AbstractModelItemSearchField.getSortField(AbstractModelItemSearchField.java:59) at java.base/java.util.Optional.map(Optional.java:260) at org.ametys.web.frontoffice.search.metamodel.impl.AbstractContentBasedReturnable._isSortable(AbstractContentBasedReturnable.java:265) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.ametys.web.frontoffice.search.metamodel.impl.AbstractContentBasedReturnable.getSorts(AbstractContentBasedReturnable.java:246) at org.ametys.web.frontoffice.search.metamodel.SearchServiceCreationHelper.getSortDefinitions(SearchServiceCreationHelper.java:306) at org.ametys.web.frontoffice.search.instance.SearchServiceInstanceFactory.createSearchServiceInstance(SearchServiceInstanceFactory.java:128) at org.ametys.web.frontoffice.search.instance.SearchServiceInstanceManager.get(SearchServiceInstanceManager.java:97) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at fr.ametys.agglo.carcassonne.plugin.job.advertisement.search.counter.JobCountHandler.prefillCaches(JobCountHandler.java:107) at fr.ametys.agglo.carcassonne.plugin.job.advertisement.search.counter.JobCountInit.init(JobCountInit.java:22) at org.ametys.runtime.servlet.RuntimeServlet._initPlugins(RuntimeServlet.java:530) at org.ametys.runtime.servlet.RuntimeServlet.doMigrationAndInit(RuntimeServlet.java:513) at org.ametys.runtime.servlet.RuntimeServlet._initAmetys(RuntimeServlet.java:435) at org.ametys.runtime.servlet.RuntimeServlet.init(RuntimeServlet.java:267) at javax.servlet.GenericServlet.init(GenericServlet.java:143) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:984) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:941) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:838) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4234) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4535) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:603) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:680) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1844) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:575) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:466) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1584) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.startup.Catalina.start(Catalina.java:739) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) Caused by: org.apache.avalon.framework.context.ContextException: Unable to locate object-model.request (No environment available) at org.apache.cocoon.components.ComponentContext.get(ComponentContext.java:111) at org.apache.cocoon.components.ContextHelper.getRequest(ContextHelper.java:62)