[fdo-trac] #603: Expression Engine fails to process combinations of
multiple operations
FDO
trac_fdo at osgeo.org
Tue Jan 5 10:14:49 EST 2010
#603: Expression Engine fails to process combinations of multiple operations
-----------------------------+----------------------------------------------
Reporter: gregboone | Owner: gregboone
Type: defect | Status: new
Priority: major | Milestone: 3.5.0
Component: Utilities API | Version: 3.5.0
Severity: 2 | Keywords: ExpressionEngine
External_id: 1282572 |
-----------------------------+----------------------------------------------
Issue:
There is a defect in the FDO Expression engine when optimizing complex
spatial
filters that contain an !EnvelopeIntersects expression and a secondary
spatial
condition such as Intersects. The optimizing logic in !OptimizeSubSet()
attempts
to optimize the !EnvelopeIntersects and Intersects operation so that the
!EnvelopeIntersects becomes irrelevant and is removed from the filter.
This works
well for filters containing a single !EnvelopeIntersects condition and a
single
Intersects condition. However, if there are multiple Intersects
conditions, the
for loop logic of the routine does not have sufficient safeguards to
ensure that
the deletion of the !EnvelopeIntersects condition from the filter will
allow the
executing nested for loop to continue without attempting to access an
array
member at an invalid location.
Resolution:
Add a sanity check to the FDO Expression Engine !OptimizeSubSet() routine
to
ensure that array items are not accessed at invalid locations.
--
Ticket URL: <http://trac.osgeo.org/fdo/ticket/603>
FDO <http://fdo.osgeo.org/>
Feature Data Objects
More information about the fdo-trac
mailing list