[Geoserver-devel] [JIRA] (GEOS-10612) GeoServer Active cluster (JMS): changes in layer group and styles are not propagating to replicas

Дмитрий Филимонов created an issue

GeoServer / BugGEOS-10612

GeoServer Active cluster (JMS): changes in layer group and styles are not propagating to replicas

Issue Type:

BugBug

Affects Versions:

2.18.2, 2.20.5

Assignee:

Unassigned

Created:

08/Aug/22 5:15 AM

Environment:

  • GeoServer 2.20.5

  • JMS v.2.20-SNAPSHOT

  • 1 Primary:

    CLUSTER_CONFIG_DIR=/var/local/geoserver/cluster/master
    instanceName=master
    readOnly=disabled
    brokerURL=tcp\://broker\:61666
    durable=false
    toggleMaster=true
    embeddedBroker=disabled
    connection.retry=10
    xbeanURL=./broker.xml
    embeddedBrokerProperties=embedded-broker.properties
    topicName=VirtualTopic.geoserver
    connection=disabled
    toggleSlave=false
    connection.maxwait=500
    group=geoserver-cluster
    
  • 4 Pure-Replicas:

    CLUSTER_CONFIG_DIR=/var/local/geoserver/cluster/slave1
    instanceName=slave1
    readOnly=enabled
    brokerURL=tcp\://broker\:61666
    durable=false
    embeddedBroker=disabled
    connection.retry=10
    toggleMaster=false
    xbeanURL=./broker.xml
    embeddedBrokerProperties=embedded-broker.properties
    topicName=VirtualTopic.geoserver
    connection=enabled
    toggleSlave=true
    connection.maxwait=500
    group=geoserver-cluster
    
  • Instances in separate Docker containers

  • Standalone ActiveMQ Broker (geoserver-2.20-SNAPSHOT-activeMQ-broker-plugin)

  • Shared datadir

Priority:

MediumMedium

Reporter:

Дмитрий Филимонов

I try to implement an active cluster of multiple instances of GeoServer, but I run into a problem, when changes in layer group and styles on the primary node do not repeat on replicas.

Setup- GeoServer 2.20.5

  • JMS v.2.20-SNAPSHOT

  • 1 Primary:

    CLUSTER_CONFIG_DIR=/var/local/geoserver/cluster/master
    instanceName=master
    readOnly=disabled
    brokerURL=tcp\://broker\:61666
    durable=false
    toggleMaster=true
    embeddedBroker=disabled
    connection.retry=10
    xbeanURL=./broker.xml
    embeddedBrokerProperties=embedded-broker.properties
    topicName=VirtualTopic.geoserver
    connection=disabled
    toggleSlave=false
    connection.maxwait=500
    group=geoserver-cluster
    
  • 4 Pure-Replicas:

    CLUSTER_CONFIG_DIR=/var/local/geoserver/cluster/slave1
    instanceName=slave1
    readOnly=enabled
    brokerURL=tcp\://broker\:61666
    durable=false
    embeddedBroker=disabled
    connection.retry=10
    toggleMaster=false
    xbeanURL=./broker.xml
    embeddedBrokerProperties=embedded-broker.properties
    topicName=VirtualTopic.geoserver
    connection=enabled
    toggleSlave=true
    connection.maxwait=500
    group=geoserver-cluster
    
  • Instances in separate Docker containers.

  • Standalone ActiveMQ Broker (geoserver-2.20-SNAPSHOT-activeMQ-broker-plugin)

  • Shared datadir

Problem

Creating, renaming or changing parameters of a layer group attached to a workspace or not attached does not propagate to a replicas:

