kartoza/docker-geoserver

JDBCconfig and JDBCstore configuration settings via ENV variables

jjhi11 opened this issue · 15 comments

Feature description

I'd like to be able to configure the plugins JDBCstore and JDBCconfig from env vars for simple deployments.

Additional context

I'm trying to use these plugins now but im not sure they are working correctly if at all. I have been losing all my configurations I have setup such as workspaces, stores and layers.

What do you mean losing configurations. The jdbc sets up a config as specified in https://github.com/kartoza/docker-geoserver/blob/develop/scripts%2Ffunctions.sh#L575

Configurations meaning workspaces, stores, layers and settings made within the web admin UI.

I get geoserver up and running and setup some workspaces add some postgis stores and publish some layers. All good until some time later I log back in and they are all gone. I thought by setting RECREATE_DATADIR to false helped since the workspaces, stores and layers lasted for about 5 days but then today they were gone.

I have it running in a Google Cloud Run that always has a CPU allocated to it and the minimum instances is set to 1.

Seeing that functions code helps but I'm confused still on the {GEOSERVER_DATA_DIR} being used as my understanding was that using jdbcconfig and jdbcstore eliminated that.

Have you got a PostgreSQL database set up. You need to do two checks

  • what are the contents of jdbc configs, are they all populated with correct values
  • are the store/workspace configuration being created in the database. If yes it might mean something is deleting your configs in the database or the settings are not being applied properly

Just add the following to your docker-compose

DB_BACKEND=POSTGRES               
HOST=db                          
POSTGRES_PORT=5432                
POSTGRES_DB=gwc                   
POSTGRES_USER=${POSTGRES_USER}    
POSTGRES_PASS=${POSTGRES_PASS}    
SSL_MODE=allow                    
POSTGRES_SCHEMA=public           
DISK_QUOTA_SIZE=5 
COMMUNITY_EXTENSIONS=jdbcconfig-plugin,jdbcstore-plugin

Yes, I have all those settings set with env vars. The only one im not using is SSL as I have not set that up yet.
I see 2 tables, tilepage and tileset. I see another schema too called geo_config. This morning when I logged in to the web admin all my stores and layers are gone.

I guess it all comes down to 2 things

  • either your database is not being picked up bcz on the start logs it should show the table creation options
  • What images are you using, some older images haven't got the settings configuration for enabling jdbc out of the box

I believe it is being picked up. Here are the logs that lead me to think so.

