[Geoserver-users] Get error trying to use ImageMosaic plugin for raster time-series data

After a serious debug session with Geoserver and GeoTools source code I discovered that the GeoTools org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog class was being passed unexpected “typeNames” to its “extractBasicProperties” method (i.e. database tables in my Postgresql db) thinking they had feature info in them. After looking back at the ImageMosaic tutorial I noticed that it clearly states:

The configuration needed are the basics: create a new empty DB with geospatial extensions, a new schema and configure the user with W/R grants.

My database had other unrelated tables in it and after I created a new database meeting the above requirement the ImageMosaic with time and elevation dimensions was created successfully and layer published. I still find this empty DB requirement to be a bit odd but at least it is working for me now.

–Steve

···

From: Stephen Brooke
Sent: Wednesday, August 06, 2014 10:26 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Does anyone have any insight into this? I find it hard to believe that I’m the first to discover that the “Using the ImageMosaic plugin for raster time-series data” tutorial from the GeoServer documentation doesn’t work with GeoServer 2.5.1 as written.

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:39 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Tracing into the GeoServer source code it appears the error is coming out of the below lines in the org.geoserver.catalog. ResourcePool class but I don’t understand why:

ResourcePool.java:

private GridCoverageReader getGridCoverageReader(CoverageStoreInfo info, CoverageInfo coverageInfo, String coverageName, Hints hints)

throws IOException {

// readers might change the provided hints, pass down a defensive copy

reader = gridFormat.getReader(input, new Hints(hints));

if(reader == null) {

throw new IOException("Failed to create reader from " + url + " and hints " + hints);

}

}

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:20 AM
To: geoserver-users@lists.sourceforge.net
Subject: Get error trying to use ImageMosaic plugin for raster time-series data

I’m using GeoServer 2.5.1 and PostGIS 2.1.3

I’m trying to run through the tutorial in GeoServer docs “Using the ImageMosaic plugin for raster time-series data” and I don’t think I’ve deviated at all from the steps from (http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html#id3) except to call my “TimeAttribute” “ingest_time” instead of “ingestion”, and I get the below stacktrace in the GeoServer log and my Coverage Store fails to be created.

I’m using the DBMS approach for storing the dimension attributes and spatial index and I see that a new table called “snow” is added to my database, however the ImageMosaic is not created. Is there some step missing in this tutorial? I’m having a difficult time understanding what problem the operation is having with my configuration as the message in the stacktrace is a bit too generic:

Caused by: java.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

<<<<

The “snow” table has the following contents:

1;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091001.tif”;“2009-10-01 00:00:00”;

2;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091101.tif”;“2009-11-01 00:00:00”;

3;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091201.tif”;“2009-12-01 00:00:00”;

–Steve

30 Jul 18:08:21 INFO [geoserver.web] - Getting list of coverages for saved store file://D:\Data\gis\hydroalp\snow

java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:150)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:58)

at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:236)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:562)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.(GeoServerTablePanel.java:555)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:219)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:98)

at org.geoserver.web.data.layer.NewLayerPage$1.(NewLayerPage.java:101)

at org.geoserver.web.data.layer.NewLayerPage.(NewLayerPage.java:101)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSuccessfulSave(CoverageStoreNewPage.java:76)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:67)

at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:115)

at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68)

at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)

at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)

at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300)

at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119)

at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)

at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)

at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)

at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)

at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)

at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)

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

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

at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)

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.doPost(FrameworkServlet.java:789)

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

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:27)

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

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

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

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

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

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

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

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:68)

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:72)

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

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

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

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

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

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

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

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

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

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

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)

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

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

at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:115)

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

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

at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)

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

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

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

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

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

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

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

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

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:134)

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:75)

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

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

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

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

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

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

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

at gs.gc.SimpleAuthorizationFilter.doFilter(SimpleAuthorizationFilter.java:35)

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

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:168)

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233)

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.content(HttpConnection.java:842)

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

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.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1296)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:58)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:145)

at com.sun.proxy.$Proxy8.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:89)

… 112 more

