OpenLayers OpenLayers

Changeset 4227

Show
Ignore:
Timestamp:
09/11/07 22:37:09 (1 year ago)
Author:
euzuro
Message:

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)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/lib/OpenLayers/Tile/WFS.js

    r3984 r4227  
    104104    */ 
    105105    requestSuccess:function(request) { 
    106         var doc = request.responseXML; 
    107          
    108         if (!doc || request.fileType!="XML") { 
    109             doc = OpenLayers.parseXMLString(request.responseText); 
    110         } 
    111         if (this.layer.vectorMode) { 
    112             var gml = new OpenLayers.Format.GML({extractAttributes: this.layer.options.extractAttributes}); 
    113             this.layer.addFeatures(gml.read(doc)); 
    114         } else { 
    115             var resultFeatures = OpenLayers.Ajax.getElementsByTagNameNS(doc, "http://www.opengis.net/gml","gml", "featureMember"); 
    116             this.addResults(resultFeatures); 
     106        if (this.features) { 
     107            var doc = request.responseXML; 
     108             
     109            if (!doc || request.fileType!="XML") { 
     110                doc = OpenLayers.parseXMLString(request.responseText); 
     111            } 
     112            if (this.layer.vectorMode) { 
     113                var gml = new OpenLayers.Format.GML({ 
     114                    'extractAttributes': this.layer.options.extractAttributes 
     115                }); 
     116                this.layer.addFeatures(gml.read(doc)); 
     117            } else { 
     118                var resultFeatures = OpenLayers.Ajax.getElementsByTagNameNS( 
     119                    doc, "http://www.opengis.net/gml", "gml", "featureMember" 
     120                ); 
     121                this.addResults(resultFeatures); 
     122            } 
    117123        } 
    118124    }, 
  • trunk/openlayers/tests/Tile/test_WFS.html

    r4218 r4227  
    2727    } 
    2828 
     29    function test_Tile_WFS_requestSuccess(t) { 
     30        t.plan(1); 
     31        var layer = {}; // bogus layer 
     32        var position = new OpenLayers.Pixel(10,20); 
     33        var bounds = new OpenLayers.Bounds(1,2,3,4); 
     34        var url = "bobob"; 
     35        var size = new OpenLayers.Size(5,6); 
     36         
     37        tile = new OpenLayers.Tile.WFS(layer, position, bounds, url, size); 
     38        tile.destroy(); 
     39        tile.requestSuccess({'requestText': '<xml><foo /></xml>'}); 
     40        t.ok(true, "Didn't fail after calling requestSuccess on destroyed tile."); 
     41         
     42    } 
     43     
    2944    function test_99_Tile_WFS_destroy(t) { 
    3045        t.plan( 6 );