[Geoserver-devel] [jira] Created: (GEOS-1818) unable to handle GetMap with standalone SLD referencing layers defined as BASEMAP in service.xml

unable to handle GetMap with standalone SLD referencing layers defined as BASEMAP in service.xml
------------------------------------------------------------------------------------------------

                 Key: GEOS-1818
                 URL: http://jira.codehaus.org/browse/GEOS-1818
             Project: GeoServer
          Issue Type: Bug
          Components: WMS
    Affects Versions: 1.6.2
         Environment: $ uname -a
Linux solomon 2.6.24.3-34.fc8 #1 SMP Wed Mar 12 18:17:20 EDT 2008 i686 i686 i386 GNU/Linux
[raif@anonymised.com ~]$ java -version
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)
            Reporter: raif
            Assignee: Andrea Aime

issuing a GetMap request using a standalone SLD referencing a layer defined as a BaseMapGroup (e.g. 'tasmania') in GeoServer's services.xml causes an exception.

the following SLD file was used:

<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld&quot; xmlns:sld="http://www.opengis.net/sld&quot; xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="http://www.opengis.net/gml&quot; version="1.0.0">
  <sld:NamedLayer>
    <sld:Name>tasmania</sld:Name>
    <sld:NamedStyle>
      <sld:Name></sld:Name>
    </sld:NamedStyle>
  </sld:NamedLayer>
</sld:StyledLayerDescriptor>

the request was (pls. amend the SLD file's URL to suit your environment):

http://localhost:8080/geoserver/wms?SERVICE=WMS&FORMAT=image/png&HEIGHT=480&BGCOLOR=0x0099FF&REQUEST=GetMap&WIDTH=640&BBOX=124.38035938267053,-58.45445933799711,169.29632161732948,-24.767487662002893&SRS=EPSG:4326&VERSION=1.1.1&SLD=...xxx.sld

the exception thrown was:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd&quot;&gt; <ServiceExceptionReport version="1.1.1" > <ServiceException code="LayerNotDefined">
      tasmania: no such layer on this server
Details:
org.vfny.geoserver.wms.WmsException: tasmania: no such layer on this server
  at org.vfny.geoserver.wms.requests.GetMapKvpReader.findCoverageLayer(GetMapKvpReader.java:1689)
  at org.geoserver.wms.kvp.GetMapKvpRequestReader.processStandaloneSld(GetMapKvpRequestReader.java:571)
  at org.geoserver.wms.kvp.GetMapKvpRequestReader.processSld(GetMapKvpRequestReader.java:421)
  at org.geoserver.wms.kvp.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:247)
  at org.geoserver.ows.Dispatcher.parseRequestKVP(Dispatcher.java:1002)
  at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:371)
  at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:185)
  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.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1054)
  at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
  at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:69)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
  at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
  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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
  at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:358)
  at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
  at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
  at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
  at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
  at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
  at org.mortbay.jetty.Server.handle(Server.java:303)
  at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
  at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:721)
  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:509)
  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
  at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
  at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

</ServiceException></ServiceExceptionReport>

the original cause could be that the GetMapKvpReader.findFeatureLayer() method called from the GetMapKvpRequestReader.processStandaloneSld() ignores BaseMapType (MapLayerInfo.TYPE_BASEMAP) layers when looking up a layer by name.

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