It would help if you could identify when (what version upgrade) it stopped
working in?

You can find out quickly by testing 2.21 (1/2 way bwtween) and then test
higher (or lowere) depending on if it works.

Once you find that out you can look at the release notes for the update
that breaks things.  And then we can look for any bug fixes or features
that may be involved.

Since it’s a .NET error it feels like the problem may be with the server
(or something) rather than in GeoServer which is written in Java and not
.NET.

(dot Net is a silly name / who starts a word with the end of a sentence -
someone at Microsoft does not like grammar and is getting revenge).

- -
Jody Garnett


On Thu, Aug 1, 2024 at 9:05 AM Matthew Charton <mchar...@datascoutpro.com>
wrote:

> 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
>
_______________________________________________
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

Reply via email to