[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