2024-05-22 06:31:03.699 MDT
[Entrypoint] Checking PostgreSQL connection to see if diskquota tables are loaded: �[0m
2024-05-22 06:31:04.423 MDT
List of databases
2024-05-22 06:31:04.423 MDT
Name | Owner | Encoding | Collate | Ctype | Access privileges
2024-05-22 06:31:04.423 MDT
---------------+-------------------+----------+------------+------------+-----------------------------------------
2024-05-22 06:31:04.423 MDT
cloudsqladmin | cloudsqladmin | UTF8 | en_US.UTF8 | en_US.UTF8 |
2024-05-22 06:31:04.423 MDT
geoserver | cloudsqlsuperuser | UTF8 | en_US.UTF8 | en_US.UTF8 |
2024-05-22 06:31:04.423 MDT
postgres | cloudsqlsuperuser | UTF8 | en_US.UTF8 | en_US.UTF8 |
2024-05-22 06:31:04.423 MDT
template0 | cloudsqladmin | UTF8 | en_US.UTF8 | en_US.UTF8 | =c/cloudsqladmin +
2024-05-22 06:31:04.423 MDT
| | | | | cloudsqladmin=CTc/cloudsqladmin
2024-05-22 06:31:04.423 MDT
template1 | cloudsqlsuperuser | UTF8 | en_US.UTF8 | en_US.UTF8 | =c/cloudsqlsuperuser +
2024-05-22 06:31:04.423 MDT
| | | | | cloudsqlsuperuser=CTc/cloudsqlsuperuser
2024-05-22 06:31:04.423 MDT
(5 rows)
2024-05-22 06:31:04.459 MDT
Archive: /community_plugins/jdbcconfig-plugin.zip
2024-05-22 06:31:04.478 MDT
inflating: /tmp/gs_plugin/gs-jdbcconfig-2.23-SNAPSHOT.jar
2024-05-22 06:31:04.479 MDT
�[32m Enabling jdbcconfig-plugin for GeoServer �[0m
2024-05-22 06:31:04.496 MDT
Archive: /community_plugins/jdbcstore-plugin.zip
2024-05-22 06:31:04.505 MDT
inflating: /tmp/gs_plugin/gs-jdbcstore-2.23-SNAPSHOT.jar
2024-05-22 06:31:04.507 MDT
inflating: /tmp/gs_plugin/gs-jdbcconfig-2.23-SNAPSHOT.jar
2024-05-22 06:31:04.507 MDT
�[32m Enabling jdbcstore-plugin for GeoServer �[0m
2024-05-22 06:31:06.593 MDT
/scripts/entrypoint.sh:53 0: CLUSTER_CONFIG_DIR=/opt/geoserver/data_dir/cluster/instance_localhost
2024-05-22 06:31:06.593 MDT
/scripts/entrypoint.sh:54 0: MONITOR_AUDIT_PATH=/opt/geoserver/data_dir/monitoring/monitor_localhost
2024-05-22 06:31:25.928 MDT
/opt/geoserver/data_dir/gwc is nested in /opt/geoserver/data_dir
2024-05-22 06:31:25.928 MDT
[Entrypoint] Changing folder permission for: �[1;31m /opt/geoserver/data_dir �[0m
2024-05-22 06:31:26.004 MDT
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
2024-05-22 06:31:26.015 MDT
[0.007s][warning][gc,ergo] -XX:NewSize and -XX:MaxNewSize override -XX:NewRatio

im not specifying any tags on the container URL. just kartoza/geoserver so i assume latest

im not specifying any tags on the container URL. just kartoza/geoserver so i assume latest

Please use a tagged version i.e 2.25.0 or 2.24.2

Ok i have redeployed with 2.25.0. I added my workspace, store and layers back. I will check to be sure it persists the next few days

So my workspace persisted but when I try to access the layer preview, stores, or tile layers i get this...

org.apache.wicket.WicketRuntimeException: Error attaching this container for rendering: [WebMarkupContainer [Component id = listContainer]]
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1838)
at org.apache.wicket.Component.onBeforeRender(Component.java:3921)
at org.apache.wicket.Component.internalBeforeRender(Component.java:950)
at org.apache.wicket.Component.beforeRender(Component.java:1018)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1826)
at org.apache.wicket.Component.onBeforeRender(Component.java:3921)
at org.apache.wicket.Component.internalBeforeRender(Component.java:950)
at org.apache.wicket.Component.beforeRender(Component.java:1018)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1826)
at org.apache.wicket.Component.onBeforeRender(Component.java:3921)
at org.apache.wicket.Page.onBeforeRender(Page.java:801)
at org.apache.wicket.Component.internalBeforeRender(Component.java:950)
at org.apache.wicket.Component.beforeRender(Component.java:1018)
at org.apache.wicket.Component.internalPrepareForRender(Component.java:2236)
at org.apache.wicket.Page.internalPrepareForRender(Page.java:242)
at org.apache.wicket.Component.render(Component.java:2327)
at org.apache.wicket.Page.renderPage(Page.java:1018)
at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:124)
at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:236)
at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
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.doGet(WicketServlet.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:502)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
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:502)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:596)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:328)
at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:73)
at org.geoserver.monitor.MonitorFilter.doFilter(MonitorFilter.java:105)
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.HTTPMethodFilter.doFilter(HTTPMethodFilter.java:36)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:194)
at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
at org.geoserver.flow.controller.IpBlacklistFilter.doFilter(IpBlacklistFilter.java:89)
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:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
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:346)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
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:346)
at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:223)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:217)
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:346)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:106)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:97)
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:346)
at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilterInternal(GeoServerSecurityContextPersistenceFilter.java:72)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
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:346)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:141)
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:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:100)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
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:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
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:673)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
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: com.google.common.util.concurrent.UncheckedExecutionException: com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.google.common.util.concurrent.UncheckedExecutionException
cause-message : com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.google.common.util.concurrent.UncheckedExecutionException
cause-message : com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : org.jasypt.exceptions.EncryptionOperationNotPossibleException
cause-message : null
class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$StoreInfoConverter
line number : 43
version : 2.25.0

class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$ReferenceConverter
line number : 66
class[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
required-type[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
converter-type[1] : org.geoserver.config.util.XStreamPersister$FeatureTypeInfoConverter
version : 2.25.0

class : org.geoserver.catalog.impl.FeatureTypeInfoImpl
required-type : org.geoserver.catalog.impl.FeatureTypeInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$ReferenceConverter
line number : 18
class[1] : org.geoserver.catalog.impl.LayerInfoImpl
required-type[1] : org.geoserver.catalog.impl.LayerInfoImpl
converter-type[1] : org.geoserver.config.util.XStreamPersister$LayerInfoConverter
version : 2.25.0

at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2085)
at com.google.common.cache.LocalCache.get(LocalCache.java:4011)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4919)
at org.geoserver.jdbcconfig.internal.ConfigDatabase.getById(ConfigDatabase.java:1111)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$2.apply(ConfigDatabase.java:427)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$2.apply(ConfigDatabase.java:423)
at com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:627)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:52)
at com.google.common.collect.Iterators$5.computeNext(Iterators.java:671)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:145)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:140)
at org.geoserver.catalog.util.CloseableIteratorAdapter.hasNext(CloseableIteratorAdapter.java:46)
at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:46)
at org.geoserver.catalog.util.CloseableIteratorAdapter.hasNext(CloseableIteratorAdapter.java:46)
at com.google.common.collect.Iterators$5.computeNext(Iterators.java:670)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:145)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:140)
at org.geoserver.catalog.util.CloseableIteratorAdapter.hasNext(CloseableIteratorAdapter.java:46)
at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:46)
at org.geoserver.catalog.util.CloseableIteratorAdapter.hasNext(CloseableIteratorAdapter.java:46)
at org.geoserver.catalog.impl.LocalWorkspaceCatalog.list(LocalWorkspaceCatalog.java:589)
at org.geoserver.web.demo.PreviewLayerProvider.filteredItems(PreviewLayerProvider.java:181)
at org.geoserver.web.demo.PreviewLayerProvider.iterator(PreviewLayerProvider.java:149)
at org.apache.wicket.markup.repeater.data.DataViewBase$ModelIterator.<init>(DataViewBase.java:107)
at org.apache.wicket.markup.repeater.data.DataViewBase.getItemModels(DataViewBase.java:74)
at org.apache.wicket.markup.repeater.AbstractPageableView.getItemModels(AbstractPageableView.java:101)
at org.apache.wicket.markup.repeater.RefreshingView.onPopulate(RefreshingView.java:93)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:124)
at org.apache.wicket.markup.repeater.AbstractPageableView.onBeforeRender(AbstractPageableView.java:115)
at org.apache.wicket.Component.internalBeforeRender(Component.java:950)
at org.apache.wicket.Component.beforeRender(Component.java:1018)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1826)
... 145 more

Caused by: com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.google.common.util.concurrent.UncheckedExecutionException
cause-message : com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.google.common.util.concurrent.UncheckedExecutionException
cause-message : com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : org.jasypt.exceptions.EncryptionOperationNotPossibleException
cause-message : null
class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$StoreInfoConverter
line number : 43
version : 2.25.0

