Merge pull request #46 from mapbox/null-tile
Detect null or non-buffer tile
This commit is contained in:
@@ -154,6 +154,10 @@ MBTiles.prototype.getTile = function(z, x, y, callback) {
|
|||||||
return callback(new Error('Tile does not exist'));
|
return callback(new Error('Tile does not exist'));
|
||||||
} else if (err) {
|
} else if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
|
} else if (!row.tile_data || !Buffer.isBuffer(row.tile_data)) {
|
||||||
|
var err = new Error('Tile is invalid');
|
||||||
|
err.code = 'EINVALIDTILE';
|
||||||
|
return callback(err);
|
||||||
} else {
|
} else {
|
||||||
var headers = tiletype.headers(row.tile_data);
|
var headers = tiletype.headers(row.tile_data);
|
||||||
headers['Last-Modified'] = new Date(mbtiles._stat.mtime).toUTCString();
|
headers['Last-Modified'] = new Date(mbtiles._stat.mtime).toUTCString();
|
||||||
|
|||||||
BIN
Binary file not shown.
+5
-1
@@ -10,7 +10,8 @@ var fixtures = {
|
|||||||
plain_3: __dirname + '/fixtures/plain_3.mbtiles',
|
plain_3: __dirname + '/fixtures/plain_3.mbtiles',
|
||||||
plain_4: __dirname + '/fixtures/plain_4.mbtiles',
|
plain_4: __dirname + '/fixtures/plain_4.mbtiles',
|
||||||
non_existent: __dirname + '/fixtures/non_existent.mbtiles',
|
non_existent: __dirname + '/fixtures/non_existent.mbtiles',
|
||||||
corrupt: __dirname + '/fixtures/corrupt.mbtiles'
|
corrupt: __dirname + '/fixtures/corrupt.mbtiles',
|
||||||
|
corrupt_null_tile: __dirname + '/fixtures/corrupt_null_tile.mbtiles'
|
||||||
};
|
};
|
||||||
|
|
||||||
function yieldsError(assert, error, msg, callback) {
|
function yieldsError(assert, error, msg, callback) {
|
||||||
@@ -140,3 +141,6 @@ fs.readdirSync(__dirname + '/fixtures/grids/').forEach(function(file) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tape('corrupt null tile', function(assert) {
|
||||||
|
loaded.corrupt_null_tile.getTile(1, 0, 1, yieldsError(assert, 'error', 'Tile is invalid', assert.end));
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user