[OpenLayers-Commits] r4227 - in trunk/openlayers: lib/OpenLayers/Tile tests/Tile
commits at openlayers.org
commits at openlayers.org
Tue Sep 11 22:37:10 EDT 2007
Author: euzuro
Date: 2007-09-11 22:37:09 -0400 (Tue, 11 Sep 2007)
New Revision: 4227
Modified:
trunk/openlayers/lib/OpenLayers/Tile/WFS.js
trunk/openlayers/tests/Tile/test_WFS.html
Log:
Temporary fix for WFS race condition where a tile is destroy()ed but an associated httprequest has not yet returned. Great report, Pierre G. (Closes #820)
Modified: trunk/openlayers/lib/OpenLayers/Tile/WFS.js
===================================================================
--- trunk/openlayers/lib/OpenLayers/Tile/WFS.js 2007-09-12 02:18:33 UTC (rev 4226)
+++ trunk/openlayers/lib/OpenLayers/Tile/WFS.js 2007-09-12 02:37:09 UTC (rev 4227)
@@ -103,18 +103,24 @@
* request - {XMLHttpRequest}
*/
requestSuccess:function(request) {
- var doc = request.responseXML;
-
- if (!doc || request.fileType!="XML") {
- doc = OpenLayers.parseXMLString(request.responseText);
+ if (this.features) {
+ var doc = request.responseXML;
+
+ if (!doc || request.fileType!="XML") {
+ doc = OpenLayers.parseXMLString(request.responseText);
+ }
+ if (this.layer.vectorMode) {
+ var gml = new OpenLayers.Format.GML({
+ 'extractAttributes': this.layer.options.extractAttributes
+ });
+ this.layer.addFeatures(gml.read(doc));
+ } else {
+ var resultFeatures = OpenLayers.Ajax.getElementsByTagNameNS(
+ doc, "http://www.opengis.net/gml", "gml", "featureMember"
+ );
+ this.addResults(resultFeatures);
+ }
}
- if (this.layer.vectorMode) {
- var gml = new OpenLayers.Format.GML({extractAttributes: this.layer.options.extractAttributes});
- this.layer.addFeatures(gml.read(doc));
- } else {
- var resultFeatures = OpenLayers.Ajax.getElementsByTagNameNS(doc, "http://www.opengis.net/gml","gml", "featureMember");
- this.addResults(resultFeatures);
- }
},
/**
Modified: trunk/openlayers/tests/Tile/test_WFS.html
===================================================================
--- trunk/openlayers/tests/Tile/test_WFS.html 2007-09-12 02:18:33 UTC (rev 4226)
+++ trunk/openlayers/tests/Tile/test_WFS.html 2007-09-12 02:37:09 UTC (rev 4227)
@@ -26,6 +26,21 @@
t.ok( tile.events != null, "tile's events intitialized");
}
+ function test_Tile_WFS_requestSuccess(t) {
+ t.plan(1);
+ var layer = {}; // bogus layer
+ var position = new OpenLayers.Pixel(10,20);
+ var bounds = new OpenLayers.Bounds(1,2,3,4);
+ var url = "bobob";
+ var size = new OpenLayers.Size(5,6);
+
+ tile = new OpenLayers.Tile.WFS(layer, position, bounds, url, size);
+ tile.destroy();
+ tile.requestSuccess({'requestText': '<xml><foo /></xml>'});
+ t.ok(true, "Didn't fail after calling requestSuccess on destroyed tile.");
+
+ }
+
function test_99_Tile_WFS_destroy(t) {
t.plan( 6 );
More information about the Commits
mailing list