JMS Cluster Plugin settings section not showing

Hi GeoServer Community,

While deploying GeoServer, and adding the JMS Cluster extension, we found that
the Cluster settings Section does not show the settings properly.
While the functionality of the extension in itself is not affected(replication still works),
it is strange that the extension for other versions(2.26.x) does work without problems.

Setup Details:
GeoServer Version: 2.27.1
JMS Cluster Extension: geoserver-2.27-SNAPSHOT-jms-cluster-plugin.zip
Java Version: 17.0.15
OS: Red Hat Enterprise Linux 9.4
Everything else is as is , we left GeoServer to configure everything,

Error Log

31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'GEOSERVER_USE_STRICT_FIREWALL' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'GEOSERVER_USE_STRICT_FIREWALL' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'GEOSERVER_USE_STRICT_FIREWALL' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'GEOSERVER_USE_STRICT_FIREWALL' to be unset
31 Jul 08:56:57 DEBUG  [geoserver.security] - Checking match of request : 'Path: /web/wicket/bookmarkable/org.geoserver.cluster.impl.web.clusterpage, QueryString: filter=false&filter=false'; against '/web/**'
31 Jul 08:56:57 DEBUG  [geoserver.security] - Matched Path: /web/wicket/bookmarkable/org.geoserver.cluster.impl.web.clusterpage, QueryString: filter=false&filter=false with /web/**
31 Jul 08:56:57 TRACE  [geoserver.monitor] - Testing /web/wicket/bookmarkable/org.geoserver.cluster.impl.web.ClusterPage for monitor filtering
31 Jul 08:56:57 DEBUG  [geoserver.monitor] - /geoserver/web/wicket/bookmarkable/org.geoserver.cluster.impl.web.ClusterPage was filtered from monitoring
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [geoserver.ows] - Could not find a layer group named web
31 Jul 08:56:57 DEBUG  [org.geoserver] - Thread 194 locking in mode READ
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'CONFIGURATION_TRYLOCK_TIMEOUT' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'CONFIGURATION_TRYLOCK_TIMEOUT' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'CONFIGURATION_TRYLOCK_TIMEOUT' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'CONFIGURATION_TRYLOCK_TIMEOUT' to be unset
31 Jul 08:56:57 DEBUG  [org.geoserver] - Thread 194 got the lock in mode READ
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Property override : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Java environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found Servlet context parameter : 'wicket.configuration' to be unset
31 Jul 08:56:57 TRACE  [geoserver.platform] - Found System environment variable : 'wicket.configuration' to be unset
31 Jul 08:56:57 ERROR  [markup.MarkupFactory] - Error while reading the markup jar:file:/data/apache/tomcat/instances/lsig-ws01_ap03/webapps/geoserver/WEB-INF/lib/gs-jms-geoserver-2.27-SNAPSHOT.jar!/org/geoserver/cluster/impl/web/ClusterPage.html
Same attribute found twice: class (line 43, column 35)
 MarkupStream: [markup = jar:file:/data/apache/tomcat/instances/lsig-ws01_ap03/webapps/geoserver/WEB-INF/lib/gs-jms-geoserver-2.27-SNAPSHOT.jar!/org/geoserver/cluster/impl/web/ClusterPage.html
<html>
<head>
<title><wicket:message key="title">Cluster</wicket:message></title>
</head>
<body>

	<wicket:extend>
		<div>
			<table>
				<tr>
					<td>
						<form wicket:id="form">
							<ul>
								<li><label for="brokerURL"><wicket:message key="brokerURL">brokerURL</wicket:message></label> <input id="brokerURL" class="field text" type="text" wicket:id="brokerURL"/></li>

								<li><label for="instanceName"><wicket:message key="instanceName">instanceName</wicket:message></label> <input id="instanceName" class="field text" type="text" wicket:id="instanceName"/></li>
									
								<li><label for="group"><wicket:message key="group">group</wicket:message></label> <input id="group" class="field text" type="text" wicket:id="group"/></li>
									
								<li><label for="topicName"><wicket:message key="topicName">topicName</wicket:message></label> <input id="topicName" class="field text" type="text" wicket:id="topicName"/></li>
								<li><table>
										<tr>
											<td>
												<button wicket:id="toggleMasterB">
													<wicket:message key="toggleMasterB">toggleMasterB</wicket:message>
												</button>
											</td>
											<td><label for="toggleMaster"><wicket:message key="toggleMaster">toggleMaster</wicket:message></label> <input
												id="toggleMaster" class="w-30px" class="field text"
												type="text" wicket:id="toggleMaster" /></td>
										</tr>
										<tr>
											<td>
												<button type="submit" wicket:id="toggleSlaveB">
													<wicket:message key="toggleSlaveB">toggleSlaveB</wicket:message>
												</button>
											</td>
											<td><label for="toggleSlave"><wicket:message
														key="toggleSlave">toggleSlave</wicket:message></label> <input
												id="toggleSlave" class="w-30px" class="field text"
												type="text" wicket:id="toggleSlave" /></td>
										</tr>
										<tr>
											<td>
												<button type="submit" wicket:id="connectionB">
													<wicket:message key="connectionB">connectionB</wicket:message>
												</button>
											</td>
											<td><label for="connection"><wicket:message
														key="connection">connection</wicket:message></label><input
												id="connection" class="w-50px" class="field text"
												type="text" wicket:id="connection" /></td>
										</tr>
										<tr>
											<td>
												<button type="submit" wicket:id="readOnlyB">
													<wicket:message key="readOnlyB">readOnlyB</wicket:message>
												</button>
											</td>
											<td><label for="readOnly"><wicket:message
														key="readOnly">readOnly</wicket:message></label> <input
												id="readOnly" class="w-50px" class="field text"
												type="text" wicket:id="readOnly" /></td>
										</tr>
										<tr>
											<td>
												<button type="submit" wicket:id="embeddedBrokerB">
													<wicket:message key="embeddedBrokerB">embeddedBrokerB</wicket:message>
												</button>
											</td>
											<td><label for="embeddedBroker"><wicket:message
														key="embeddedBroker">embeddedBroker</wicket:message></label> <input
												id="readOnly" class="w-30px" class="field text"
												type="text" wicket:id="embeddedBroker" /></td>
										</tr>
									</table></li>

								<li class="button-group selfclear">
									<button type="submit" wicket:id="saveB">
										<wicket:message key="saveB">submit</wicket:message>
									</button>
								</li>
							</ul>
						</form>
					</td>
				</tr>

			</table>
		</div>
	</wicket:extend>


</body>
</html>, index = 49, current = [Raw markup]]
	at org.apache.wicket.markup.AbstractMarkupParser.parseMarkup(AbstractMarkupParser.java:303)
	at org.apache.wicket.markup.AbstractMarkupParser.parse(AbstractMarkupParser.java:185)
	at org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:51)
	at org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:57)
	at org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:52)
	at org.apache.wicket.markup.MarkupFactory.loadMarkup(MarkupFactory.java:412)
	at org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:447)
	at org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:543)
	at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:304)
	at org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:236)
	at org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:194)
	at org.apache.wicket.MarkupContainer.getAssociatedMarkup(MarkupContainer.java:458)
	at org.apache.wicket.MarkupContainer.getRegionMarkup(MarkupContainer.java:2084)
	at org.apache.wicket.MarkupContainer.newDequeueContext(MarkupContainer.java:2072)
	at org.apache.wicket.MarkupContainer.dequeue(MarkupContainer.java:1860)
	at org.apache.wicket.MarkupContainer.onInitialize(MarkupContainer.java:1892)
	at org.apache.wicket.Page.onInitialize(Page.java:298)
	at org.apache.wicket.Component.fireInitialize(Component.java:883)
	at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1062)
	at org.apache.wicket.Page.onConfigure(Page.java:238)
	at org.apache.wicket.Component.configure(Component.java:996)
	at org.apache.wicket.Component.beforeRender(Component.java:938)
	at org.apache.wicket.Page.renderPage(Page.java:991)
	at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:124)
	at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:195)
	at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
	at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:910)
	at org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63)
	at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:294)
	at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:255)
	at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:277)
	at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:208)
	at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:137)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	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:51)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
	at org.geoserver.monitor.MonitorFilter.doFilter(MonitorFilter.java:103)
	at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67)
	at org.geoserver.ogcapi.LandingPageSlashFilter.doFilter(LandingPageSlashFilter.java:54)
	at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67)
	at org.geoserver.ows.HTTPHeadersCollector.doFilter(HTTPHeadersCollector.java:48)
	at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67)
	at org.geoserver.filters.HTTPMethodFilter.doFilter(HTTPMethodFilter.java:36)
	at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67)
	at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:181)
	at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67)
	at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:41)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:352)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
	at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
	at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:89)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
	at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:89)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
	at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:52)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
	at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:89)
	at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:117)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:110)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
	at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:89)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68)
	at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilterInternal(GeoServerSecurityContextPersistenceFilter.java:66)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72)
	at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:89)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:225)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:190)
	at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:139)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.geoserver.filters.SecurityHeadersFilter.doFilter(SecurityHeadersFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
	at org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:291)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1786)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	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:63)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.text.ParseException: Same attribute found twice: class (line 43, column 35)
	at org.apache.wicket.markup.parser.XmlPullParser.parseTagText(XmlPullParser.java:701)
	at org.apache.wicket.markup.parser.XmlPullParser.next(XmlPullParser.java:313)
	at org.apache.wicket.markup.parser.filter.RootMarkupFilter.nextElement(RootMarkupFilter.java:63)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.filter.OpenCloseTagExpander.nextElement(OpenCloseTagExpander.java:82)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.parser.AbstractMarkupFilter.nextElement(AbstractMarkupFilter.java:104)
	at org.apache.wicket.markup.AbstractMarkupParser.getNextTag(AbstractMarkupParser.java:217)
	at org.apache.wicket.markup.AbstractMarkupParser.parseMarkup(AbstractMarkupParser.java:232)
	... 143 more

Here is an image of the error:

Troubleshooting:
As we tried to tinker with the extension, we realised that the root of the problem
seems to be inside the file gs-jms-geoserver-2.27-SNAPSHOT.jar

The problem could be due to the bug related to UUIDs, which was spotted not too long ago(I think),
since jms relies on the UUIDs to identify the clusters. With that said, we are not sure that is
the reason the Cluster Settings Section is crashing.

Any advise, comment or guidance will be inmensly appreciated,
and thank you all in advance.
:slight_smile:

The HTML page really has the class attribute repeated multiple times, in various elements, see here:

GeoServer is an open source project, so it’s up to interested parties to take action and perform fixes. If you or anyone in your team can, please make changes in the source code and then issue a pull request.

If you need guidance on how to build your modified source code just ask, happy to get you up to speed.

Cheers
Andrea

Hi Andrea,
thank you for pointing out the error, I completely missed it!
After modifying the HTML file, the extension worked correctly.

I would like to upload the change to the GeoServer Repository.
To do that I already forked the main branch
(I could not do a branch, my guess, because I am not a collaborator),
but I stopped there, since I do not know
the actual process for making changes.

I suppose now I have to make a merge request, right?
Oh, and for the title for this fix,
do I need to follow some kind of specific naming?

Again, thank you in advance,
and have a great day!

Hi,
yes please proceed with a pull request against the official repository:

For the PRs and commit message we indeed have conventions. First open a ticket in Jira and then use it to craft the commit message as:

[GEOS-XYZW] This is the title of the ticket

When opening the PR you’ll also find a checklist, but give this is a small change against a community module, most of it won’t need to be applied (follow instructions and/or ask in case of doubt).

Cheers
Andrea