1

All spatial query requests perform well on GeoServer 2.19 using CQL filters. But for some reason, I'm getting an internal error with the following POLYGON CQL filter. Hence, the same CQL filter works on QA GeoServer 2.19. Does anyone know what is causing this error?

In the LIB folder, both gt-jdbc-oracle-25.0.jar and ojdbc8-19.10.0.0.jar files are present. When I checked the release note the extensions were correct as we downloaded them from the below link. https://sourceforge.net/projects/geoserver/files/GeoServer/2.19.0/extensions/

INTERSECTS(GEOMETRY,POLYGON((278662.260287989 187320.05780901964,278623.0718832049 187310.87036169443,278655.05103441543 187291.189377581,278667.0581128081 187309.03873158764,278662.260287989 187320.05780901964)))

Error

Caused by: java.lang.Exception: java.lang.NoSuchMethodError: org.locationtech.jts.geom.Polygon.getExteriorRing()Lorg/locationtech/jts/geom/LineString; at org.geotools.renderer.lite.StreamingRenderer.fireErrorEvent(StreamingRenderer.java:518) at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:909) at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:609) ... 125 more Caused by: java.lang.NoSuchMethodError: org.locationtech.jts.geom.Polygon.getExteriorRing()Lorg/locationtech/jts/geom/LineString; at org.geotools.data.oracle.sdo.SDO.addCoordinatesInterpretation1(SDO.java:941) at org.geotools.data.oracle.sdo.SDO.addCoordinates(SDO.java:903) at org.geotools.data.oracle.sdo.SDO.coordinates(SDO.java:783) at org.geotools.data.oracle.sdo.SDO.ordinates(SDO.java:688) at org.geotools.data.oracle.sdo.GeometryConverter.toSDO(GeometryConverter.java:188) at org.geotools.data.oracle.OracleDialect.setGeometryValue(OracleDialect.java:626) at org.geotools.jdbc.JDBCDataStore.setPreparedFilterValues(JDBCDataStore.java:3667) at org.geotools.jdbc.JDBCDataStore.selectSQLPS(JDBCDataStore.java:3585) at org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSource.java:587) at org.geotools.jdbc.JDBCFeatureStore.getReaderInternal(JDBCFeatureStore.java:217) at org.geotools.data.store.ContentFeatureSource.getReader(ContentFeatureSource.java:619) at org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:163) at org.geotools.data.store.ContentFeatureCollection.features(ContentFeatureCollection.java:52) at org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2634) at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:2269) at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:907)

Layer Preview Window

enter image description here

3
  • Welcome to GIS SE! We're a little different from other sites; this isn't a discussion forum but a Q&A site. Your questions should as much as possible describe not just what you want to do, but precisely what you have tried and where you are stuck trying that. Please check out our short tour for more about how the site works
    – Ian Turton
    Commented Apr 6, 2023 at 12:06
  • Error messages and code should be posted as text, not as a screenshot. It is very difficult to read for some users and impossible for screen readers, and google. Please take the tour to see how this site works.
    – Ian Turton
    Commented Apr 6, 2023 at 12:06
  • The screenshot has been removed and the error message is posted as text now. There is no code. To replicate this issue, I use OpenLayer Layer Preview option in Geoserver.
    – Ardour
    Commented Apr 6, 2023 at 13:34

1 Answer 1

3

I would expect this kind of error if you were to add a plugin for a given version of GeoServer into a different version of GeoServer.

In general, plugins must always match their corresponding version of GeoServer, never mix them across version numbers.

3
  • It worked 1 month ago and we have not upgraded anything on the server. When I use Linestrings or points instead of Polygons, it works now.The following query works without any issues. INTERSECTS(GEOMETRY,LINESTRING((278662.260287989 187320.05780901964,278623.0718832049 187310.87036169443,278655.05103441543 187291.189377581,278667.0581128081 187309.03873158764,278662.260287989 187320.05780901964)))
    – Ardour
    Commented Apr 6, 2023 at 13:50
  • 1
    Five years ago the JTS Polygon.getExteriorRing was changed, before it returned LineString, now it returns LinearRing. The error you get is there because the Oracle plugin was built against an older JTS that returned LineString, while it finds in the classpath one that returns LinearRing. You definitely have a library mismatch there. Commented Apr 6, 2023 at 16:33
  • Thanks Andrea - We have noticed there are two versions of GS-djbc-oralce in the Lib folder. Once we removed the old version it worked.
    – Ardour
    Commented Apr 13, 2023 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.