[Geoserver-devel] [JIRA] (GEOS-9236) Geotiff sources configured with GeoServer 2.14.x might not work in 2.15.x

Andrea Aime created an issue

GeoServer / BugGEOS-9236

Geotiff sources configured with GeoServer 2.14.x might not work in 2.15.x

Issue Type:

BugBug

Assignee:

Unassigned

Created:

05/Jun/19 7:04 PM

Priority:

MediumMedium

Reporter:

Andrea Aime

GeoServer 2.14.x (and possibly 2.13.x too) wrongly provided a URL input instead of a file to the GeotTiff reader on layer creation (possibly due to the Resource migration), causing the native name to be a generic “geotiff_coverage” instead of the file name:

<coverage>
<id>CoverageInfoImpl--2c6a6515:169dded133c:-7fcd</id>
<name>Nyborg_Luftfoto</name>
<nativeName>Nyborg_Luftfoto</nativeName>
<!-- elements omitted for brevity -->
<nativeCoverageName>geotiff_coverage</nativeCoverageName>
</coverage>

GeoServer 2.15.x correctly provides a File as an input instead, causing the reader to configure itself using the name of the file.
Unfortunately, that breaks all name based access to the reader, due to the mismatch between the configured native name, and the actual name:

INFO   | jvm 1    | 2019/05/22 15:03:31 | java.lang.IllegalArgumentException: The specified coverageName geotiff_coverageis not supported
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.getMetadataNames(AbstractGridCoverage2DReader.java:1009)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.catalog.SingleGridCoverage2DReader.getMetadataNames(SingleGridCoverage2DReader.java:80)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.catalog.CoverageDimensionCustomizerReader.getMetadataNames(CoverageDimensionCustomizerReader.java:359)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.catalog.util.ReaderDimensionsAccessor.<init>(ReaderDimensionsAccessor.java:135)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.wms.map.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:646)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.wms.map.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:86)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.ows.Dispatcher.parseRequestKVP(Dispatcher.java:1548)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:691)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:254)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:26)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:69)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:73)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:66)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:41)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:37)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:51)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:90)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:79)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:311)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:265)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.Server.handle(Server.java:503)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
INFO   | jvm 1    | 2019/05/22 15:03:31 |     at java.lang.Thread.run(Unknown Source)

Since potentially lots of config files are broken and the UI offers no way to fix the native name, I’d suggest to recognize the “geotiff_coverage” case and remap it on the fly to the actual coverage name in ResourcePool.

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#100103-sha1:fcba571)

Atlassian logo