Also it is always nice to have the patch in a diff format that can be
readily applied. As for the patches they look reasonable to me. I
believe Saul has become the defacto maintainer for the filter
capabilities stuff on main so you may want to get his review before
committing.

-Justin

Cameron Shorter wrote:
> Stefan,
> For these 2 issues you have found, I suggest you create an issue in the 
> Geoserver issue tracker.
> I understand that you have fixed these issues in your branch. I suggest 
> you reference the svn version you committed which makes it easier to review.
> Be specific about what you would like, and how you can help. In this 
> case, ask if it is ok if you can commit this patch back to the trunk, or 
> if someone else can do it for you.
> 
> Geotools,
> I suggest requesting codehaus track geotools with 
> http://fisheye.codehaus.org/
> It provides lots of useful metics and web based svn diffs.
> 
> Stefan Hansen wrote:
>> Dear list!
>>
>> I discovered a small problem in the function visit(GeometryFilter 
>> filter) of 
>> org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor.java.
>>
>> If the given filter is a FilterType.GEOMETRY_BBOX containing a BBOX that 
>> lies completely outside the maxbox, the BBOX in the filter gets altered. 
>> Because of this, sometimes features are returned, that are not in the 
>> requested BBOX.
>>
>> Here is the code snippet of which I think causes the problem:
>>
>>                                 if(bbox!=null){
>>                                     boolean changed = false;
>>                                     double minx,miny,maxx,maxy;
>>                                     minx = bbox.getMinX();
>>                                     miny = bbox.getMinY();
>>                                     maxx = bbox.getMaxX();
>>                                     maxy = bbox.getMaxY();
>>                                     if(minx < maxbbox.getMinX()){
>>                                         minx = maxbbox.getMinX();
>>                                         changed = true;
>>                                     }
>>                                     if(maxx > maxbbox.getMaxX()){
>>                                         maxx = maxbbox.getMaxX();
>>                                         changed = true;
>>                                     }
>>                                     if(miny < maxbbox.getMinY()){
>>                                         miny = maxbbox.getMinY();
>>                                         changed = true;
>>                                     }
>>                                     if(maxy > maxbbox.getMaxY()){
>>                                         maxy = maxbbox.getMaxY();
>>                                         changed = true;
>>                                     }
>>                                     if(changed){
>>                                         Envelope tmp = new 
>> Envelope(minx,maxx,miny,maxy);
>>                                         try {
>>                                             le.setLiteral((new 
>> GeometryFactory()).toGeometry(tmp));
>>                                         } catch (IllegalFilterException e) {
>>                                             logger.warning(e.toString());
>>                                         }
>>                                     }
>>
>> And here is my solution, which is supposed to alter the BBOX only if it 
>> overlaps the maxbox:
>>
>>                                 if(bbox!=null){
>>                                     logger.warning("sh: GeometryFilter: 
>> BBOX!=null");
>>                                     boolean changed = false;
>>                                     double minx,miny,maxx,maxy;
>>                                     minx = bbox.getMinX();
>>                                     miny = bbox.getMinY();
>>                                     maxx = bbox.getMaxX();
>>                                     maxy = bbox.getMaxY();
>>                                     if(minx < maxbbox.getMinX() && maxx 
>>  > maxbbox.getMinX()){
>>                                         minx = maxbbox.getMinX();
>>                                         changed = true;
>>                                     }
>>                                     if(maxx > maxbbox.getMaxX() && minx 
>> < maxbbox.getMaxX()){
>>                                         maxx = maxbbox.getMaxX();
>>                                         changed = true;
>>                                     }
>>                                     if(miny < maxbbox.getMinY() && maxy 
>>  > maxbbox.getMinY()){
>>                                         miny = maxbbox.getMinY();
>>                                         changed = true;
>>                                     }
>>                                     if(maxy > maxbbox.getMaxY() && miny 
>>  > maxbbox.getMaxY()){
>>                                         maxy = maxbbox.getMaxY();
>>                                         changed = true;
>>                                     }
>>                                     if(changed){
>>                                         logger.warning("sh: 
>> GeometryFilter: Changed true");
>>                                         Envelope tmp = new 
>> Envelope(minx,maxx,miny,maxy);
>>                                         try {
>>                                             le.setLiteral((new 
>> GeometryFactory()).toGeometry(tmp));
>>                                         } catch (IllegalFilterException e) {
>>                                             logger.warning(e.toString());
>>                                         }
>>                                     }
>>
>> cheers,
>> stefan
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Splunk Inc.
>> Still grepping through log files to find problems?  Stop.
>> Now Search log events and configuration files using AJAX and a browser.
>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>> _______________________________________________
>> Geotools-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>
>>   
> 
> 


-- 
Justin Deoliveira
The Open Planning Project
http://topp.openplans.org

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to