Stephen Brooke (a.k.a. Steve)
Software Engineer III
Ground Systems
MDA
http://www.mda.ca
sbrooke@anonymised.com

Direct phone

+1 604 231 2429

Cell phone

+1 778 839 3274

Switchboard

+1 604 278 3411

FAX

+1 604 231 2757


This e-mail and any attachments are intended solely for the use of the intended recipient(s) and may contain legally privileged, proprietary and/or confidential information. Any use, disclosure, dissemination, distribution or copying of this e-mail and any attachments for any purposes that have not been specifically authorized by the sender is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply e-mail and permanently delete all copies and attachments.
The entire content of this e-mail is for “information purposes” only and should not be relied upon by the recipient in any way unless otherwise confirmed in writing by way of letter or facsimile.

Ciao Stephen,
this limitation should be gone on the soon-to-be 2.6.
I’ll check tomorrow if this can be backported to 2.5.x.

···

Regards,
Simone Giannecchini

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

Ing. Simone Giannecchini
@simogeo
Founder/Director

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

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


On Mon, Aug 11, 2014 at 6:21 PM, Stephen Brooke <sbrooke@anonymised.com> wrote:

After a serious debug session with Geoserver and GeoTools source code I discovered that the GeoTools org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog class was being passed unexpected “typeNames” to its “extractBasicProperties” method (i.e. database tables in my Postgresql db) thinking they had feature info in them. After looking back at the ImageMosaic tutorial I noticed that it clearly states:

The configuration needed are the basics: create a new empty DB with geospatial extensions, a new schema and configure the user with W/R grants.

My database had other unrelated tables in it and after I created a new database meeting the above requirement the ImageMosaic with time and elevation dimensions was created successfully and layer published. I still find this empty DB requirement to be a bit odd but at least it is working for me now.

–Steve

From: Stephen Brooke
Sent: Wednesday, August 06, 2014 10:26 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Does anyone have any insight into this? I find it hard to believe that I’m the first to discover that the “Using the ImageMosaic plugin for raster time-series data” tutorial from the GeoServer documentation doesn’t work with GeoServer 2.5.1 as written.

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:39 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Tracing into the GeoServer source code it appears the error is coming out of the below lines in the org.geoserver.catalog. ResourcePool class but I don’t understand why:

ResourcePool.java:

private GridCoverageReader getGridCoverageReader(CoverageStoreInfo info, CoverageInfo coverageInfo, String coverageName, Hints hints)

throws IOException {

// readers might change the provided hints, pass down a defensive copy

reader = gridFormat.getReader(input, new Hints(hints));

if(reader == null) {

throw new IOException("Failed to create reader from " + url + " and hints " + hints);

}

}

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:20 AM
To: geoserver-users@lists.sourceforge.net
Subject: Get error trying to use ImageMosaic plugin for raster time-series data

I’m using GeoServer 2.5.1 and PostGIS 2.1.3

I’m trying to run through the tutorial in GeoServer docs “Using the ImageMosaic plugin for raster time-series data” and I don’t think I’ve deviated at all from the steps from (http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html#id3) except to call my “TimeAttribute” “ingest_time” instead of “ingestion”, and I get the below stacktrace in the GeoServer log and my Coverage Store fails to be created.

I’m using the DBMS approach for storing the dimension attributes and spatial index and I see that a new table called “snow” is added to my database, however the ImageMosaic is not created. Is there some step missing in this tutorial? I’m having a difficult time understanding what problem the operation is having with my configuration as the message in the stacktrace is a bit too generic:

Caused by: java.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

<<<<

The “snow” table has the following contents:

1;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091001.tif”;“2009-10-01 00:00:00”;

2;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091101.tif”;“2009-11-01 00:00:00”;

3;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091201.tif”;“2009-12-01 00:00:00”;

–Steve

30 Jul 18:08:21 INFO [geoserver.web] - Getting list of coverages for saved store file://D:\Data\gis\hydroalp\snow

java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:150)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:58)

at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:236)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:562)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.(GeoServerTablePanel.java:555)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:219)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:98)

