[Geoserver-devel] [jira] Created: (GEOS-4417) Query using a spatial DWITHIN filter with a geometryCollection causes a NullPointerException

Query using a spatial DWITHIN filter with a geometryCollection causes a NullPointerException
--------------------------------------------------------------------------------------------

                 Key: GEOS-4417
                 URL: http://jira.codehaus.org/browse/GEOS-4417
             Project: GeoServer
          Issue Type: Bug
          Components: WFS
    Affects Versions: 2.0.2
         Environment: WinXP SP3, Tomcat 6.0.29
            Reporter: Edin Pezerovic
            Assignee: Andrea Aime

I'm trying to query a layer using the DWITHIN spatial filter.

For the intersection part the parameter contains two geometries grouped into one gml:GeometryCollection.

GeoServer throws a NullPointerException.

I'll add the request and the stacktrace:

<?xml version="1.0" encoding="utf-8"?>
<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs&quot; service="WFS" version="1.1.0" maxFeatures="100" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
  <wfs:Query typeName="feature:Grundstuecke" srsName="EPSG:31256" xmlns:feature="http://masterthesis.org/MAS_WFS/MapServer/WFSServer&quot;&gt;
    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot;&gt;
      <ogc:And>
        <ogc:DWithin>
          <ogc:PropertyName>the_geom</ogc:PropertyName>
          <gml:GeometryCollection xmlns:gml="http://www.opengis.net/gml&quot; srsName="EPSG:31256">
            <gml:geometryMember>
              <gml:Point srsName="EPSG:31256">
                <gml:pos>-6057.6120761719 287399.97962109</gml:pos>
              </gml:Point>
            </gml:geometryMember>
            <gml:geometryMember>
              <gml:Point srsName="EPSG:31256">
                <gml:pos>-6088.4090566406 287463.85483984</gml:pos>
              </gml:Point>
            </gml:geometryMember>
          </gml:GeometryCollection>
          <ogc:Distance units="m">10</ogc:Distance>
        </ogc:DWithin>
        <ogc:BBOX>
          <ogc:PropertyName>the_geom</ogc:PropertyName>
          <gml:Envelope xmlns:gml="http://www.opengis.net/gml&quot; srsName="EPSG:31256">
            <gml:lowerCorner>-6702.6377226562 286888.9778711</gml:lowerCorner>
            <gml:upperCorner>-5477.6022773438 287767.2621289</gml:upperCorner>
          </gml:Envelope>
        </ogc:BBOX>
      </ogc:And>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

09 Mär 09:04:58 INFO [geoserver.wfs] -
Request: getServiceInfo
09 Mär 09:04:58 ERROR [geoserver.ows] -
java.lang.NullPointerException
        at org.geoserver.feature.ReprojectingFilterVisitor.reproject(ReprojectingFilterVisitor.java:338)
        at org.geoserver.feature.ReprojectingFilterVisitor$GeometryFilterTransformer.transform(ReprojectingFilterVisitor.java:367)
        at org.geoserver.feature.ReprojectingFilterVisitor.visit(ReprojectingFilterVisitor.java:212)
        at org.geotools.filter.spatial.DWithinImpl.accept(DWithinImpl.java:48)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:123)
        at org.geotools.filter.AndImpl.accept(AndImpl.java:63)
        at org.geoserver.wfs.WFSReprojectionUtil.reprojectFilter(WFSReprojectionUtil.java:94)
        at org.geoserver.wfs.WFSReprojectionUtil.normalizeFilterCRS(WFSReprojectionUtil.java:109)
        at org.geoserver.wfs.GetFeature.toDataQuery(GetFeature.java:519)
        at org.geoserver.wfs.GetFeature.run(GetFeature.java:359)
        at org.geoserver.wfs.DefaultWebFeatureService.getFeature(DefaultWebFeatureService.java:115)
        at sun.reflect.GeneratedMethodAccessor183.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
        at org.geoserver.ows.util.EMFLogger.invoke(EMFLogger.java:51)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at $Proxy19.getFeature(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor182.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:599)
        at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:230)
        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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        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:73)
        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.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:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
        at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira