Skip to content

Commit

Permalink
Fixed "Cannot read property 'firstElementChild' of null" on WFS readP…
Browse files Browse the repository at this point in the history
…rojectionFromNode.

Occurs when a FeatureCollection is empty.

Code style changes @bartvde

Added test case for openlayers#3118.

Attempt to make jshint happy.

Fixed tab character.

Another code style change (jshint)....
  • Loading branch information
brianreavis committed Jan 13, 2015
1 parent 5dca3e9 commit 37dac8e
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/ol/format/wfsformat.js
Original file line number Diff line number Diff line change
Expand Up @@ -747,8 +747,10 @@ ol.format.WFS.prototype.readProjectionFromDocument = function(doc) {
ol.format.WFS.prototype.readProjectionFromNode = function(node) {
goog.asserts.assert(node.nodeType == goog.dom.NodeType.ELEMENT);
goog.asserts.assert(node.localName == 'FeatureCollection');
node = node.firstElementChild.firstElementChild;
if (goog.isDefAndNotNull(node)) {

if (goog.isDefAndNotNull(node.firstElementChild) &&
goog.isDefAndNotNull(node.firstElementChild.firstElementChild)) {
node = node.firstElementChild.firstElementChild;
for (var n = node.firstElementChild; !goog.isNull(n);
n = n.nextElementSibling) {
if (!(n.childNodes.length === 0 ||
Expand All @@ -760,5 +762,6 @@ ol.format.WFS.prototype.readProjectionFromNode = function(node) {
}
}
}

return null;
};
9 changes: 9 additions & 0 deletions test/spec/ol/format/wfs/EmptyFeatureCollection.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
xmlns:rws="http://mapserver.gis.umn.edu/mapserver"
xmlns:gml="http://www.opengis.net/gml"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://intranet.rijkswaterstaat.nl/services/geoservices/nwb_wegen?SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=feature:AAA64&amp;OUTPUTFORMAT=text/xml; subtype=gml/3.1.1 http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" numberOfFeatures="0">
</wfs:FeatureCollection>
15 changes: 15 additions & 0 deletions test/spec/ol/format/wfsformat.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,21 @@ describe('ol.format.WFS', function() {

});

describe('when parsing FeatureCollection', function() {
var xml;
before(function(done) {
afterLoadText('spec/ol/format/wfs/EmptyFeatureCollection.xml',
function(_xml) {
xml = _xml;
done();
});
});
it('returns an empty array of features when none exist', function() {
var result = new ol.format.WFS().readFeatures(xml);
expect(result).to.have.length(0);
});
});

describe('when parsing FeatureCollection', function() {
var response;
before(function(done) {
Expand Down

0 comments on commit 37dac8e

Please sign in to comment.