at org.geoserver.web.data.layer.NewLayerPage$1.(NewLayerPage.java:101)

at org.geoserver.web.data.layer.NewLayerPage.(NewLayerPage.java:101)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSuccessfulSave(CoverageStoreNewPage.java:76)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:67)

at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:115)

at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68)

at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)

at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)

at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300)

at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119)

at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)

at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)

at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)

at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)

at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)

at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)

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

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

at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)

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.doPost(FrameworkServlet.java:789)

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

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:27)

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

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

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

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

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

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

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

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:68)

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:72)

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

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

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

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

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

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

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

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

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

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

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)

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

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

at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:115)

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

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

at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)

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

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

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

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

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

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

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

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

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:134)

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:75)

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

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

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

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

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

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

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

at gs.gc.SimpleAuthorizationFilter.doFilter(SimpleAuthorizationFilter.java:35)

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

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:168)

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233)

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.content(HttpConnection.java:842)

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

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.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1296)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:58)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:145)

at com.sun.proxy.$Proxy8.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:89)

… 112 more

Stephen Brooke (a.k.a. Steve)
Software Engineer III
Ground Systems
MDA
http://www.mda.ca
sbrooke@anonymised.com

Direct phone

+1 604 231 2429

Cell phone

+1 778 839 3274

Switchboard

+1 604 278 3411

FAX

+1 604 231 2757


This e-mail and any attachments are intended solely for the use of the intended recipient(s) and may contain legally privileged, proprietary and/or confidential information. Any use, disclosure, dissemination, distribution or copying of this e-mail and any attachments for any purposes that have not been specifically authorized by the sender is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply e-mail and permanently delete all copies and attachments.
The entire content of this e-mail is for “information purposes” only and should not be relied upon by the recipient in any way unless otherwise confirmed in writing by way of letter or facsimile.



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

Hi Simone,

That would be very much appreciated because I don’t want to have to create a new database for each time series mosaic as there will likely be too many of them for it to be practical.

If you could make this happen that would be great!

Thanks for your response,

–Steve

···

Ciao Stephen,

this limitation should be gone on the soon-to-be 2.6.

I’ll check tomorrow if this can be backported to 2.5.x.

Regards,
Simone Giannecchini

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

Ing. Simone Giannecchini
@simogeo
Founder/Director

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

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


On Mon, Aug 11, 2014 at 6:21 PM, Stephen Brooke <sbrooke@…3836…> wrote:

After a serious debug session with Geoserver and GeoTools source code I discovered that the GeoTools org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog class was being passed unexpected “typeNames” to its “extractBasicProperties” method (i.e. database tables in my Postgresql db) thinking they had feature info in them. After looking back at the ImageMosaic tutorial I noticed that it clearly states:

The configuration needed are the basics: create a new empty DB with geospatial extensions, a new schema and configure the user with W/R grants.

My database had other unrelated tables in it and after I created a new database meeting the above requirement the ImageMosaic with time and elevation dimensions was created successfully and layer published. I still find this empty DB requirement to be a bit odd but at least it is working for me now.

–Steve

From: Stephen Brooke
Sent: Wednesday, August 06, 2014 10:26 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Does anyone have any insight into this? I find it hard to believe that I’m the first to discover that the “Using the ImageMosaic plugin for raster time-series data” tutorial from the GeoServer documentation doesn’t work with GeoServer 2.5.1 as written.

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:39 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Tracing into the GeoServer source code it appears the error is coming out of the below lines in the org.geoserver.catalog. ResourcePool class but I don’t understand why:

ResourcePool.java:

private GridCoverageReader getGridCoverageReader(CoverageStoreInfo info, CoverageInfo coverageInfo, String coverageName, Hints hints)

throws IOException {

// readers might change the provided hints, pass down a defensive copy

reader = gridFormat.getReader(input, new Hints(hints));

if(reader == null) {

throw new IOException("Failed to create reader from " + url + " and hints " + hints);

}

}

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:20 AM
To: geoserver-users@lists.sourceforge.net
Subject: Get error trying to use ImageMosaic plugin for raster time-series data