02 Aug 08:26:07 ERROR [geoserver.cluster] - class org.geoserver.cluster.impl.handlers.catalog.JMSCatalogAddEventHandler is unable to synchronize the incoming event: org.geoserver.catalog.event.impl.CatalogAddEventImpl@anonymised.com
02 Aug 08:26:07 WARN [client.JMSContainer] - Execution of JMS message listener failed, and no ErrorHandler has been set.
javax.jms.JMSException: Arguments may never be null
        at org.geoserver.cluster.client.JMSQueueListener.onMessage(JMSQueueListener.java:161)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:318)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1186)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1176)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1073)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException: Arguments may never be null
        at org.geoserver.cluster.impl.handlers.catalog.CatalogUtils.localizeStyle(CatalogUtils.java:73)
        at org.geoserver.cluster.impl.handlers.catalog.CatalogUtils.localizeStyles(CatalogUtils.java:99)
        at org.geoserver.cluster.impl.handlers.catalog.CatalogUtils.localizeLayerGroup(CatalogUtils.java:253)
        at org.geoserver.cluster.impl.handlers.catalog.JMSCatalogAddEventHandler.add(JMSCatalogAddEventHandler.java:84)
        at org.geoserver.cluster.impl.handlers.catalog.JMSCatalogAddEventHandler.synchronize(JMSCatalogAddEventHandler.java:58)
        at org.geoserver.cluster.impl.handlers.catalog.JMSCatalogAddEventHandler.synchronize(JMSCatalogAddEventHandler.java:31)
        at org.geoserver.cluster.client.JMSQueueListener.onMessage(JMSQueueListener.java:155)
        ... 9 more
02 Aug 08:26:07 WARN [client.JMSContainer] - Setup of JMS message listener invoker failed for destination 'queue://Consumer.slave1.VirtualTopic.geoserver' - trying to recover. Cause: Arguments may never be null
Exception in thread "JMSContainer-6" java.lang.NullPointerException
        at org.apache.wicket.Session.isSessionInvalidated(Session.java:540)
        at org.geoserver.cluster.impl.web.JMSContainerHandlerExceptionListenerImpl.handleListenerSetupFailure(JMSContainerHandlerExceptionListenerImpl.java:43)
        at org.geoserver.cluster.client.JMSContainer.handleListenerSetupFailure(JMSContainer.java:229)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1094)
        at java.base/java.lang.Thread.run(Thread.java:829)
02 Aug 08:33:35 ERROR [geoserver.cluster] - class org.geoserver.cluster.impl.handlers.catalog.JMSCatalogModifyEventHandler is unable to synchronize the incoming event: org.geoserver.catalog.event.impl.CatalogModifyEventImpl@anonymised.com
02 Aug 08:33:35 WARN [client.JMSContainer] - Execution of JMS message listener failed, and no ErrorHandler has been set.
javax.jms.JMSException: Unable to locate LayerGroupInfoImpl[group_test] named: group_test locally.
        at org.geoserver.cluster.client.JMSQueueListener.onMessage(JMSQueueListener.java:161)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:318)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1186)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1176)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1073)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.geoserver.catalog.CatalogException: Unable to locate LayerGroupInfoImpl[group_test] named: group_test locally.
        at org.geoserver.cluster.impl.handlers.catalog.JMSCatalogModifyEventHandler.modify(JMSCatalogModifyEventHandler.java:110)
        at org.geoserver.cluster.impl.handlers.catalog.JMSCatalogModifyEventHandler.synchronize(JMSCatalogModifyEventHandler.java:64)
        at org.geoserver.cluster.impl.handlers.catalog.JMSCatalogModifyEventHandler.synchronize(JMSCatalogModifyEventHandler.java:40)
        at org.geoserver.cluster.client.JMSQueueListener.onMessage(JMSQueueListener.java:155)
        ... 9 more
02 Aug 08:33:35 WARN [client.JMSContainer] - Setup of JMS message listener invoker failed for destination 'queue://Consumer.slave1.VirtualTopic.geoserver' - trying to recover. Cause: Unable to locate LayerGroupInfoImpl[group_test] named: group_test locally.

Same problem happens when creating styles attached to a workspace or not attached but with another error:

