[Geoserver-users] ELEM_INFO STARTING_OFFSET inconsistent with ORDINATES length

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_BUILDING with 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.

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 <jonathanmoules@anonymised.com…> 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_BUILDING with 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
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

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 Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

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 <jonathanmoules@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.

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.

On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

If you can narrow it down to the geometry that is causing failure we may be able to create a test case.

···

On Mon, Jul 29, 2013 at 4:08 AM, Jonathan Moules <jonathanmoules@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.

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.

On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

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 <jody.garnett@anonymised.com> 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 <mtnclimb@anonymised.com> 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.


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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

On Mon, Jul 29, 2013 at 4:08 AM, Jonathan Moules <jonathanmoules@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.

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.

On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

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 :wink: ).

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.

···

On Mon, Jul 29, 2013 at 12:44 PM, Jody Garnett <jody.garnett@anonymised.com> 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 <mtnclimb@anonymised.com> 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.


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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

On Mon, Jul 29, 2013 at 4:08 AM, Jonathan Moules <jonathanmoules@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.

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.

On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

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 <jonathanmoules@anonymised.com> 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 :wink: ).

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 <mtnclimb@anonymised.com…84…> 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.

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.

On Mon, Jul 29, 2013 at 12:44 PM, Jody Garnett <jody.garnett@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.


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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

On Mon, Jul 29, 2013 at 4:08 AM, Jonathan Moules <jonathanmoules@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.

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.

On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

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. :slight_smile:

It may be worth updating the JIRA with this. Save someone else having to figure it out when they get around to fixing it. :slight_smile:

Many thanks again to both,
Jonathan

···

On Wed, Jul 31, 2013 at 3:39 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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 :wink: ).

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 <mtnclimb@anonymised.com…84…> 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.

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.

On Mon, Jul 29, 2013 at 12:44 PM, Jody Garnett <jody.garnett@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.


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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

On Mon, Jul 29, 2013 at 4:08 AM, Jonathan Moules <jonathanmoules@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.

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.

On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

I added a comment to the JIRA summarizing the findings.

···

On Wed, Jul 31, 2013 at 9:43 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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. :slight_smile:

It may be worth updating the JIRA with this. Save someone else having to figure it out when they get around to fixing it. :slight_smile:

Many thanks again to both,
Jonathan

On 31 July 2013 17:36, Martin Davis <mtnclimb@anonymised.com> 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).

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.

On Wed, Jul 31, 2013 at 3:39 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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 :wink: ).

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 <mtnclimb@anonymised.com…84…> 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.

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.

On Mon, Jul 29, 2013 at 12:44 PM, Jody Garnett <jody.garnett@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.


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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

On Mon, Jul 29, 2013 at 4:08 AM, Jonathan Moules <jonathanmoules@anonymised.com…> 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 <mtnclimb@anonymised.com> 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.

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.

On Tue, Jul 23, 2013 at 1:48 AM, Jonathan Moules <jonathanmoules@anonymised.com> 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_BUILDING with 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
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users