From: Martin D. <mtn...@gm...> - 2013-07-31 17:55:32
|
I added a comment to the JIRA summarizing the findings. On Wed, Jul 31, 2013 at 9:43 AM, Jonathan Moules < jon...@wa...> wrote: > Hi Martin, > Ah, ok. Well there's definitely not supposed to be points in that layer. > I think that happened because my automated data-cleaner cleaned an area > feature to such an extent it became a point. I'll have to add an extra > check in the future. > > The solution for me here is simple - delete that entire row. :-) > > It may be worth updating the JIRA with this. Save someone else having to > figure it out when they get around to fixing it. :-) > > Many thanks again to both, > Jonathan > > > > > On 31 July 2013 17:36, Martin Davis <mtn...@gm...> wrote: > >> Now we're getting somewhere. Good sleuthing, Jonathan. >> >> The "probably_bad" geometry is indeed different. It is a COLLECTION >> containing a POLYGON and a POINT. (This is shown by the GTYPE of 2004 and >> the ELEMINFO contents: >> >> >> MDSYS.SDO_GEOMETRY(2004,27700,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1,393,1,1) >> >> Now, I think that the actual Oracle geometry is correct. It reads fine >> with the (recently reworked) JTS OraReader class. So I suspect that this >> is uncovering a bug in the GeoTools SDO.java class (which is a bit, um, >> convoluted). >> >> So you have two options: >> >> - fix the geometry (which does seem like it is probably a data anomaly) >> - wait until a fix can be created for the GeoTools code (which at least >> there is now a test case for - but it will take a braver man than me to >> wade into that codebase again). >> >> >> >> >> On Wed, Jul 31, 2013 at 3:39 AM, Jonathan Moules < >> jon...@wa...> wrote: >> >>> Hi Both, >>> >>> I've done a little analysis of the data. I don't actually know what the >>> error means, but as one number is double the other I figured it was >>> coordinate pairs. As such I counted the number of commas (not manually ;-) >>> ). >>> >>> I've updated the jira - http://jira.codehaus.org/browse/GEOS-5941 - >>> I've placed what I think is guilty line in probably_bad.txt. >>> >>> Of course, my supposition about what the error means may be completely >>> wrong. >>> ==== >>> >>> I've also confirmed that this only seems to happen for this one tile in >>> my dataset. >>> >>> That's pretty much as much as I can do given my inability to debug >>> GeoServer itself. Hopefully it'll get one of you two closer though. >>> >>> Jonathan >>> >>> >>> On 31 July 2013 06:18, Martin Davis <mtn...@gm...> wrote: >>> >>>> That was my thought too. But the sample data that was supplied all >>>> looks fine. It's all LINESTRINGS, whereas the error trace seems to >>>> indicate that the GeometryConverter thought it was parsing a COLLECTION >>>> containing a POINT. >>>> >>>> It might be nice to add some DEBUG level logging to the SDO.java class >>>> to dump out the input SDO GEOMETRY when a bad parse error is encountered. >>>> This could even be done as a temporary hack to try and capture what's >>>> going wrong in this case. >>>> >>>> >>>> On Mon, Jul 29, 2013 at 12:44 PM, Jody Garnett <jod...@gm...>wrote: >>>> >>>>> If you can narrow it down to the geometry that is causing failure we >>>>> may be able to create a test case. >>>>> >>>>> -- >>>>> Jody Garnett >>>>> >>>>> On 30/07/2013, at 3:00 AM, Martin Davis <mtn...@gm...> wrote: >>>>> >>>>> Right - http://jira.codehaus.org/browse/GEOS-5941 >>>>> >>>>> As you say, the data looks fine. "Fraid I have no idea at the moment >>>>> about what might be going wrong. >>>>> >>>>> >>>>> On Mon, Jul 29, 2013 at 4:08 AM, Jonathan Moules < >>>>> jon...@wa...> wrote: >>>>> >>>>>> HI Martin, >>>>>> I wouldn't know where to start in setting up a debug instance of >>>>>> GeoServer. Nor can I narrow down exactly what the problem line is based on >>>>>> that error. >>>>>> >>>>>> But I can run the SQL query from that file which gives me 327 results. >>>>>> >>>>>> The data quality seems ok. It doesn't fail Oracle Validation >>>>>> (SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT), and it went through some FME >>>>>> cleaning/validation before loading too. >>>>>> >>>>>> I've opened a JIRA and attached the results of the SQL query so they >>>>>> can be tested and hopefully replicate the issue. >>>>>> >>>>>> Regards, >>>>>> Jonathan >>>>>> >>>>>> >>>>>> On 26 July 2013 17:53, Martin Davis <mtn...@gm...> wrote: >>>>>> >>>>>>> This may be due to either a bug in the GeoTools Oracle-Geometry >>>>>>> converter, or to a problem with your data. The GT Oracle Geometry >>>>>>> converter is fairly complex code, and has had issues in the past, so that's >>>>>>> the first place I'd look. >>>>>>> >>>>>>> The best way to determine what's happening is to set up a debug >>>>>>> instance of GeoServer and trap the error right at the line it's happening. >>>>>>> Failing that, if you can isolate the record causing the problem, and then >>>>>>> post the Oracle SDO GEOMETRY representation of the data it should be >>>>>>> possible to reproduce this in the GeometryConverter directly. >>>>>>> >>>>>>> >>>>>>> On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules < >>>>>>> jon...@wa...> wrote: >>>>>>> >>>>>>>> Hi List, >>>>>>>> For some reason my GeoServer has started to throw up an error >>>>>>>> when I try and render one (or may more) of the layers. Can anyone advise >>>>>>>> what the problem is. >>>>>>>> >>>>>>>> The exact numbers of the offset and length in the error vary. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Jonathan >>>>>>>> >>>>>>>> >>>>>>>> 2013-07-23 08:38:54,603 DEBUG [org.geotools.rendering] - Processing >>>>>>>> 1 stylers for >>>>>>>> http://www.warwickshire.gov.uk/public_data_db:OS_VMD_BUILDING >>>>>>>> 2013-07-23 08:38:54,603 DEBUG [org.geotools.rendering] - creating >>>>>>>> rules for scale denominator - 20,000 >>>>>>>> 2013-07-23 08:38:54,603 DEBUG [org.geotools.rendering] - Expanding >>>>>>>> rendering area by 2 pixels to consider stroke width >>>>>>>> 2013-07-23 08:38:54,603 DEBUG [org.geotools.rendering] - Querying >>>>>>>> layer http://www.warwickshire.gov.uk/public_data_db:OS_VMD_BUILDINGwith bbox: ReferencedEnvelope[458740.8 : 464497.6, 258036.79999999996 : >>>>>>>> 263793.6] >>>>>>>> 2013-07-23 08:38:54,603 DEBUG [org.geotools.jdbc] - CREATE >>>>>>>> CONNECTION >>>>>>>> 2013-07-23 08:38:54,603 TRACE [org.geotools.core] - ENTRY 4 >>>>>>>> 2013-07-23 08:38:54,603 DEBUG [org.geotools.filter] - exporting >>>>>>>> PropertyName >>>>>>>> 2013-07-23 08:38:54,603 DEBUG [org.geotools.jdbc] - SELECT >>>>>>>> SDO_GEOMETRY as SDO_GEOMETRY FROM OSMM.OS_VMD_BUILDING WHERE >>>>>>>> SDO_FILTER(SDO_GEOMETRY, ?, 'mask=anyinteract querytype=WINDOW') = 'TRUE' >>>>>>>> 2013-07-23 08:38:54,618 DEBUG [org.geotools.data.oracle.sdo] - >>>>>>>> Using layer SRID: 27700 >>>>>>>> 2013-07-23 08:38:54,618 DEBUG [org.geotools.jdbc] - Setting >>>>>>>> parameter 1 as >>>>>>>> MDSYS.SDO_GEOMETRY(2003,27700,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(458740.8,258036.79999999996,464497.6,263793.6)) >>>>>>>> 2013-07-23 08:38:54,618 DEBUG [org.geotools.jdbc] - 1 = POLYGON >>>>>>>> ((458740.8 258036.79999999996, 458740.8 263793.6, 464497.6 263793.6, >>>>>>>> 464497.6 258036.79999999996, 458740.8 258036.79999999996)) >>>>>>>> 2013-07-23 08:38:54,665 ERROR [org.geotools.rendering] - ELEM_INFO >>>>>>>> STARTING_OFFSET 393 inconsistent with ORDINATES length 197 >>>>>>>> java.lang.IllegalArgumentException: ELEM_INFO STARTING_OFFSET 393 >>>>>>>> inconsistent with ORDINATES length 197 >>>>>>>> at org.geotools.data.oracle.sdo.SDO.createPoint(SDO.java:2463) >>>>>>>> at >>>>>>>> org.geotools.data.oracle.sdo.SDO.createCollection(SDO.java:3000) >>>>>>>> at org.geotools.data.oracle.sdo.SDO.create(SDO.java:2429) >>>>>>>> at org.geotools.data.oracle.sdo.SDO.create(SDO.java:2383) >>>>>>>> at >>>>>>>> org.geotools.data.oracle.sdo.GeometryConverter.asGeometry(GeometryConverter.java:125) >>>>>>>> at >>>>>>>> org.geotools.data.oracle.OracleDialect.readGeometry(OracleDialect.java:506) >>>>>>>> at >>>>>>>> org.geotools.data.oracle.OracleDialect.readGeometry(OracleDialect.java:492) >>>>>>>> at >>>>>>>> org.geotools.data.oracle.OracleDialect.decodeGeometryValue(OracleDialect.java:455) >>>>>>>> at >>>>>>>> org.geotools.jdbc.JDBCFeatureReader.next(JDBCFeatureReader.java:310) >>>>>>>> at >>>>>>>> org.geotools.jdbc.JDBCFeatureReader.next(JDBCFeatureReader.java:70) >>>>>>>> at >>>>>>>> org.geotools.data.store.ContentFeatureCollection$WrappingFeatureIterator.next(ContentFeatureCollection.java:145) >>>>>>>> at >>>>>>>> org.geotools.data.store.ContentFeatureCollection$WrappingFeatureIterator.next(ContentFeatureCollection.java:125) >>>>>>>> at >>>>>>>> org.geotools.feature.collection.BridgeIterator.next(BridgeIterator.java:31) >>>>>>>> at >>>>>>>> org.geotools.feature.collection.BridgeIterator.next(BridgeIterator.java:18) >>>>>>>> at >>>>>>>> org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2494) >>>>>>>> at >>>>>>>> org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:2045) >>>>>>>> at >>>>>>>> org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:829) >>>>>>>> at >>>>>>>> org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:491) >>>>>>>> at >>>>>>>> org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:255) >>>>>>>> at >>>>>>>> org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:127) >>>>>>>> at org.geoserver.wms.GetMap.executeInternal(GetMap.java:466) >>>>>>>> at org.geoserver.wms.GetMap.run(GetMap.java:201) >>>>>>>> at org.geoserver.wms.GetMap.run(GetMap.java:111) >>>>>>>> at >>>>>>>> org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:356) >>>>>>>> at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source) >>>>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>>>>>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>>>>>> at >>>>>>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) >>>>>>>> at >>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) >>>>>>>> at >>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) >>>>>>>> at >>>>>>>> org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:61) >>>>>>>> at >>>>>>>> org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWebMapService.java:35) >>>>>>>> at >>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) >>>>>>>> at >>>>>>>> org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:73) >>>>>>>> at >>>>>>>> org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:54) >>>>>>>> at >>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) >>>>>>>> at >>>>>>>> org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:54) >>>>>>>> at >>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) >>>>>>>> at >>>>>>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) >>>>>>>> at com.sun.proxy.$Proxy24.getMap(Unknown Source) >>>>>>>> at sun.reflect.GeneratedMethodAccessor260.invoke(Unknown Source) >>>>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>>>>>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>>>>>> at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:774) >>>>>>>> at >>>>>>>> org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:272) >>>>>>>> at >>>>>>>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) >>>>>>>> at org.geoserver.gwc.GWC.dispatchOwsRequest(GWC.java:1122) >>>>>>>> at >>>>>>>> org.geoserver.gwc.layer.GeoServerTileLayer.dispatchGetMap(GeoServerTileLayer.java:552) >>>>>>>> at >>>>>>>> org.geoserver.gwc.layer.GeoServerTileLayer.getMetatilingReponse(GeoServerTileLayer.java:497) >>>>>>>> at >>>>>>>> org.geoserver.gwc.layer.GeoServerTileLayer.seedTile(GeoServerTileLayer.java:691) >>>>>>>> at org.geowebcache.seed.SeedTask.doActionInternal(SeedTask.java:136) >>>>>>>> at org.geowebcache.seed.GWCTask.doAction(GWCTask.java:76) >>>>>>>> at org.geowebcache.seed.MTSeeder.call(MTSeeder.java:36) >>>>>>>> at org.geowebcache.seed.MTSeeder.call(MTSeeder.java:25) >>>>>>>> at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) >>>>>>>> at java.util.concurrent.FutureTask.run(Unknown Source) >>>>>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown >>>>>>>> Source) >>>>>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >>>>>>>> Source) >>>>>>>> at java.lang.Thread.run(Unknown Source) >>>>>>>> >>>>>>>> This transmission is intended for the named addressee(s) only and >>>>>>>> may contain sensitive or protectively marked material up to RESTRICTED and >>>>>>>> should be handled accordingly. Unless you are the named addressee (or >>>>>>>> authorised to receive it for the addressee) you may not copy or use it, or >>>>>>>> disclose it to anyone else. If you have received this transmission in error >>>>>>>> please notify the sender immediately. All email traffic sent to or from us, >>>>>>>> including without limitation all GCSX traffic, may be subject to recording >>>>>>>> and/or monitoring in accordance with relevant legislation. >>>>>>>> >>>>>>>> ------------------------------------------------------------------------------ >>>>>>>> See everything from the browser to the database with AppDynamics >>>>>>>> Get end-to-end visibility with application monitoring from >>>>>>>> AppDynamics >>>>>>>> Isolate bottlenecks and diagnose root cause in seconds. >>>>>>>> Start your free trial of AppDynamics Pro today! >>>>>>>> >>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >>>>>>>> _______________________________________________ >>>>>>>> Geoserver-users mailing list >>>>>>>> Geo...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> This transmission is intended for the named addressee(s) only and may >>>>>> contain sensitive or protectively marked material up to RESTRICTED and >>>>>> should be handled accordingly. Unless you are the named addressee (or >>>>>> authorised to receive it for the addressee) you may not copy or use it, or >>>>>> disclose it to anyone else. If you have received this transmission in error >>>>>> please notify the sender immediately. All email traffic sent to or from us, >>>>>> including without limitation all GCSX traffic, may be subject to recording >>>>>> and/or monitoring in accordance with relevant legislation. >>>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Get your SQL database under version control now! >>>>> Version control is standard for application code, but databases havent >>>>> caught up. So what steps can you take to put your SQL databases under >>>>> version control? Why should you start doing it? Read more to find out. >>>>> >>>>> http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk >>>>> >>>>> _______________________________________________ >>>>> Geoserver-users mailing list >>>>> Geo...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users >>>>> >>>>> >>>> >>> >>> This transmission is intended for the named addressee(s) only and may >>> contain sensitive or protectively marked material up to RESTRICTED and >>> should be handled accordingly. Unless you are the named addressee (or >>> authorised to receive it for the addressee) you may not copy or use it, or >>> disclose it to anyone else. If you have received this transmission in error >>> please notify the sender immediately. All email traffic sent to or from us, >>> including without limitation all GCSX traffic, may be subject to recording >>> and/or monitoring in accordance with relevant legislation. >>> >> >> > > This transmission is intended for the named addressee(s) only and may > contain sensitive or protectively marked material up to RESTRICTED and > should be handled accordingly. Unless you are the named addressee (or > authorised to receive it for the addressee) you may not copy or use it, or > disclose it to anyone else. If you have received this transmission in error > please notify the sender immediately. All email traffic sent to or from us, > including without limitation all GCSX traffic, may be subject to recording > and/or monitoring in accordance with relevant legislation. > |