I’m using GeoServer 2.5.1 and PostGIS 2.1.3

I’m trying to run through the tutorial in GeoServer docs “Using the ImageMosaic plugin for raster time-series data” and I don’t think I’ve deviated at all from the steps from (http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html#id3) except to call my “TimeAttribute” “ingest_time” instead of “ingestion”, and I get the below stacktrace in the GeoServer log and my Coverage Store fails to be created.

I’m using the DBMS approach for storing the dimension attributes and spatial index and I see that a new table called “snow” is added to my database, however the ImageMosaic is not created. Is there some step missing in this tutorial? I’m having a difficult time understanding what problem the operation is having with my configuration as the message in the stacktrace is a bit too generic:

Caused by: java.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

<<<<

The “snow” table has the following contents:

1;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091001.tif”;“2009-10-01 00:00:00”;

2;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091101.tif”;“2009-11-01 00:00:00”;

3;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091201.tif”;“2009-12-01 00:00:00”;

–Steve

30 Jul 18:08:21 INFO [geoserver.web] - Getting list of coverages for saved store file://D:\Data\gis\hydroalp\snow

java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:150)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:58)

at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:236)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:562)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.(GeoServerTablePanel.java:555)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:219)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:98)

at org.geoserver.web.data.layer.NewLayerPage$1.(NewLayerPage.java:101)

at org.geoserver.web.data.layer.NewLayerPage.(NewLayerPage.java:101)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSuccessfulSave(CoverageStoreNewPage.java:76)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:67)

at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:115)

at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68)

at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)

at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)

at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300)

at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119)

at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)

at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)

at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)

at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)

at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)

at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)

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

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

at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)

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.doPost(FrameworkServlet.java:789)

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

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:27)

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

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

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

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

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

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

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

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:68)

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:72)

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

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

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

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

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

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

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

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

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

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

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)

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

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

at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:115)

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

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

at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)

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

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

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

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

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

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

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

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

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:134)

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:75)

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

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

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

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

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

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

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

at gs.gc.SimpleAuthorizationFilter.doFilter(SimpleAuthorizationFilter.java:35)

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

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:168)

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233)

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.content(HttpConnection.java:842)

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

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.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1296)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:58)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:145)

at com.sun.proxy.$Proxy8.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:89)

… 112 more

Stephen Brooke (a.k.a. Steve)
Software Engineer III
Ground Systems
MDA
http://www.mda.ca
sbrooke@…3836…

Direct phone

+1 604 231 2429

Cell phone

+1 778 839 3274

Switchboard

+1 604 278 3411

FAX

+1 604 231 2757


This e-mail and any attachments are intended solely for the use of the intended recipient(s) and may contain legally privileged, proprietary and/or confidential information. Any use, disclosure, dissemination, distribution or copying of this e-mail and any attachments for any purposes that have not been specifically authorized by the sender is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply e-mail and permanently delete all copies and attachments.
The entire content of this e-mail is for “information purposes” only and should not be relied upon by the recipient in any way unless otherwise confirmed in writing by way of letter or facsimile.



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

Ciao Stephen,

I just tested this with a nightly build from 2.5.x and I was able to cuse an existing DB with other tables.

To confirm you should find in the autogenerated properties files a KVP like this:

TypeName=waterTempPG

which tells the ImageMosaic which table he should use.

Long story short this will be in 2.5.3 for sure, you might want to try a recent nightly to double check it works for you.

···

Regards,
Simone Giannecchini

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

Ing. Simone Giannecchini
@simogeo
Founder/Director

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

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


On Mon, Aug 11, 2014 at 8:26 PM, Stephen Brooke <sbrooke@anonymised.com> wrote:

Hi Simone,

That would be very much appreciated because I don’t want to have to create a new database for each time series mosaic as there will likely be too many of them for it to be practical.

If you could make this happen that would be great!

Thanks for your response,

–Steve

From: simboss1@anonymised.com [mailto:simboss1@anonymised.com] On Behalf Of Simone Giannecchini
Sent: Monday, August 11, 2014 11:20 AM
To: Stephen Brooke
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Get error trying to use ImageMosaic plugin for raster time-series data

