[Geoserver-devel] [jira] Created: (GEOS-1860) SLD filter reprojection introduction broke generic binary filter

SLD filter reprojection introduction broke generic binary filter
----------------------------------------------------------------

                 Key: GEOS-1860
                 URL: http://jira.codehaus.org/browse/GEOS-1860
             Project: GeoServer
          Issue Type: Bug
          Components: WMS
    Affects Versions: 1.6.2
         Environment: 1.6.2 war on Tomcat, windows
            Reporter: Tim Robertson
            Assignee: Andrea Aime

With an SLD

<Rule>
  <ogc:Filter>
    <ogc:PropertyIsEqualTo>
      <ogc:Literal>Point</ogc:Literal>
      <ogc:Function name="geometryType">
        <ogc:PropertyName>geom</ogc:PropertyName>
      </ogc:Function>
    </ogc:PropertyIsEqualTo>
  </ogc:Filter>

You get error:
Binary geometry filter, but first expression is not a property name? (it's a class org.geotools.filter.LiteralExpressionImpl)

Full trace:

09 Apr 14:42:20 ERROR [geotools.rendering] - Had troubles handling filter reprojection...
org.geotools.data.DataSourceException: Had troubles handling filter reprojection...
        at org.vfny.geoserver.global.GeoServerFeatureSource.reprojectFilter(GeoServerFeatureSource.java:368)
        at org.vfny.geoserver.global.GeoServerFeatureSource.getFeatures(GeoServerFeatureSource.java:313)
        at org.geotools.renderer.lite.StreamingRenderer.queryLayer(StreamingRenderer.java:905)
        at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1569)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:649)
        at org.geotools.renderer.shape.ShapefileRenderer.renderWithStreamingRenderer(ShapefileRenderer.java:1443)
        at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:1313)
        at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:262)
        at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:310)
        at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:436)
        at org.geoserver.ows.adapters.ResponseAdapter.getMimeType(ResponseAdapter.java:48)
        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:616)
        at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:192)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:69)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        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:274)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException: Binary geometry filter, but first expression is not a property name? (it's a class org.geotools.filter.LiteralExpressionImpl)
        at org.geoserver.feature.ReprojectingFilterVisitor$BinaryComparisonTransformer.transform(ReprojectingFilterVisitor.java:414)
        at org.geoserver.feature.ReprojectingFilterVisitor.visit(ReprojectingFilterVisitor.java:113)
        at org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:149)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:147)
        at org.geotools.filter.OrImpl.accept(OrImpl.java:48)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:147)
        at org.geotools.filter.OrImpl.accept(OrImpl.java:48)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:147)
        at org.geotools.filter.OrImpl.accept(OrImpl.java:48)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:147)
        at org.geotools.filter.OrImpl.accept(OrImpl.java:48)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:147)
        at org.geotools.filter.OrImpl.accept(OrImpl.java:48)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:147)
        at org.geotools.filter.OrImpl.accept(OrImpl.java:48)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:123)
        at org.geotools.filter.AndImpl.accept(AndImpl.java:60)
        at org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:123)
        at org.geotools.filter.AndImpl.accept(AndImpl.java:60)
        at org.vfny.geoserver.global.GeoServerFeatureSource.reprojectFilter(GeoServerFeatureSource.java:362)
        ... 59 more
09 Apr 14:42:20 INFO [geoserver.filters] - Not compressing output for mimetype: image/png
09 Apr 14:42:20 INFO [geoserver.filters] - 127.0.0.1 "GET /geoserver/wms?bbox=-180,-90,180,90&styles=,&Format=image/png&request=GetMap&layers=gbif:countries,gbif:gbifDensityLayer&w
idth=550&height=250&srs=EPSG:4326&FILTER=(%20)(%3CFilter%3E%3CAnd%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3Etype%3C/PropertyName%3E%3CLiteral%3E0%3C/Literal%3E%3C/PropertyIsEqualT
o%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3Econcept%3C/PropertyName%3E%3CLiteral%3E0%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3C/And%3E%3C/Filter%3E)&bgcolor=0x7391AD" took 1828ms

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