02 Aug 08:42:01 WARN [catalog.impl] - Catalog listener threw exception handling event.
java.lang.NoClassDefFoundError: org/jdom2/JDOMException
        at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
        at java.base/java.lang.Class.getDeclaredMethod(Class.java:2473)
        at com.thoughtworks.xstream.core.util.SerializationMembers.getMethod(SerializationMembers.java:183)
        at com.thoughtworks.xstream.core.util.SerializationMembers.getMethod(SerializationMembers.java:168)
        at com.thoughtworks.xstream.core.util.SerializationMembers.getRRMethod(SerializationMembers.java:199)
        at com.thoughtworks.xstream.core.util.SerializationMembers.callWriteReplace(SerializationMembers.java:97)
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:78)
        at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
        at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
        at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
        at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)
        at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
        at com.thoughtworks.xstream.XStream.marshal(XStream.java:1320)
        at com.thoughtworks.xstream.XStream.marshal(XStream.java:1309)
        at com.thoughtworks.xstream.XStream.toXML(XStream.java:1282)
        at com.thoughtworks.xstream.XStream.toXML(XStream.java:1269)
        at org.geoserver.cluster.impl.handlers.DocumentFileHandler.serialize(DocumentFileHandler.java:39)
        at org.geoserver.cluster.impl.handlers.DocumentFileHandler.serialize(DocumentFileHandler.java:19)
        at org.geoserver.cluster.JMSPublisher.publish(JMSPublisher.java:63)
        at org.geoserver.cluster.server.JMSCatalogListener.handleAddEvent(JMSCatalogListener.java:118)
        at org.geoserver.catalog.impl.CatalogImpl.event(CatalogImpl.java:1873)
        at org.geoserver.catalog.impl.CatalogImpl.fireAdded(CatalogImpl.java:1826)
        at org.geoserver.catalog.impl.CatalogImpl.added(CatalogImpl.java:1804)
        at org.geoserver.catalog.impl.CatalogImpl.add(CatalogImpl.java:1625)
        at org.geoserver.security.SecureCatalogImpl.add(SecureCatalogImpl.java:1323)
        at org.geoserver.catalog.impl.AbstractFilteredCatalog.add(AbstractFilteredCatalog.java:636)
        at org.geoserver.catalog.impl.AbstractCatalogDecorator.add(AbstractCatalogDecorator.java:573)
        at org.geoserver.wms.web.data.StyleNewPage.onStyleFormSubmit(StyleNewPage.java:78)
        at org.geoserver.wms.web.data.AbstractStylePage$1.onSubmit(AbstractStylePage.java:228)
        at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1318)
        at org.apache.wicket.markup.html.form.Form.process(Form.java:976)
        at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:797)
        at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:174)
        at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
        at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:601)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
        at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
        at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
        at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
        at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:895)
        at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
        at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
        at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
        at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
        at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
        at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
        at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:159)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
        at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:166)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:357)
        at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:176)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:73)
        at org.geoserver.flow.controller.IpBlacklistFilter.doFilter(IpBlacklistFilter.java:89)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
        at org.geoserver.flow.ControlFlowCallback.doFilter(ControlFlowCallback.java:264)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
        at org.geoserver.gwc.web.blob.SqliteMultipartFilter.doFilterInternal(SqliteMultipartFilter.java:25)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
        at org.geoserver.ows.HTTPHeadersCollector.doFilter(HTTPHeadersCollector.java:48)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:158)
        at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
        at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:43)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:122)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:158)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
        at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
        at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
        at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
        at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:49)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: org.jdom2.JDOMException
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1412)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220)
        ... 165 more

Other changes to a workspaces, stores and layers are working fine.

What I tried- installing newer JMS v.2.21-SNAPSHOT

  • installing newer ActiveMQ Broker v.2.21-SNAPSHOT
  • using private datadir for each instance
  • trying GeoServer 2.18 – JMS v.2.18-SNAPSHOT – embedded broker combination

I found similar bugs in these tasks, they are all closed but I am still experiencing those problems:

Add Comment

Add Comment

Get Jira notifications on your phone! Download the Jira Cloud app for Android or iOS


This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100204-sha1:3bd651e)

Atlassian logo