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 > > -- Cameron Shorter Geospatial Systems Architect Tel: +61 (0)2 8570 5050 Mob: +61 (0)419 142 254 Think Globally, Fix Locally Commercial Support for Geospatial Open Source Software http://www.lisasoft.com/LISAsoft/SupportedProducts.html ------------------------------------------------------------------------- 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
