[Geoserver-users] Problems with ImageMosaic coverage stores via REST

Hi,

Running GeoServer 1.7.0, JVM 1.7 using the bundled Jetty webserver on a Windows x64 platform.

I am having problems with managing ImageMosaic coverage stores via the REST interface.

When I delete an ImageMosaic coverage store via REST with the purge=all or purge=metadata option set the following exception is thrown (full stack trace at the bottom of mail):

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

It seems that the support files generated by ImageMosaic, especially the .properties file, are not deleted.

This has the consequence that if I try to generate a new ImageMosaic coverage store with the same name and uploading the same data, the image mosaic is not properly generated, and when trying to access the layer in the coverage store from a WMS client, the GeoServer does not produce any output.

I have to delete the .properties file manually in order to be able to re-generate the ImageMosaic coverage store.

Is this the expected behaviour of an ImageMosaic coverage store? If so, is there a way to circumvent this behaviour, that enables me to re-generate a deleted coverage store using the same name and uploading the same data?

Best Regards

Morten

Full stack trace:

74393199 [btpool0-5] ERROR org.geoserver.rest -

org.geoserver.rest.RestletException: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:228)

at org.restlet.Finder.handle(Finder.java:300)

at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)

at org.restlet.Filter.doHandle(Filter.java:105)

at org.restlet.Filter.handle(Filter.java:134)

at org.restlet.Router.handle(Router.java:444)

at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)

at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)

at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:811)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)

at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

… 84 more

Dear Morten,
which type of datastore are you using for the imageMosaic index?
I think that the unsupportedOperationException is interrupting the cleanup operations (such as the properties file delete).
Do you have any chance to open a JIRA for this issue?

Cheers,
Daniele

···

On Wed, Jun 3, 2015 at 11:58 AM, Morten Buhr <MRB@anonymised.com> wrote:

Hi,

Running GeoServer 1.7.0, JVM 1.7 using the bundled Jetty webserver on a Windows x64 platform.

I am having problems with managing ImageMosaic coverage stores via the REST interface.

When I delete an ImageMosaic coverage store via REST with the purge=all or purge=metadata option set the following exception is thrown (full stack trace at the bottom of mail):

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

It seems that the support files generated by ImageMosaic, especially the .properties file, are not deleted.

This has the consequence that if I try to generate a new ImageMosaic coverage store with the same name and uploading the same data, the image mosaic is not properly generated, and when trying to access the layer in the coverage store from a WMS client, the GeoServer does not produce any output.

I have to delete the .properties file manually in order to be able to re-generate the ImageMosaic coverage store.

Is this the expected behaviour of an ImageMosaic coverage store? If so, is there a way to circumvent this behaviour, that enables me to re-generate a deleted coverage store using the same name and uploading the same data?

Best Regards

Morten

Full stack trace:

74393199 [btpool0-5] ERROR org.geoserver.rest -

org.geoserver.rest.RestletException: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:228)

at org.restlet.Finder.handle(Finder.java:300)

at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)

at org.restlet.Filter.doHandle(Filter.java:105)

at org.restlet.Filter.handle(Filter.java:134)

at org.restlet.Router.handle(Router.java:444)

at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)

at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)

at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:811)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)

at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

… 84 more



Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.

Dear Daniele,

I am not sure what you mean by which datastore I am using for the ImageMosaic index. When I create an ImageMosaic coverage store a set of shape files (.dpf, .prj, .shp, .shx) are automagically created and I do not explicit assign them to a data store.

I will gladly open a JIRA for this issue when I have understood your question, because my understanding of that may be significant for an adequate description of the problem I a JIRA.

Best Regards

Morten

···

Dear Morten,

which type of datastore are you using for the imageMosaic index?

I think that the unsupportedOperationException is interrupting the cleanup operations (such as the properties file delete).

Do you have any chance to open a JIRA for this issue?

Cheers,

Daniele

On Wed, Jun 3, 2015 at 11:58 AM, Morten Buhr <MRB@…7097…> wrote:

Hi,

Running GeoServer 1.7.0, JVM 1.7 using the bundled Jetty webserver on a Windows x64 platform.

I am having problems with managing ImageMosaic coverage stores via the REST interface.

When I delete an ImageMosaic coverage store via REST with the purge=all or purge=metadata option set the following exception is thrown (full stack trace at the bottom of mail):

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

It seems that the support files generated by ImageMosaic, especially the .properties file, are not deleted.

This has the consequence that if I try to generate a new ImageMosaic coverage store with the same name and uploading the same data, the image mosaic is not properly generated, and when trying to access the layer in the coverage store from a WMS client, the GeoServer does not produce any output.

I have to delete the .properties file manually in order to be able to re-generate the ImageMosaic coverage store.