class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$ReferenceConverter
line number : 66
class[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
required-type[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
converter-type[1] : org.geoserver.config.util.XStreamPersister$FeatureTypeInfoConverter
version : 2.25.0

class : org.geoserver.catalog.impl.FeatureTypeInfoImpl
required-type : org.geoserver.catalog.impl.FeatureTypeInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$ReferenceConverter
line number : 18
class[1] : org.geoserver.catalog.impl.LayerInfoImpl
required-type[1] : org.geoserver.catalog.impl.LayerInfoImpl
converter-type[1] : org.geoserver.config.util.XStreamPersister$LayerInfoConverter
version : 2.25.0

at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:499)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:425)
at org.geoserver.config.util.XStreamPersister$LayerInfoConverter.doUnmarshal(XStreamPersister.java:2128)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1464)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1441)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1330)
at org.geoserver.config.util.XStreamPersister.load(XStreamPersister.java:724)
at org.geoserver.jdbcconfig.internal.XStreamInfoSerialBinding.entryToObject(XStreamInfoSerialBinding.java:37)
at org.geoserver.jdbcconfig.internal.InfoRowMapper.mapRow(InfoRowMapper.java:54)
at org.geoserver.jdbcconfig.internal.InfoRowMapper.mapRow(InfoRowMapper.java:17)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:648)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:738)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:794)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:246)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:255)
at org.geoserver.jdbcconfig.internal.ConfigDatabase.loadCatalog(ConfigDatabase.java:1400)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$FastClassBySpringCGLIB$$dd464281.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$EnhancerBySpringCGLIB$$2d8b8ed5.loadCatalog(<generated>)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$CatalogLoader.call(ConfigDatabase.java:1384)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$CatalogLoader.call(ConfigDatabase.java:1374)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4924)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3570)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2312)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079)
... 176 more

Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.google.common.util.concurrent.UncheckedExecutionException
cause-message : com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : org.jasypt.exceptions.EncryptionOperationNotPossibleException
cause-message : null
class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$StoreInfoConverter
line number : 43
version : 2.25.0

class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$ReferenceConverter
line number : 66
class[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
required-type[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
converter-type[1] : org.geoserver.config.util.XStreamPersister$FeatureTypeInfoConverter
version : 2.25.0

at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2085)
at com.google.common.cache.LocalCache.get(LocalCache.java:4011)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4919)
at org.geoserver.jdbcconfig.internal.ConfigDatabase.getById(ConfigDatabase.java:1111)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$FastClassBySpringCGLIB$$dd464281.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$EnhancerBySpringCGLIB$$2d8b8ed5.getById(<generated>)
at org.geoserver.jdbcconfig.catalog.JDBCCatalogFacade.getResource(JDBCCatalogFacade.java:221)
at org.geoserver.catalog.impl.CatalogImpl.getResource(CatalogImpl.java:544)
at org.geoserver.catalog.impl.ResolvingProxy.resolve(ResolvingProxy.java:131)
at org.geoserver.config.util.XStreamPersister$ReferenceConverter.unmarshal(XStreamPersister.java:1302)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
... 222 more

Caused by: com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.google.common.util.concurrent.UncheckedExecutionException
cause-message : com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : org.jasypt.exceptions.EncryptionOperationNotPossibleException
cause-message : null
class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$StoreInfoConverter
line number : 43
version : 2.25.0

