yes indeed.  i create H2 database tables, some w/ and others w/o a
geometry column.  after publishing the first geometry-less one as a
layer, the WFS GetCapabilities calls for both 1.0.0 and 1.1.0 versions
fail.

you are also correct in pointing out the UI does not allow
geometry-less layers.  trying to view those (geomtry-less) layers the
UI does not allow changing the panel b/c of missing BBOX info.  the
Layer Preview also does not work w/ those layers.

i was planning today on adding a dummy geometry column --a point w/ 0
value coordinates-- to ensure that works around the issue.  will report
back if there's interest in finding out this stops the failing WFS
calls.


On Thu, 13 Oct 2016 19:38:02 +0200, Andrea Aime wrote:

> So are you configuring geometryless layers via the REST interface?
> The UI should not allow null bounding boxes even on geometryless
> layers.
> 
> Cheers
> Andrea
> 
> On Thu, Oct 13, 2016 at 6:45 PM, Raif S. Naffah <r...@forge.com.au>
> wrote:
> 
> > i believe what i'm seeing is explained by
> >
> >   https://osgeo-org.atlassian.net/browse/GEOS-7216
> >
> >
> > On Wed, 28 Sep 2016 12:32:57 +1000, Raif S. Naffah wrote:
> >  
> > > hi all,
> > >
> > > working w/ GeoServer 2.8.5 i'm getting sporadic failures when
> > > requesting WFS capabilities.  the failures show up in the
> > > geoserver.log as follows:
> > >
> > > 2016-09-28 12:02:18,843 INFO [org.geoserver.wfs] -
> > > Request: getServiceInfo
> > > 2016-09-28 12:02:18,844 INFO [org.geoserver.wfs] -
> > > Request: getCapabilities
> > >     baseUrl = http://localhost:9100/geoserver/
> > >     service = WFS
> > > 2016-09-28 12:02:18,879 ERROR [org.geoserver.ows] -
> > > java.io.IOException
> > >       at
> > > org.geoserver.wfs.response.GetCapabilitiesResponse.write(  
> > GetCapabilitiesResponse.java:63)  
> > > at org.geoserver.ows.Dispatcher.response(Dispatcher.java:996) at
> > > org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:279)
> > > 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.  
> > doGet(FrameworkServlet.java:778)  
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at
> > > javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at
> > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1093)  
> > > at
> > > org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(  
> > ThreadLocalsCleanupFilter.java:28)  
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1084)  
> > > at
> > > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(  
> > SpringDelegatingFilter.java:75)  
> > > at
> > > org.geoserver.wms.animate.AnimatorFilter.doFilter(  
> > AnimatorFilter.java:71)  
> > > at
> > > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(  
> > SpringDelegatingFilter.java:71)  
> > > at
> > > org.geoserver.filters.SpringDelegatingFilter.doFilter(  
> > SpringDelegatingFilter.java:46)  
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1084)  
> > > at
> > > org.geoserver.platform.AdvancedDispatchFilter.doFilter(  
> > AdvancedDispatchFilter.java:50)  
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1084)  
> > > at
> > > org.springframework.security.web.FilterChainProxy$  
> > VirtualFilterChain.doFilter(FilterChainProxy.java:311)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)  
> > > at
> > > org.springframework.security.web.access.intercept.  
> > FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)  
> > > at
> > > org.springframework.security.web.access.intercept.  
> > FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(  
> > GeoServerCompositeFilter.java:92)  
> > > at
> > > org.springframework.security.web.FilterChainProxy$  
> > VirtualFilterChain.doFilter(FilterChainProxy.java:323)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)  
> > > at
> > > org.springframework.security.web.access.ExceptionTranslationFilter.  
> > doFilter(ExceptionTranslationFilter.java:113)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(  
> > GeoServerCompositeFilter.java:92)  
> > > at
> > > org.springframework.security.web.FilterChainProxy$  
> > VirtualFilterChain.doFilter(FilterChainProxy.java:323)  
> > > at
> > > org.geoserver.security.filter.GeoServerAnonymousAuthenticati  
> > onFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)  
> > > at
> > > org.springframework.security.web.FilterChainProxy$  
> > VirtualFilterChain.doFilter(FilterChainProxy.java:323)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)  
> > > at
> > > org.springframework.security.web.authentication.www.  
> > BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(  
> > GeoServerCompositeFilter.java:92)  
> > > at
> > > org.geoserver.security.filter.GeoServerBasicAuthenticationFi  
> > lter.doFilter(GeoServerBasicAuthenticationFilter.java:83)  
> > > at
> > > org.springframework.security.web.FilterChainProxy$  
> > VirtualFilterChain.doFilter(FilterChainProxy.java:323)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)  
> > > at
> > > org.springframework.security.web.context.SecurityContextPersistenceFilt  
> > er.doFilter(SecurityContextPersistenceFilter.java:87)  
> > > at
> > > org.geoserver.security.filter.GeoServerSecurityContextPersis  
> > tenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter$  
> > NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)  
> > > at
> > > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(  
> > GeoServerCompositeFilter.java:92)  
> > > at
> > > org.springframework.security.web.FilterChainProxy$  
> > VirtualFilterChain.doFilter(FilterChainProxy.java:323)  
> > > at
> > > org.springframework.security.web.FilterChainProxy.doFilter(  
> > FilterChainProxy.java:173)  
> > > at
> > > org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(  
> > GeoServerSecurityFilterChainProxy.java:135)  
> > > at
> > > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(  
> > DelegatingFilterProxy.java:346)  
> > > at
> > > org.springframework.web.filter.DelegatingFilterProxy.doFilter(  
> > DelegatingFilterProxy.java:259)  
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1084)  
> > > at
> > > org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:87)
> > > 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:48)  
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1084)  
> > > at
> > > org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1084)  
> > > at
> > > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(  
> > CharacterEncodingFilter.java:88)  
> > > at
> > > org.springframework.web.filter.OncePerRequestFilter.  
> > doFilter(OncePerRequestFilter.java:76)  
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.  
> > doFilter(ServletHandler.java:1084)  
> > > at
> > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> > > at
> > > org.mortbay.jetty.security.SecurityHandler.handle(  
> > SecurityHandler.java:216)  
> > > at
> > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> > > at
> > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
> > > at
> > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> > > at
> > > org.mortbay.jetty.handler.ContextHandlerCollection.handle(  
> > ContextHandlerCollection.java:206)  
> > > at
> > > org.mortbay.jetty.handler.HandlerCollection.handle(  
> > HandlerCollection.java:114)  
> > > at
> > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> > > at org.mortbay.jetty.Server.handle(Server.java:324) at
> > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
> > > at
> > > org.mortbay.jetty.HttpConnection$RequestHandler.  
> > headerComplete(HttpConnection.java:828)  
> > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at
> > > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> > > at
> > > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> > > at
> > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:  
> > 395)  
> > > at
> > > org.mortbay.thread.BoundedThreadPool$PoolThread.  
> > run(BoundedThreadPool.java:450)  
> > > Caused by: javax.xml.transform.TransformerException:
> > > java.lang.NullPointerException at
> > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(  
> > TransformerImpl.java:746)  
> > > at
> > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(  
> > TransformerImpl.java:351)  
> > > at
> > > org.geotools.xml.transform.TransformerBase$Task.run(  
> > TransformerBase.java:300)  
> > > at
> > > org.geotools.xml.transform.TransformerBase.transform(  
> > TransformerBase.java:133)  
> > > at
> > > org.geotools.xml.transform.TransformerBase.transform(  
> > TransformerBase.java:112)  
> > > at
> > > org.geoserver.wfs.response.GetCapabilitiesResponse.write(  
> > GetCapabilitiesResponse.java:61) ...  
> > > 79 more Caused by: java.lang.NullPointerException at
> > > org.geoserver.wfs.CapabilitiesTransformer$WFS1_  
> > 1$CapabilitiesTranslator1_1.featureType(CapabilitiesTransformer.java:1572)  
> > > at
> > > org.geoserver.wfs.CapabilitiesTransformer$WFS1_  
> > 1$CapabilitiesTranslator1_1.featureTypes(CapabilitiesTransformer.java:
> > 1421)  
> > > at
> > > org.geoserver.wfs.CapabilitiesTransformer$WFS2_  
> > 0$CapabilitiesTranslator2_0.featureTypeList(CapabilitiesTransformer.java:
> > 2273)  
> > > at
> > > org.geoserver.wfs.CapabilitiesTransformer$WFS2_  
> > 0$CapabilitiesTranslator2_0.encode(CapabilitiesTransformer.java:2024)  
> > > at
> > > org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(  
> > TransformerBase.java:1026)  
> > > at
> > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.  
> > transformIdentity(TransformerImpl.java:668)  
> > > at
> > > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:737)
> > >   
> > ...  
> > > 84 more looking at the source of the CapabilitiesTransformer near
> > > line #1572 i see:
> > >
> > >
> > >                 Envelope bbox = null;
> > >                 bbox = featureType.getLatLonBoundingBox();
> > >
> > >                 start("ows:WGS84BoundingBox");
> > >
> > >                 element("ows:LowerCorner", bbox.getMinX() + " " +
> > > bbox.getMinY()); element("ows:UpperCorner", bbox.getMaxX() + " " +
> > > bbox.getMaxY());
> > >
> > >                 end("ows:WGS84BoundingBox");
> > >
> > > 1/ any ideas why bbox is sometimes null?
> > >
> > > 2/ does it make sense to check for null before emitting this
> > > element?
-- 
cheers;
rsn

Attachment: pgps0Sn_LFTji.pgp
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to