Is this the expected behaviour of an ImageMosaic coverage store? If so, is there a way to circumvent this behaviour, that enables me to re-generate a deleted coverage store using the same name and uploading the same data?

Best Regards

Morten

Full stack trace:

74393199 [btpool0-5] ERROR org.geoserver.rest -

org.geoserver.rest.RestletException: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:228)

at org.restlet.Finder.handle(Finder.java:300)

at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)

at org.restlet.Filter.doHandle(Filter.java:105)

at org.restlet.Filter.handle(Filter.java:134)

at org.restlet.Router.handle(Router.java:444)

at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)

at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)

at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:811)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)

at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

… 84 more



Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.

Hi,
I can confrm the shapefile datastore does not support removeSchema, the exception you’re getting it thus
correct (althought adding support for removeSchema could be added, anyone wants to open a new feature
request at https://osgeo-org.atlassian.net/projects/GEOT ? )
Shapefiles are used as a quick way to setup mosaics, for better management is probably best to use a database
(I believe that’s what we always used in mosaics that need to be modified with the REST api).

Cheers
Andrea

···

On Wed, Jun 3, 2015 at 1:03 PM, Morten Buhr <MRB@anonymised.com> wrote:

Dear Daniele,

I am not sure what you mean by which datastore I am using for the ImageMosaic index. When I create an ImageMosaic coverage store a set of shape files (.dpf, .prj, .shp, .shx) are automagically created and I do not explicit assign them to a data store.

I will gladly open a JIRA for this issue when I have understood your question, because my understanding of that may be significant for an adequate description of the problem I a JIRA.

Best Regards

Morten

From: dany.geotools@anonymised.com [mailto:dany.geotools@anonymised.com] On Behalf Of Daniele Romagnoli
Sent: 3. juni 2015 12:52
To: Morten Buhr
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Problems with ImageMosaic coverage stores via REST

Dear Morten,

which type of datastore are you using for the imageMosaic index?

I think that the unsupportedOperationException is interrupting the cleanup operations (such as the properties file delete).

Do you have any chance to open a JIRA for this issue?

Cheers,

Daniele

On Wed, Jun 3, 2015 at 11:58 AM, Morten Buhr <MRB@anonymised.com> wrote:

Hi,

Running GeoServer 1.7.0, JVM 1.7 using the bundled Jetty webserver on a Windows x64 platform.

I am having problems with managing ImageMosaic coverage stores via the REST interface.

When I delete an ImageMosaic coverage store via REST with the purge=all or purge=metadata option set the following exception is thrown (full stack trace at the bottom of mail):

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

It seems that the support files generated by ImageMosaic, especially the .properties file, are not deleted.

This has the consequence that if I try to generate a new ImageMosaic coverage store with the same name and uploading the same data, the image mosaic is not properly generated, and when trying to access the layer in the coverage store from a WMS client, the GeoServer does not produce any output.

I have to delete the .properties file manually in order to be able to re-generate the ImageMosaic coverage store.

Is this the expected behaviour of an ImageMosaic coverage store? If so, is there a way to circumvent this behaviour, that enables me to re-generate a deleted coverage store using the same name and uploading the same data?

Best Regards

Morten

Full stack trace:

74393199 [btpool0-5] ERROR org.geoserver.rest -

org.geoserver.rest.RestletException: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:228)

at org.restlet.Finder.handle(Finder.java:300)

at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)

at org.restlet.Filter.doHandle(Filter.java:105)

at org.restlet.Filter.handle(Filter.java:134)

at org.restlet.Router.handle(Router.java:444)

at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)

at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)

at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:811)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)

at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

… 84 more



Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.



Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Hi Morten,
please, read below…

···

On Wed, Jun 3, 2015 at 1:03 PM, Morten Buhr <MRB@anonymised.com> wrote:

Dear Daniele,

I am not sure what you mean by which datastore I am using for the ImageMosaic index.

When I create an ImageMosaic coverage store a set of shape files (.dpf, .prj, .shp, .shx) are automagically created and I do not explicit assign them to a data store.

I’m sorry… let me clarify. When the files composing the imageMosaic are scan, a record for each element is put into a datastore to allow retrieving them afterwards, working as an index / granules catalog. By default, granules are put into a shapefile (the one you see being automatically created). Otherwise, you may specify a datastore.properties to provide connection params to put these records into a PostGIS DB, an H2 DB, an OracleDB, …

Shapefile isn’t supporting removeSchema at the moment. This is why you see that exception.

Hope this clarifies a bit.
Best Regards,
Daniele

I will gladly open a JIRA for this issue when I have understood your question, because my understanding of that may be significant for an adequate description of the problem I a JIRA.

Best Regards

Morten

From: dany.geotools@anonymised.com [mailto:dany.geotools@anonymised.com] On Behalf Of Daniele Romagnoli
Sent: 3. juni 2015 12:52
To: Morten Buhr
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Problems with ImageMosaic coverage stores via REST

