[Geoserver-devel] WFS request going bad in 2.1beta1

Hey guys, help me out here please. I have switched our mission-critical server to 2.1beta1 (I know, I know) and for various reasons I cannot go back. Why is it that this simple request

<?xml version="1.0" encoding="UTF-8"?>

<wfs:GetFeature handle=“GeoTools 2.6.2 WFS DataStore”
outputFormat=“text/xml; subtype=gml/3.1.1” resultType=“results”
service=“WFS” version=“1.1.0” xmlns:ogc=“http://www.opengis.net/ogc”
xmlns:gml=“http://www.opengis.net/gml”
xmlns:xlink=“http://www.w3.org/1999/xlink”
xmlns:ows=“http://www.opengis.net/ows” xmlns:wfs=“http://www.opengis.net/wfs”>
<wfs:Query srsName=“urn:x-ogc:def:crs:EPSG:4326” typeName=“usa:meandaysprecipjan”>
wfs:PropertyNamethe_geom</wfs:PropertyName>
wfs:PropertyNamegridcode</wfs:PropertyName>
ogc:Filter
ogc:BBOX
ogc:PropertyNamethe_geom</ogc:PropertyName>
gml:Envelope
gml:lowerCorner46.33 -124.27</gml:lowerCorner>
gml:upperCorner47.55 -122.42</gml:upperCorner>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

fails with java.lang.String cannot be cast to org.geoserver.catalog.FeatureTypeInfo? Any help enormously appreciated. Thanks much,
ferdinando

BTW it can be tested on http://ecoinformatics.uvm.edu/geoserver/wfs

Do you have a stack trace in your logs? This would help diagnose the problem.

On 23/09/10 23:46, Ferdinando Villa wrote:

Hey guys, help me out here please. I have switched our mission-critical server to 2.1beta1 (I know, I know) and for various reasons I cannot go back. Why is it that this simple request

<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature handle="GeoTools 2.6.2 WFS DataStore"
  outputFormat="text/xml; subtype=gml/3.1.1" resultType="results"
  service="WFS" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc&quot;&lt;http://www.opengis.net/ogc&gt;
  xmlns:gml="http://www.opengis.net/gml&quot;&lt;http://www.opengis.net/gml&gt;
  xmlns:xlink="http://www.w3.org/1999/xlink&quot;&lt;http://www.w3.org/1999/xlink&gt;
  xmlns:ows="http://www.opengis.net/ows&quot;&lt;http://www.opengis.net/ows&gt; xmlns:wfs="http://www.opengis.net/wfs&quot;&lt;http://www.opengis.net/wfs&gt;&gt;
  <wfs:Query srsName="urn:x-ogc:def:crs:EPSG:4326" typeName="usa:meandaysprecipjan">
   <wfs:PropertyName>the_geom</wfs:PropertyName>
   <wfs:PropertyName>gridcode</wfs:PropertyName>
   <ogc:Filter>
    <ogc:BBOX>
     <ogc:PropertyName>the_geom</ogc:PropertyName>
     <gml:Envelope>
      <gml:lowerCorner>46.33 -124.27</gml:lowerCorner>
      <gml:upperCorner>47.55 -122.42</gml:upperCorner>
     </gml:Envelope>
    </ogc:BBOX>
   </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

fails with java.lang.String cannot be cast to org.geoserver.catalog.FeatureTypeInfo? Any help enormously appreciated. Thanks much,
ferdinando

BTW it can be tested on http://ecoinformatics.uvm.edu/geoserver/wfs

--
Ben Caradoc-Davies <Ben.Caradoc-Davies@anonymised.com>
Software Engineering Team Leader
CSIRO Earth Science and Resource Engineering
Australian Resources Research Centre

  Sorry, forgot that. I must say a coworker has now reinstalled 2.0.2, but I'd still love to know if it's me or Geoserver. The request works OK in 2.0.x.

Thanks, ferdinando