Ciao Stephen,

this limitation should be gone on the soon-to-be 2.6.

I’ll check tomorrow if this can be backported to 2.5.x.

Regards,
Simone Giannecchini

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

Ing. Simone Giannecchini
@simogeo
Founder/Director

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

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


On Mon, Aug 11, 2014 at 6:21 PM, Stephen Brooke <sbrooke@anonymised.com> wrote:

After a serious debug session with Geoserver and GeoTools source code I discovered that the GeoTools org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog class was being passed unexpected “typeNames” to its “extractBasicProperties” method (i.e. database tables in my Postgresql db) thinking they had feature info in them. After looking back at the ImageMosaic tutorial I noticed that it clearly states:

The configuration needed are the basics: create a new empty DB with geospatial extensions, a new schema and configure the user with W/R grants.

My database had other unrelated tables in it and after I created a new database meeting the above requirement the ImageMosaic with time and elevation dimensions was created successfully and layer published. I still find this empty DB requirement to be a bit odd but at least it is working for me now.

–Steve

From: Stephen Brooke
Sent: Wednesday, August 06, 2014 10:26 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Does anyone have any insight into this? I find it hard to believe that I’m the first to discover that the “Using the ImageMosaic plugin for raster time-series data” tutorial from the GeoServer documentation doesn’t work with GeoServer 2.5.1 as written.

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:39 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Tracing into the GeoServer source code it appears the error is coming out of the below lines in the org.geoserver.catalog. ResourcePool class but I don’t understand why:

ResourcePool.java:

private GridCoverageReader getGridCoverageReader(CoverageStoreInfo info, CoverageInfo coverageInfo, String coverageName, Hints hints)

throws IOException {

// readers might change the provided hints, pass down a defensive copy

reader = gridFormat.getReader(input, new Hints(hints));

if(reader == null) {

throw new IOException("Failed to create reader from " + url + " and hints " + hints);

}

}

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:20 AM
To: geoserver-users@lists.sourceforge.net
Subject: Get error trying to use ImageMosaic plugin for raster time-series data

I’m using GeoServer 2.5.1 and PostGIS 2.1.3

I’m trying to run through the tutorial in GeoServer docs “Using the ImageMosaic plugin for raster time-series data” and I don’t think I’ve deviated at all from the steps from (http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html#id3) except to call my “TimeAttribute” “ingest_time” instead of “ingestion”, and I get the below stacktrace in the GeoServer log and my Coverage Store fails to be created.

I’m using the DBMS approach for storing the dimension attributes and spatial index and I see that a new table called “snow” is added to my database, however the ImageMosaic is not created. Is there some step missing in this tutorial? I’m having a difficult time understanding what problem the operation is having with my configuration as the message in the stacktrace is a bit too generic:

Caused by: java.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

<<<<

The “snow” table has the following contents:

1;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091001.tif”;“2009-10-01 00:00:00”;

2;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091101.tif”;“2009-11-01 00:00:00”;

3;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091201.tif”;“2009-12-01 00:00:00”;

–Steve

30 Jul 18:08:21 INFO [geoserver.web] - Getting list of coverages for saved store file://D:\Data\gis\hydroalp\snow

java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:150)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:58)

at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:236)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:562)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.(GeoServerTablePanel.java:555)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:219)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:98)

at org.geoserver.web.data.layer.NewLayerPage$1.(NewLayerPage.java:101)

at org.geoserver.web.data.layer.NewLayerPage.(NewLayerPage.java:101)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSuccessfulSave(CoverageStoreNewPage.java:76)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:67)

at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:115)

at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68)

at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)

at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)

at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300)

at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119)

at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)

at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)

at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)

at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)

at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)

at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)

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

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

at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)

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.doPost(FrameworkServlet.java:789)

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

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:27)

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

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

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

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

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

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

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

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:68)

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:72)

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

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

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

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

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

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

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

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

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

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

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)

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

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

at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:115)

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

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

