[Geoserver-devel] [jira] Created: (GEOS-3343) Multiple Layers with single CQL filter causes IndexOutOfBoundsException

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