GeoServer CQL Filter – Troubleshoot POLYGON CQL Filter NoSuchMethodError on GeoServer

cqlcql-filtergeoserver

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

Best Answer

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.

Related Question