class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$ReferenceConverter
line number : 66
class[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
required-type[1] : org.geoserver.catalog.impl.FeatureTypeInfoImpl
converter-type[1] : org.geoserver.config.util.XStreamPersister$FeatureTypeInfoConverter
version : 2.25.0

at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:499)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:425)
at org.geoserver.config.util.XStreamPersister$ResourceInfoConverter.doUnmarshal(XStreamPersister.java:2027)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1464)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1441)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1330)
at org.geoserver.config.util.XStreamPersister.load(XStreamPersister.java:724)
at org.geoserver.jdbcconfig.internal.XStreamInfoSerialBinding.entryToObject(XStreamInfoSerialBinding.java:37)
at org.geoserver.jdbcconfig.internal.InfoRowMapper.mapRow(InfoRowMapper.java:54)
at org.geoserver.jdbcconfig.internal.InfoRowMapper.mapRow(InfoRowMapper.java:17)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:648)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:738)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:794)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:246)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:255)
at org.geoserver.jdbcconfig.internal.ConfigDatabase.loadCatalog(ConfigDatabase.java:1400)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$FastClassBySpringCGLIB$$dd464281.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$EnhancerBySpringCGLIB$$2d8b8ed5.loadCatalog(<generated>)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$CatalogLoader.call(ConfigDatabase.java:1384)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$CatalogLoader.call(ConfigDatabase.java:1374)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4924)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3570)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2312)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079)
... 236 more

Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : org.jasypt.exceptions.EncryptionOperationNotPossibleException
cause-message : null
class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$StoreInfoConverter
line number : 43
version : 2.25.0

at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2085)
at com.google.common.cache.LocalCache.get(LocalCache.java:4011)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4919)
at org.geoserver.jdbcconfig.internal.ConfigDatabase.getById(ConfigDatabase.java:1111)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$FastClassBySpringCGLIB$$dd464281.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$EnhancerBySpringCGLIB$$2d8b8ed5.getById(<generated>)
at org.geoserver.jdbcconfig.catalog.JDBCCatalogFacade.getStore(JDBCCatalogFacade.java:113)
at org.geoserver.catalog.impl.CatalogImpl.getStore(CatalogImpl.java:263)
at org.geoserver.catalog.impl.ResolvingProxy.resolve(ResolvingProxy.java:99)
at org.geoserver.config.util.XStreamPersister$ReferenceConverter.unmarshal(XStreamPersister.java:1302)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
... 282 more

Caused by: com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : org.jasypt.exceptions.EncryptionOperationNotPossibleException
cause-message : null
class : org.geoserver.catalog.impl.DataStoreInfoImpl
required-type : org.geoserver.catalog.impl.DataStoreInfoImpl
converter-type : org.geoserver.config.util.XStreamPersister$StoreInfoConverter
line number : 43
version : 2.25.0

at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1464)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1441)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1330)
at org.geoserver.config.util.XStreamPersister.load(XStreamPersister.java:724)
at org.geoserver.jdbcconfig.internal.XStreamInfoSerialBinding.entryToObject(XStreamInfoSerialBinding.java:37)
at org.geoserver.jdbcconfig.internal.InfoRowMapper.mapRow(InfoRowMapper.java:54)
at org.geoserver.jdbcconfig.internal.InfoRowMapper.mapRow(InfoRowMapper.java:17)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:723)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:648)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:738)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:794)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:246)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:255)
at org.geoserver.jdbcconfig.internal.ConfigDatabase.loadCatalog(ConfigDatabase.java:1400)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$FastClassBySpringCGLIB$$dd464281.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$$EnhancerBySpringCGLIB$$2d8b8ed5.loadCatalog(<generated>)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$CatalogLoader.call(ConfigDatabase.java:1384)
at org.geoserver.jdbcconfig.internal.ConfigDatabase$CatalogLoader.call(ConfigDatabase.java:1374)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4924)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3570)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2312)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079)
... 296 more

Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1055)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:725)
at org.geoserver.security.password.GeoServerPBEPasswordEncoder.decode(GeoServerPBEPasswordEncoder.java:176)
at org.geoserver.security.password.ConfigurationPasswordEncryptionHelper.decode(ConfigurationPasswordEncryptionHelper.java:208)
at org.geoserver.security.password.ConfigurationPasswordEncryptionHelper.decode(ConfigurationPasswordEncryptionHelper.java:192)
at org.geoserver.config.util.XStreamPersister$StoreInfoConverter.doUnmarshal(XStreamPersister.java:1887)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
... 336 more

I keep getting this error with all images except 2.24.0

Thanks, I will check the differences between the two images

@jjhi11 i tested this with 2.25.1 and it works properly