Dear Morten,

which type of datastore are you using for the imageMosaic index?

I think that the unsupportedOperationException is interrupting the cleanup operations (such as the properties file delete).

Do you have any chance to open a JIRA for this issue?

Cheers,

Daniele

On Wed, Jun 3, 2015 at 11:58 AM, Morten Buhr <MRB@anonymised.com> wrote:

Hi,

Running GeoServer 1.7.0, JVM 1.7 using the bundled Jetty webserver on a Windows x64 platform.

I am having problems with managing ImageMosaic coverage stores via the REST interface.

When I delete an ImageMosaic coverage store via REST with the purge=all or purge=metadata option set the following exception is thrown (full stack trace at the bottom of mail):

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

It seems that the support files generated by ImageMosaic, especially the .properties file, are not deleted.

This has the consequence that if I try to generate a new ImageMosaic coverage store with the same name and uploading the same data, the image mosaic is not properly generated, and when trying to access the layer in the coverage store from a WMS client, the GeoServer does not produce any output.

I have to delete the .properties file manually in order to be able to re-generate the ImageMosaic coverage store.

Is this the expected behaviour of an ImageMosaic coverage store? If so, is there a way to circumvent this behaviour, that enables me to re-generate a deleted coverage store using the same name and uploading the same data?

Best Regards

Morten

Full stack trace:

74393199 [btpool0-5] ERROR org.geoserver.rest -

org.geoserver.rest.RestletException: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:228)

at org.restlet.Finder.handle(Finder.java:300)

at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)

at org.restlet.Filter.doHandle(Filter.java:105)

at org.restlet.Filter.handle(Filter.java:134)

at org.restlet.Router.handle(Router.java:444)

at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)

at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)

at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:811)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)

at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

… 84 more



Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.



Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.

Thank you Daniele,

Along with Andrea’s reply I now have a good understanding of what is going on.

Best Regards

Morten

···

Hi Morten,

please, read below…

On Wed, Jun 3, 2015 at 1:03 PM, Morten Buhr <MRB@…7097…> wrote:

Dear Daniele,

I am not sure what you mean by which datastore I am using for the ImageMosaic index.

When I create an ImageMosaic coverage store a set of shape files (.dpf, .prj, .shp, .shx) are automagically created and I do not explicit assign them to a data store.

I’m sorry… let me clarify. When the files composing the imageMosaic are scan, a record for each element is put into a datastore to allow retrieving them afterwards, working as an index / granules catalog. By default, granules are put into a shapefile (the one you see being automatically created). Otherwise, you may specify a datastore.properties to provide connection params to put these records into a PostGIS DB, an H2 DB, an OracleDB, …

Shapefile isn’t supporting removeSchema at the moment. This is why you see that exception.

Hope this clarifies a bit.

Best Regards,

Daniele

I will gladly open a JIRA for this issue when I have understood your question, because my understanding of that may be significant for an adequate description of the problem I a JIRA.

Best Regards

Morten

From: dany.geotools@…84… [mailto:dany.geotools@…84…] On Behalf Of Daniele Romagnoli
Sent: 3. juni 2015 12:52
To: Morten Buhr
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Problems with ImageMosaic coverage stores via REST

Dear Morten,

which type of datastore are you using for the imageMosaic index?

I think that the unsupportedOperationException is interrupting the cleanup operations (such as the properties file delete).

Do you have any chance to open a JIRA for this issue?

Cheers,

Daniele

On Wed, Jun 3, 2015 at 11:58 AM, Morten Buhr <MRB@…7097…> wrote:

Hi,

Running GeoServer 1.7.0, JVM 1.7 using the bundled Jetty webserver on a Windows x64 platform.

I am having problems with managing ImageMosaic coverage stores via the REST interface.

When I delete an ImageMosaic coverage store via REST with the purge=all or purge=metadata option set the following exception is thrown (full stack trace at the bottom of mail):

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

It seems that the support files generated by ImageMosaic, especially the .properties file, are not deleted.

This has the consequence that if I try to generate a new ImageMosaic coverage store with the same name and uploading the same data, the image mosaic is not properly generated, and when trying to access the layer in the coverage store from a WMS client, the GeoServer does not produce any output.

I have to delete the .properties file manually in order to be able to re-generate the ImageMosaic coverage store.

Is this the expected behaviour of an ImageMosaic coverage store? If so, is there a way to circumvent this behaviour, that enables me to re-generate a deleted coverage store using the same name and uploading the same data?

Best Regards

Morten

Full stack trace:

74393199 [btpool0-5] ERROR org.geoserver.rest -

org.geoserver.rest.RestletException: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:228)

at org.restlet.Finder.handle(Finder.java:300)

at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)

at org.restlet.Filter.doHandle(Filter.java:105)

