Opened 3 years ago

Closed 3 years ago

#992 closed defect (fixed)

Better support for empty geometries

Reported by: jng Owned by: jng
Priority: critical Milestone:
Component: FDO API Version:
Severity: 1 Keywords:
Cc: External ID:

Description

As indicated by this thread:

https://lists.osgeo.org/pipermail/mapguide-users/2021-April/034446.html

FDO has an API-wide inability to properly handle empty geometries:

  • FdoSpatialUtility (that drives the spatial predicate testing in the SQLite provider) incorrectly assumes that both geometry operands are not empty, causing exceptions to be thrown if testing spatial predicates and one of the geometries is empty
  • Attempting to get the WKT of a deserialized FdoIGeometry instance that is empty (eg. A LineString with 0 points or a Polygon with no rings or a multi- geometry with no component geometries) either produces the incorrect WKT (eg. LINESTRING () instead of LINESTRING EMPTY) or worse it corrupts the heap due to the WKT conversion code de-allocating a 0-length string buffer due to assuming the input geometry is not empty.

This current limitation is causing havoc at the MapGuide level where this inability to properly handle empty geometries has potential to crash and destabilize the web tier.

Change History (1)

comment:1 by jng, 3 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.