at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)

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

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

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

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

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

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

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

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

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:134)

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:75)

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

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

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

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

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

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

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

at gs.gc.SimpleAuthorizationFilter.doFilter(SimpleAuthorizationFilter.java:35)

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

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:168)

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233)

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.content(HttpConnection.java:842)

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

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.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1296)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:58)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:145)

at com.sun.proxy.$Proxy8.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:89)

… 112 more

Stephen Brooke (a.k.a. Steve)
Software Engineer III
Ground Systems
MDA
http://www.mda.ca
sbrooke@anonymised.com

Direct phone

+1 604 231 2429

Cell phone

+1 778 839 3274

Switchboard

+1 604 278 3411

FAX

+1 604 231 2757


This e-mail and any attachments are intended solely for the use of the intended recipient(s) and may contain legally privileged, proprietary and/or confidential information. Any use, disclosure, dissemination, distribution or copying of this e-mail and any attachments for any purposes that have not been specifically authorized by the sender is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply e-mail and permanently delete all copies and attachments.
The entire content of this e-mail is for “information purposes” only and should not be relied upon by the recipient in any way unless otherwise confirmed in writing by way of letter or facsimile.



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

Thanks Simone! I will try it when 2.5.3 becomes available.

–Steve

···

Ciao Stephen,

I just tested this with a nightly build from 2.5.x and I was able to cuse an existing DB with other tables.

To confirm you should find in the autogenerated properties files a KVP like this:

TypeName=waterTempPG

which tells the ImageMosaic which table he should use.

Long story short this will be in 2.5.3 for sure, you might want to try a recent nightly to double check it works for you.

Regards,
Simone Giannecchini

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

Ing. Simone Giannecchini
@simogeo
Founder/Director

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

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


On Mon, Aug 11, 2014 at 8:26 PM, Stephen Brooke <sbrooke@…3836…> wrote:

Hi Simone,

That would be very much appreciated because I don’t want to have to create a new database for each time series mosaic as there will likely be too many of them for it to be practical.

If you could make this happen that would be great!

Thanks for your response,

–Steve

From: simboss1@…84… [mailto:simboss1@…84…] On Behalf Of Simone Giannecchini
Sent: Monday, August 11, 2014 11:20 AM
To: Stephen Brooke
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Get error trying to use ImageMosaic plugin for raster time-series data

Ciao Stephen,

this limitation should be gone on the soon-to-be 2.6.

I’ll check tomorrow if this can be backported to 2.5.x.

Regards,
Simone Giannecchini

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

Ing. Simone Giannecchini
@simogeo
Founder/Director

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

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


On Mon, Aug 11, 2014 at 6:21 PM, Stephen Brooke <sbrooke@…3836…> wrote:

After a serious debug session with Geoserver and GeoTools source code I discovered that the GeoTools org.geotools.gce.imagemosaic.catalog.GTDataStoreGranuleCatalog class was being passed unexpected “typeNames” to its “extractBasicProperties” method (i.e. database tables in my Postgresql db) thinking they had feature info in them. After looking back at the ImageMosaic tutorial I noticed that it clearly states:

The configuration needed are the basics: create a new empty DB with geospatial extensions, a new schema and configure the user with W/R grants.

My database had other unrelated tables in it and after I created a new database meeting the above requirement the ImageMosaic with time and elevation dimensions was created successfully and layer published. I still find this empty DB requirement to be a bit odd but at least it is working for me now.

–Steve

From: Stephen Brooke
Sent: Wednesday, August 06, 2014 10:26 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Does anyone have any insight into this? I find it hard to believe that I’m the first to discover that the “Using the ImageMosaic plugin for raster time-series data” tutorial from the GeoServer documentation doesn’t work with GeoServer 2.5.1 as written.

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:39 AM
To: geoserver-users@lists.sourceforge.net
Subject: RE: Get error trying to use ImageMosaic plugin for raster time-series data

Tracing into the GeoServer source code it appears the error is coming out of the below lines in the org.geoserver.catalog. ResourcePool class but I don’t understand why:

ResourcePool.java:

