Multiple Layers with single CQL filter causes IndexOutOfBoundsException
-----------------------------------------------------------------------

                 Key: GEOS-3343
                 URL: http://jira.codehaus.org/browse/GEOS-3343
             Project: GeoServer
          Issue Type: Bug
          Components: WMS
    Affects Versions: 1.7.5
         Environment: Geoserver 1.7.5, Weblogic 9.2MP3, Windows XP Professional
            Reporter: Mike Hampton
            Assignee: Andrea Aime


The WMS query 

http://uloraweb:8001/geoserver/wms?styles=&layers=topp:tasmania_cities,topp:tasmania_cities&srs=EPSG:4326&height=627&width=800&Format=image/png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&bbox=145.043768,-43.5520475,148.42675200000002,-40.7242665&CQL_FILTER=CITY_NAME
 = 'Hobart'

Fails with an error reported on the server:

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
        at java.util.ArrayList.RangeCheck(ArrayList.java:546)
        at java.util.ArrayList.get(ArrayList.java:321)
        at 
org.geoserver.wms.kvp.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:312)
        at org.geoserver.ows.Dispatcher.parseRequestKVP(Dispatcher.java:1088)
        at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:429)
        at 
org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:209)
        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.doGet(FrameworkServlet.java:501)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at 
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at 
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at 
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at 
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at 
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at 
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
        at 
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at 
org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
        at 
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at 
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3242)
        at 
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at 
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at 
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2010)
        at 
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1916)
        at 
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

If the CQL_FILTER is dropped, 
http://uloraweb:8001/geoserver/wms?styles=&layers=topp:tasmania_cities,topp:tasmania_cities&srs=EPSG:4326&height=627&width=800&Format=image/png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&bbox=145.043768,-43.5520475,148.42675200000002,-40.7242665

or duplicated, 
http://uloraweb:8001/geoserver/wms?styles=&layers=topp:tasmania_cities,topp:tasmania_cities&srs=EPSG:4326&height=627&width=800&Format=image/png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&bbox=145.043768,-43.5520475,148.42675200000002,-40.7242665&CQL_FILTER=CITY_NAME
 = 'Hobart';CITY_NAME = 'Hobart'

then the query succeeds.

In 
http://www.nabble.com/How-to-filter-specific-layers-with-CQL_FILTER--td15641876.html
 there is a discussion that includes the statement:

"If you specify just one filter, it'll be applied to all layers..."




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

        

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to