java.lang.ClassCastException: java.lang.String cannot be cast to org.geoserver.catalog.FeatureTypeInfo
     at org.geoserver.catalog.ResourcePool$FeatureTypeCache.removeLRU(ResourcePool.java:1359)
     at org.apache.commons.collections.map.LRUMap.addMapping(LRUMap.java:239)
     at org.apache.commons.collections.map.AbstractHashedMap.put(AbstractHashedMap.java:282)
     at org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:685)
     at org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:597)
     at org.geoserver.catalog.impl.FeatureTypeInfoImpl.getFeatureType(FeatureTypeInfoImpl.java:86)
     at sun.reflect.GeneratedMethodAccessor309.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:144)
     at $Proxy30.getFeatureType(Unknown Source)
     at org.geoserver.wfs.xml.v1_1_0.WFSConfiguration.configureContext(WFSConfiguration.java:226)
     at org.geotools.xml.Configuration.setupContext(Configuration.java:619)
     at org.geotools.xml.impl.ParserHandler.startDocument(ParserHandler.java:201)
     at org.apache.xerces.parsers.AbstractSAXParser.startDocument(Unknown Source)
     at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
     at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
     at org.geotools.xml.Parser.parse(Parser.java:223)
     at org.geoserver.wfs.xml.v1_1_0.WfsXmlReader.read(WfsXmlReader.java:92)
     at org.geoserver.ows.Dispatcher.parseRequestXML(Dispatcher.java:1228)
     at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:515)
     at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:226)
     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.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:23)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:48)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
     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:71)
     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:128)
     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:293)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
     at java.lang.Thread.run(Thread.java:619)

On 9/24/2010 3:51 AM, Ben Caradoc-Davies wrote:

Do you have a stack trace in your logs? This would help diagnose the problem.

On 23/09/10 23:46, Ferdinando Villa wrote:

Hey guys, help me out here please. I have switched our mission-critical server to 2.1beta1 (I know, I know) and for various reasons I cannot go back. Why is it that this simple request

<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature handle="GeoTools 2.6.2 WFS DataStore"
  outputFormat="text/xml; subtype=gml/3.1.1" resultType="results"
  service="WFS" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc&quot;&lt;http://www.opengis.net/ogc&gt;
  xmlns:gml="http://www.opengis.net/gml&quot;&lt;http://www.opengis.net/gml&gt;
  xmlns:xlink="http://www.w3.org/1999/xlink&quot;&lt;http://www.w3.org/1999/xlink&gt;
  xmlns:ows="http://www.opengis.net/ows&quot;&lt;http://www.opengis.net/ows&gt; xmlns:wfs="http://www.opengis.net/wfs&quot;&lt;http://www.opengis.net/wfs&gt;&gt;
<wfs:Query srsName="urn:x-ogc:def:crs:EPSG:4326" typeName="usa:meandaysprecipjan">
<wfs:PropertyName>the_geom</wfs:PropertyName>
<wfs:PropertyName>gridcode</wfs:PropertyName>
<ogc:Filter>
<ogc:BBOX>
<ogc:PropertyName>the_geom</ogc:PropertyName>
<gml:Envelope>
<gml:lowerCorner>46.33 -124.27</gml:lowerCorner>
<gml:upperCorner>47.55 -122.42</gml:upperCorner>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

fails with java.lang.String cannot be cast to org.geoserver.catalog.FeatureTypeInfo? Any help enormously appreciated. Thanks much,
ferdinando

BTW it can be tested on http://ecoinformatics.uvm.edu/geoserver/wfs

On 24/09/2010 12:33, Ferdinando Villa wrote:

   Sorry, forgot that. I must say a coworker has now reinstalled 2.0.2,
but I'd still love to know if it's me or Geoserver. The request works OK
in 2.0.x.

Thanks, ferdinando

java.lang.ClassCastException: java.lang.String cannot be cast to
org.geoserver.catalog.FeatureTypeInfo
      at
org.geoserver.catalog.ResourcePool$FeatureTypeCache.removeLRU(ResourcePool.java:1359)
      at

Ah ha, I recognize this one now, it's my fault :slight_smile:
http://jira.codehaus.org/browse/GEOS-4146

It's an easy fix, look at the bug report status and when it's fixed wait one day and then grab the nightly build here to test it out:
http://gridlock.openplans.org/geoserver/trunk/

Cheers
Andrea