private GridCoverageReader getGridCoverageReader(CoverageStoreInfo info, CoverageInfo coverageInfo, String coverageName, Hints hints)

throws IOException {

// readers might change the provided hints, pass down a defensive copy

reader = gridFormat.getReader(input, new Hints(hints));

if(reader == null) {

throw new IOException("Failed to create reader from " + url + " and hints " + hints);

}

}

–Steve

From: Stephen Brooke
Sent: Wednesday, July 30, 2014 11:20 AM
To: geoserver-users@lists.sourceforge.net
Subject: Get error trying to use ImageMosaic plugin for raster time-series data

I’m using GeoServer 2.5.1 and PostGIS 2.1.3

I’m trying to run through the tutorial in GeoServer docs “Using the ImageMosaic plugin for raster time-series data” and I don’t think I’ve deviated at all from the steps from (http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html#id3) except to call my “TimeAttribute” “ingest_time” instead of “ingestion”, and I get the below stacktrace in the GeoServer log and my Coverage Store fails to be created.

I’m using the DBMS approach for storing the dimension attributes and spatial index and I see that a new table called “snow” is added to my database, however the ImageMosaic is not created. Is there some step missing in this tutorial? I’m having a difficult time understanding what problem the operation is having with my configuration as the message in the stacktrace is a bit too generic:

Caused by: java.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

<<<<

The “snow” table has the following contents:

1;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091001.tif”;“2009-10-01 00:00:00”;

2;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091101.tif”;“2009-11-01 00:00:00”;

3;“0103000020787F000001000000050000000000000040112341000000004BBA5341000000004011234100000000FDC6534100000000304E234100000000FDC6534100000000304E2341000000004BBA53410000000040112341000000004BBA5341”;“snow_20091201.tif”;“2009-12-01 00:00:00”;

–Steve

30 Jul 18:08:21 INFO [geoserver.web] - Getting list of coverages for saved store file://D:\Data\gis\hydroalp\snow

java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:150)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:58)

at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:236)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:562)

at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.(GeoServerTablePanel.java:555)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:219)

at org.geoserver.web.wicket.GeoServerTablePanel.(GeoServerTablePanel.java:98)

at org.geoserver.web.data.layer.NewLayerPage$1.(NewLayerPage.java:101)

at org.geoserver.web.data.layer.NewLayerPage.(NewLayerPage.java:101)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSuccessfulSave(CoverageStoreNewPage.java:76)

at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:67)

at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:115)

at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:68)

at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:143)

at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)

at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:300)

at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:119)

at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)

at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)

at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)

at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)

at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)

at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)

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

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

at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)

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.doPost(FrameworkServlet.java:789)

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

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:27)

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

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

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

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

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

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

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

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:68)

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:72)

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

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

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

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

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

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

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

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

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

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

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)

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

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

at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:115)

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

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

at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)

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

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

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

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

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

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

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

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

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:134)

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:75)

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

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

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

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

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

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

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

at gs.gc.SimpleAuthorizationFilter.doFilter(SimpleAuthorizationFilter.java:35)

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

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:168)

at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233)

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.content(HttpConnection.java:842)

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

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.io.IOException: Failed to create reader from file://D:\Data\gis\hydroalp\snow and hints null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1296)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:58)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:145)

at com.sun.proxy.$Proxy8.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:89)

… 112 more

Stephen Brooke (a.k.a. Steve)
Software Engineer III
Ground Systems
MDA
http://www.mda.ca
sbrooke@…3836…

Direct phone

+1 604 231 2429

Cell phone

+1 778 839 3274

Switchboard

+1 604 278 3411

FAX

+1 604 231 2757


This e-mail and any attachments are intended solely for the use of the intended recipient(s) and may contain legally privileged, proprietary and/or confidential information. Any use, disclosure, dissemination, distribution or copying of this e-mail and any attachments for any purposes that have not been specifically authorized by the sender is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply e-mail and permanently delete all copies and attachments.
The entire content of this e-mail is for “information purposes” only and should not be relied upon by the recipient in any way unless otherwise confirmed in writing by way of letter or facsimile.



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