[Geoserver-devel] getfeature filter to arcsde

Hmmm... I'll try to test this out on our arcsde test box soon - it's
8.3, but it is quite possible that this case wasn't tested thoroughly
(I'm working offline so I can't test right now). I am interested in
one line:

Caused by: java.lang.IllegalArgumentException: no geometry builder is
defined to construct class

com.vividsolutions.jts.geom.GeometryCollection

instances.
     at

org.geotools.data.arcsde.GeometryBuilder.builderFor(GeometryBuilder.java:391)

     at

As that doesn't make sense to me, that in requests outside of the bounds
it would try to make a GeometryCollection. I'll dig into the code and
see what I can come up with.

If you wouldn't mind putting this in our JIRA task tracker that would be
helpful, to make sure the bug is not lost in the shuffle.

thanks,

Chris

----- Original Message -----
From: <Ivan.Price@anonymised.com>
To: <geoserver-devel@lists.sourceforge.net>
Sent: Tuesday, August 17, 2004 6:47 AM
Subject: [Geoserver-devel] getfeature filter to arcsde

Hi there,

I've come across what might be a bug in the ArcSDE data source.

i'm running geoserver 1.2.0 on jakarta 5.0.27 on windows 2000, ArcSDE

is

version 8.2

When i do a getfeature with a spatial filter where the spatial filter

is in

the bounds of the target datasource such as:

http://beta.landgate.com.au/geoserver/wfs/GetFeature
<wfs:GetFeature service="WFS" version="1.0.0"
  outputFormat="GML2"
  xmlns:topp="http://www.openplans.org/topp&quot;
  xmlns:wfs="http://www.opengis.net/wfs&quot;
  xmlns="http://www.opengis.net/ogc&quot;
  xmlns:ogc="http://www.opengis.net/ogc&quot;
  xmlns:gml="http://www.opengis.net/gml&quot;
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation="http://www.opengis.net/wfs
                     

http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd&quot;&gt;

  <wfs:Query typeName="topp:SDE.W_PLANNING_MRSBDRY">
      <ogc:Filter>
      <ogc:Intersects>
        <ogc:PropertyName>the_geom</ogc:PropertyName>
          <gml:Point

srsName="http://www.opengis.net/gml/srs/epsg.xml#4326

">
            <gml:coordinates>116.30,-31.80</gml:coordinates>
          </gml:Point>
        </ogc:Intersects>
      </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

it works fine, however if i make a modification to the location of the
point so that it is outside of the extent of the dataset (say 126.30,
-31.80) i get a java error:

<?xml version="1.0" ?>
<ServiceExceptionReport
   version="1.2.0"
   xmlns="http://www.opengis.net/ogc&quot;
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
   xsi:schemaLocation="http://www.opengis.net/ogc
http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd&quot;&gt;
   <ServiceException>
      problem with FeatureResults:

org.geotools.data.DataSourceException:

Encoder error Error building SeFilter
     at

org.geotools.data.arcsde.ArcSDEAdapter.createSeQuery(ArcSDEAdapter.java:446)

     at

org.geotools.data.arcsde.ArcSDEAdapter.createSeQuery(ArcSDEAdapter.java:363)

     at

org.geotools.data.arcsde.ArcSDEDataStore.getCount(ArcSDEDataStore.java:476)

     at

org.geotools.data.AbstractFeatureSource.getCount(AbstractFeatureSource.java:221)

     at

org.geotools.data.DefaultFeatureResults.getCount(DefaultFeatureResults.java:196)

     at

org.vfny.geoserver.responses.wfs.FeatureResponse.execute(FeatureResponse.java:285)

     at

org.vfny.geoserver.responses.wfs.FeatureResponse.execute(FeatureResponse.java:142)

     at

org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:357)

     at

org.vfny.geoserver.servlets.AbstractService.doPost(AbstractService.java:295)

     at

org.vfny.geoserver.servlets.AbstractService.doPost(AbstractService.java:249)

     at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

     at

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

     at

org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

     at

org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

     at

org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

     at

org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

     at

org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

     at

org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

     at

org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

     at

org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

     at

org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

     at

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

     at

org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

     at

org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

     at

org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

     at

org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

     at

org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

     at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
     at

org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

     at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
     at

org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)

     at

org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)

     at

org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)

     at

org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)

     at

org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

     at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.RuntimeException: Error building SeFilter
     at

org.geotools.filter.GeometryEncoderSDE.visit(GeometryEncoderSDE.java:210)

     at

org.geotools.filter.GeometryFilterImpl.accept(GeometryFilterImpl.java:353)

     at

org.geotools.filter.GeometryEncoderSDE.encode(GeometryEncoderSDE.java:144)

     at

org.geotools.data.arcsde.FilterSet.createSpatialFilters(ArcSDEAdapter.java:635)

     at

org.geotools.data.arcsde.ArcSDEAdapter.createSeQuery(ArcSDEAdapter.java:424)

     ... 37 more
Caused by: java.lang.IllegalArgumentException: no geometry builder is
defined to construct class

com.vividsolutions.jts.geom.GeometryCollection

instances.
     at

org.geotools.data.arcsde.GeometryBuilder.builderFor(GeometryBuilder.java:391)

     at

org.geotools.filter.GeometryEncoderSDE.addSpatialFilter(GeometryEncoderSDE.java:258)

     at

org.geotools.filter.GeometryEncoderSDE.visit(GeometryEncoderSDE.java:186)

     ... 41 more
   </ServiceException>
</ServiceExceptionReport>

doing a query to an area in the target dataset that has no feature but

is

within the boundings works fine (i.e. a feature set with no features),

you

only get this error when the filter request is outside the boundings

of the

dataset. Altering the boundings in the WFS config has no effect, i'm
guessing SDE is returning an 'out of bounds' error that is choking
geoserver ? is this because its ArcSDE version 8.2 and not 8.3 ?

Cheers and well done on the excellent work !

-ivan

Ivan Price
Shared Land Services
Department of Land Information
Western Australia
Ivan.Price@anonymised.com
+61 08 9273 7520

This e-mail and any files transmitted with it are intended only for

the use

of the addressee(s). It may contain information that is confidential

and

privileged. If you are not an intended recipient, any use,

interference

with, disclosure, distribution or copying of this material is

unauthorised

and prohibited. If you receive this in error, please notify the author

by

return e-mail or telephone +61-8-9273 7533. Information in this

message

not relating to the official business of DLI shall be understood as

neither

given nor endorsed by it. While every care is taken, it is

recommended

that you scan any attachments for viruses. DLI liability is limited to
re-supplying affected attachments.

-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

----------------------------------------------------------
This mail sent through IMP: https://webmail.limegroup.com/