at org.restlet.Filter.handle(Filter.java:134)

at org.restlet.Router.handle(Router.java:444)

at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)

at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)

at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:811)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)

at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

… 84 more



Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.



Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.

Hi Andrea,

Thank you for your reply. I will open a new GeoTools feature request, as the shapefile approach fully fulfils my needs.

Best Regards

Morten

···

Hi,

I can confrm the shapefile datastore does not support removeSchema, the exception you’re getting it thus

correct (althought adding support for removeSchema could be added, anyone wants to open a new feature

request at https://osgeo-org.atlassian.net/projects/GEOT ? )

Shapefiles are used as a quick way to setup mosaics, for better management is probably best to use a database

(I believe that’s what we always used in mosaics that need to be modified with the REST api).

Cheers

Andrea

On Wed, Jun 3, 2015 at 1:03 PM, Morten Buhr <MRB@…7097…> wrote:

Dear Daniele,

I am not sure what you mean by which datastore I am using for the ImageMosaic index. When I create an ImageMosaic coverage store a set of shape files (.dpf, .prj, .shp, .shx) are automagically created and I do not explicit assign them to a data store.

I will gladly open a JIRA for this issue when I have understood your question, because my understanding of that may be significant for an adequate description of the problem I a JIRA.

Best Regards

Morten

From: dany.geotools@…84… [mailto:dany.geotools@…84…] On Behalf Of Daniele Romagnoli
Sent: 3. juni 2015 12:52
To: Morten Buhr
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Problems with ImageMosaic coverage stores via REST

Dear Morten,

which type of datastore are you using for the imageMosaic index?

I think that the unsupportedOperationException is interrupting the cleanup operations (such as the properties file delete).

Do you have any chance to open a JIRA for this issue?

Cheers,

Daniele

On Wed, Jun 3, 2015 at 11:58 AM, Morten Buhr <MRB@…7097…> wrote:

Hi,

Running GeoServer 1.7.0, JVM 1.7 using the bundled Jetty webserver on a Windows x64 platform.

I am having problems with managing ImageMosaic coverage stores via the REST interface.

When I delete an ImageMosaic coverage store via REST with the purge=all or purge=metadata option set the following exception is thrown (full stack trace at the bottom of mail):

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

It seems that the support files generated by ImageMosaic, especially the .properties file, are not deleted.

This has the consequence that if I try to generate a new ImageMosaic coverage store with the same name and uploading the same data, the image mosaic is not properly generated, and when trying to access the layer in the coverage store from a WMS client, the GeoServer does not produce any output.

I have to delete the .properties file manually in order to be able to re-generate the ImageMosaic coverage store.

Is this the expected behaviour of an ImageMosaic coverage store? If so, is there a way to circumvent this behaviour, that enables me to re-generate a deleted coverage store using the same name and uploading the same data?

Best Regards

Morten

Full stack trace:

74393199 [btpool0-5] ERROR org.geoserver.rest -

org.geoserver.rest.RestletException: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:326)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:228)

at org.restlet.Finder.handle(Finder.java:300)

at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)

at org.restlet.Filter.doHandle(Filter.java:105)

at org.restlet.Filter.handle(Filter.java:134)

at org.restlet.Router.handle(Router.java:444)

at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:205)

at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)

at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:87)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)

at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:811)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)

at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)

at org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)

at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)

at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)

at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)

at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:135)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:76)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Caused by: java.lang.UnsupportedOperationException: Schema removal not supported

at org.geotools.data.store.ContentDataStore.removeSchema(ContentDataStore.java:737)

at org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog.removeType(GTDataStoreGranuleCatalog.java:573)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.removeType(CachingDataStoreGranuleCatalog.java:257)

at org.geotools.gce.imagemosaic.RasterManager.removeStore(RasterManager.java:1297)

at org.geotools.gce.imagemosaic.ImageMosaicReader.removeCoverage(ImageMosaicReader.java:1139)

at org.geotools.gce.imagemosaic.ImageMosaicReader.delete(ImageMosaicReader.java:1288)

at org.geoserver.catalog.CoverageDimensionCustomizerReader$CoverageDimensionCustomizerStructuredReader.delete(CoverageDimensionCustomizerReader.java:122)

at org.geoserver.catalog.rest.CoverageStoreResource.delete(CoverageStoreResource.java:139)

at org.geoserver.catalog.rest.CoverageStoreResource.handleObjectDelete(CoverageStoreResource.java:120)

at org.geoserver.rest.ReflectiveResource.handleDelete(ReflectiveResource.java:225)

… 84 more



Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Daniele Romagnoli
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.



Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

==

GeoServer Professional Services from the experts! Visit

http://goo.gl/it488V for more information.

==

Ing. Andrea Aime

@geowolf

Technical Lead

GeoSolutions S.A.S.

Via Poggio alle Viti 1187

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it

http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.