[Geoserver-devel] [jira] (GEOS-5023) ImageMosaic fails on a set of geotiffs.

Jernej Korinsek created GEOS-5023:
-------------------------------------

             Summary: ImageMosaic fails on a set of geotiffs.
                 Key: GEOS-5023
                 URL: https://jira.codehaus.org/browse/GEOS-5023
             Project: GeoServer
          Issue Type: Bug
          Components: Image mosaic JDBC
    Affects Versions: 2.1.3
         Environment: Linux 2.6.32-5-amd64
Debian GNU/Linux 6.0.4 (squeeze)
            Reporter: Jernej Korinsek
            Assignee: Andrea Aime
            Priority: Blocker
         Attachments: 3787.prj, fixtif, gdalinfo.txt, gen_tfw.py

Hello!
I am having a problem creating an ImageMosaic store.

I have a whole bunch of tiffs (a small sample here: http://84.20.246.54/datoteke/jernej/testset.rar ), which are not proper geotiffs. Firstly I ran the attached fixtif script, thus assigning EPSG:3787 srs (gdal_translate -a_srs EPSG:3787). Then I ran the attached gen_tfw.py script (python gen_tfw.py proper prj) to generate .prj files (I also tried manualy copying 3787.prj file to each of the tif files). The generated tif files are proper geotiff (see attached gdalinfo).

When trying to make a raster data source ImageMosaic, Geoserver returns:
Could not list layers for this store, an error occurred retrieving them: Unable to acquire a reader for this coverage with format: ImageMosaic.

here is verbose log:
2012-03-23 12:59:11,437 INFO [org.geoserver.web] - Getting list of coverages for saved store /mnt/ftp/www/geo/tiff/E05/proper/
java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Unable to acquire a reader for this coverage with format: ImageMosaic
  at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:115)
  at org.geoserver.web.wicket.GeoServerDataProvider.fullSize(GeoServerDataProvider.java:225)
  at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:509)
  at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.<init>(GeoServerTablePanel.java:502)
  at org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:200)
  at org.geoserver.web.wicket.GeoServerTablePanel.<init>(GeoServerTablePanel.java:91)
  at org.geoserver.web.data.layer.NewLayerPage$1.<init>(NewLayerPage.java:107)
  at org.geoserver.web.data.layer.NewLayerPage.<init>(NewLayerPage.java:104)
  at org.geoserver.web.data.store.CoverageStoreNewPage.onSave(CoverageStoreNewPage.java:71)
  at org.geoserver.web.data.store.AbstractCoverageStorePage$1.onSubmit(AbstractCoverageStorePage.java:114)
  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:637)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158)
  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:875)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:23)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74)
  at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:394)
  at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
  at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
  at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
  at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
  at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
  at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
  at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
  at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
  at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
  at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
  at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:185)
  at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:71)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.Exception: Unable to acquire a reader for this coverage with format: ImageMosaic
  at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:812)
  at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:82)
  ... 98 more
2012-03-23 12:59:11,439 DEBUG [org.geoserver.config] - Removing coverage store dtktest
2012-03-23 12:59:11,441 DEBUG [org.geoserver.config] - Persisted $Proxy16 to /var/lib/tomcat6/webapps/geoserver/data/global.xml
2012-03-23 12:59:11,448 DEBUG [org.geoserver] - Thread 35 releasing the lock in mode WRITE
2012-03-23 12:59:11,448 DEBUG [org.geoserver.filters] - Compressing output for mimetype: text/xml;charset=UTF-8
2012-03-23 13:00:13,266 DEBUG [org.geoserver.filters] - filtering http://192.168.6.9:8080/geoserver/web/
2012-03-23 13:00:13,266 DEBUG [org.geoserver.ows.OWSHandlerMapping] - Looking up handler for [/web/]
2012-03-23 13:00:13,267 DEBUG [org.geoserver.ows.OWSHandlerMapping] - Looking up handler for [/web/]
2012-03-23 13:00:13,267 DEBUG [org.geoserver] - Thread 35 locking in mode WRITE
2012-03-23 13:00:13,267 DEBUG [org.geoserver] - Thread 35 got the lock in mode WRITE
2012-03-23 13:00:13,285 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/admin/LogPage.html to file (URI is not hierarchical), falling back to the inputstream for polling
2012-03-23 13:00:13,289 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/css/blueprint/screen.css to file (URI is not hierarchical), falling back to the inputstream for polling
2012-03-23 13:00:13,290 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/css/blueprint/print.css to file (URI is not hierarchical), falling back to the inputstream for polling
2012-03-23 13:00:13,290 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/css/geoserver.css to file (URI is not hierarchical), falling back to the inputstream for polling
2012-03-23 13:00:13,291 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/css/blueprint/ie.css to file (URI is not hierarchical), falling back to the inputstream for polling
2012-03-23 13:00:13,292 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/css/geoserver-ie.css to file (URI is not hierarchical), falling back to the inputstream for polling
2012-03-23 13:00:13,292 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/js/jquery-1.2.6.min.js to file (URI is not hierarchical), falling back to the inputstream for polling
2012-03-23 13:00:13,293 DEBUG [org.geoserver.web] - cannot convert url: jar:file:/var/lib/tomcat6/webapps/geoserver/WEB-INF/lib/web-core-2.1.3.jar!/org/geoserver/web/js/jquery.inline-info.js to file (URI is not hierarchical), falling back to the inputstream for polling

Now just for the kick of it, I've tried and converted the .tif files to .png, renamed .tfw to .pgw and then the mosaicking works, but converting 300GB to png is really not an option here.

What is wrong?

Thank you!
Jernej

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira