Bounds getBounds(int childIndex) { if (boundsAutoCompute) { ArrayList glist = (ArrayList) geometryInfo.get(childIndex); if (glist != null) { BoundingBox bbox = new BoundingBox((Bounds) null); for (int i = 0; i < glist.size(); i++) { Geometry g = (Geometry) glist.get(i); if (g != null) { GeometryRetained geometry = (GeometryRetained) g.retained; if (geometry.geoType != GeometryRetained.GEO_TYPE_NONE) { geometry.computeBoundingBox(); synchronized (geometry.geoBounds) { bbox.combine(geometry.geoBounds); } } } } return (Bounds) bbox; } else { return null; } } else { return super.getBounds(); } }