Sorry for the crosspost from GIS Stackexchange (https://gis.stackexchange.com/questions/483890/unable-to-update-gml-multisurface-after-geoserver-upgrade), but the conversation there fizzled out.
We are testing a (much needed) upgrade from GeoServer 2.17.2 to 2.25.1. We are currently stumped as to why we can't seem to be able to update or insert a multisurface using the same WFS transaction as with 2.17. I'm sure there is something simple we are missing here, so I'm hoping someone can point us in the right direction. Here is an example transaction that is failing: <wfs:Transaction service="WFS" version="1.1.1" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:MyWorkspace="http://mydomain.com/myworkspace"> <wfs:Update typeName="MyWorkspace:MyLayer"> <wfs:Property> <wfs:Name>Item_Name</wfs:Name> <wfs:Value><![CDATA[Bob]]></wfs:Value> </wfs:Property> <!--other properties--> <wfs:Property> <wfs:Name>SHAPE</wfs:Name> <wfs:Value> <gml:MultiSurface srsName='http://www.opengis.net/gml/srs/epsg.xml#4326'> <gml:surfaceMembers> <gml:Polygon> <gml:exterior> <gml:LinearRing> <gml:posList>-92.6834743019173 35.2264426107788 -92.6830394566101 35.2264555548522 -92.68301875 35.2266209299999 -92.6834852899999 35.22663787 -92.6834743019173 35.2264426107788</gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> <gml:Polygon> <gml:exterior> <gml:LinearRing> <gml:posList>-92.6830420474193 35.2264347826591 -92.6827235345709 35.2264521083911 -92.68272353 35.2266102100001 -92.68301873 35.22662093 -92.6830420474193 35.2264347826591</gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </gml:surfaceMembers> </gml:MultiSurface> </wfs:Value> </wfs:Property> <ogc:Filter> <PropertyIsEqualTo> <PropertyName>OBJECTID</PropertyName> <Literal><![CDATA[100832369]]></Literal> </PropertyIsEqualTo> </ogc:Filter> </wfs:Update> </wfs:Transaction> And here is what I feel is the relevant error logged in GeoServer: ERROR [geoserver.wfs] - Transaction failed org.geoserver.wfs.WFSTransactionException: Update error: Error occured updating features ... Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: A .NET Framework error occurred during execution of user-defined routine or aggregate "geometry": System.FormatException: 24114: The label MULTISURFACE (((-92. in the input well-known text (WKT) is not valid. Valid labels are POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION, CIRCULARSTRING, COMPOUNDCURVE, CURVEPOLYGON and FULLGLOBE (geography Data Type only). Developer level logging shows the following "info" log: INFO [geoserver.wfs] - Request: transaction service = WFS version = 1.1.1 baseUrl = http://myurl:myport/geoserver/ group[0] = wfs:update=net.opengis.wfs.impl.UpdateElementTypeImpl@2f8c1c44 (filter: [[ OBJECTID = 100832369 ]], handle: null, inputFormat: <unset>, srsName: null, typeName: {http://myurl/myworkspace}mylayer)group[0] = wfs:delete=net.opengis.wfs.impl.DeleteElementTypeImpl@645e0daf (filter: [[ OBJECTID = 100832371 ]], handle: null, typeName: {http://myurl/myworkspace}mylayer) update[0]: property[0]: ... several redacted properties and values ... name = SHAPE value = MULTIPOLYGON (((-92.6834743019173 35.2264426107788, -92.6830394566101 35.2264555548522, -92.68301875 35.2266209299999, -92.6834852899999 35.22663787, -92.6834743019173 35.2264426107788)), ((-92.6830420474193 35.2264347826591, -92.6827235345709 35.2264521083911, -92.68272353 35.2266102100001, -92.68301873 35.22662093, -92.6830420474193 35.2264347826591))) filter = [[ OBJECTID = 100832369 ]] inputFormat = x-application/gml:3 typeName = {http://myurl/myworkspace}mylayer delete[0]: filter = [[ OBJECTID = 100832371 ]] typeName = {http://myurl/myworkspace}mylayer releaseAction = ALL INFO [geoserver.servlets] - OutputStream was successfully aborted. (Note, I am doing a delete in the same transaction here in this log which I'm not showing in the example transaction above, but it happens without it as well.) Very interesting that the geometry is already converted to multipolygon here. Not sure why it isn't hitting SQL as a multipolygon. I have tried altering the WFS version of the transaction and specifying GML version and even changing to explicitly using multipolygon instead of multisurface, but I'm to the point that I'm just shooting in the dark. This is a bit of a showstopper for us with the upgrade, so any help would be very much appreciated. Thanks, Matt
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users