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.
|