[Geoserver-devel] [JIRA] (GEOS-9286) Import of GeoPackage db without raster fails

Robert Ward created an issue

GeoServer / BugGEOS-9286

Import of GeoPackage db without raster fails

Issue Type:

BugBug

Affects Versions:

2.15.2

Assignee:

Unassigned

Components:

geopackage, Importer

Created:

15/Jul/19 11:36 AM

Environment:

GeoServer 2.15.2
Ubuntu 16.04/18.04

GeoPackage file with one vector layer in it

Priority:

MediumMedium

Reporter:

Robert Ward

Using the GeoServer Importer extension to upload a GeoPackage with one vector layer in it causes the following:

java.util.NoSuchElementException
	java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:721)
	java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:742)
	org.geotools.geopkg.mosaic.GeoPackageReader.<init>(GeoPackageReader.java:110)
	org.geotools.geopkg.mosaic.GeoPackageFormat.getReader(GeoPackageFormat.java:82)
	org.geotools.geopkg.mosaic.GeoPackageFormat.getReader(GeoPackageFormat.java:76)
	org.geoserver.importer.GridFormat.gridReader(GridFormat.java:135)
	org.geoserver.importer.GridFormat.list(GridFormat.java:82)
	org.geoserver.importer.Importer.createTasks(Importer.java:655)
	org.geoserver.importer.Importer.initForDirectory(Importer.java:560)
	org.geoserver.importer.Importer.addTasks(Importer.java:479)
	org.geoserver.importer.Importer.update(Importer.java:457)
	org.geoserver.importer.rest.ImportTaskController.acceptData(ImportTaskController.java:276)
	org.geoserver.importer.rest.ImportTaskController.taskPost(ImportTaskController.java:177)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:498)
	org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:26)
	org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:69)
	org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:73)
	org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:66)
	org.geoserver.flow.controller.IpBlacklistFilter.doFilter(IpBlacklistFilter.java:89)
	org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:66)
	org.geoserver.flow.ControlFlowCallback.doFilter(ControlFlowCallback.java:260)
	org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:66)
	org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:41)
	org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:37)
	org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:209)
	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
	org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
	org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:90)
	org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
	org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
	org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

The fix to check for a null value is easy.

Has anybody got any code to be able to import vector GeoPackage data via the the GeoServer REST interface? Looks like some work will be needed in GeoTools as well, customer is seeing this an important piece of functionality.

Add Comment

Add Comment

Get Jira notifications on your phone! Download the Jira Cloud app for Android or iOS


This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100105-sha1:d23c0a0)

Atlassian logo