Skip to content

Commit a79b93f

Browse files
committedMay 8, 2018
Revert changes in #6558
1 parent 845846c commit a79b93f

File tree

2 files changed

+24
-58
lines changed

2 files changed

+24
-58
lines changed
 

‎Source/Scene/Cesium3DTileset.js

+24-26
Original file line numberDiff line numberDiff line change
@@ -1435,8 +1435,25 @@ define([
14351435

14361436
++statistics.numberOfPendingRequests;
14371437

1438+
var removeFunction = removeFromProcessingQueue(tileset, tile);
14381439
tile.contentReadyToProcessPromise.then(addToProcessingQueue(tileset, tile));
1439-
tile.contentReadyPromise.then(handleTileSuccess(tileset, tile)).otherwise(handleTileFailure(tileset, tile));
1440+
tile.contentReadyPromise.then(function() {
1441+
removeFunction();
1442+
tileset.tileLoad.raiseEvent(tile);
1443+
}).otherwise(function(error) {
1444+
removeFunction();
1445+
var url = tile._contentResource.url;
1446+
var message = defined(error.message) ? error.message : error.toString();
1447+
if (tileset.tileFailed.numberOfListeners > 0) {
1448+
tileset.tileFailed.raiseEvent({
1449+
url : url,
1450+
message : message
1451+
});
1452+
} else {
1453+
console.log('A 3D tile failed to load: ' + url);
1454+
console.log('Error: ' + message);
1455+
}
1456+
});
14401457
}
14411458

14421459
function requestTiles(tileset, outOfCore) {
@@ -1459,32 +1476,15 @@ define([
14591476
};
14601477
}
14611478

1462-
function handleTileFailure(tileset, tile) {
1463-
return function(error) {
1464-
if (tileset._processingQueue.indexOf(tile) >= 0) {
1465-
// Failed during processing
1466-
--tileset._statistics.numberOfTilesProcessing;
1467-
} else {
1468-
// Failed when making request
1479+
function removeFromProcessingQueue(tileset, tile) {
1480+
return function() {
1481+
if (tile._contentState === Cesium3DTileContentState.FAILED) {
1482+
// Not in processing queue
1483+
// For example, when a url request fails and the ready promise is rejected
14691484
--tileset._statistics.numberOfPendingRequests;
1485+
return;
14701486
}
14711487

1472-
var url = tile._contentResource.url;
1473-
var message = defined(error.message) ? error.message : error.toString();
1474-
if (tileset.tileFailed.numberOfListeners > 0) {
1475-
tileset.tileFailed.raiseEvent({
1476-
url : url,
1477-
message : message
1478-
});
1479-
} else {
1480-
console.log('A 3D tile failed to load: ' + url);
1481-
console.log('Error: ' + message);
1482-
}
1483-
};
1484-
}
1485-
1486-
function handleTileSuccess(tileset, tile) {
1487-
return function() {
14881488
--tileset._statistics.numberOfTilesProcessing;
14891489

14901490
if (tile.hasRenderableContent) {
@@ -1498,8 +1498,6 @@ define([
14981498
tile.replacementNode = tileset._replacementList.add(tile);
14991499
}
15001500
}
1501-
1502-
tileset.tileLoad.raiseEvent(tile);
15031501
};
15041502
}
15051503

‎Specs/Scene/Cesium3DTilesetSpec.js

-32
Original file line numberDiff line numberDiff line change
@@ -480,38 +480,6 @@ defineSuite([
480480
fail('should not resolve');
481481
}).otherwise(function(error) {
482482
expect(root._contentState).toEqual(Cesium3DTileContentState.FAILED);
483-
var statistics = tileset.statistics;
484-
expect(statistics.numberOfAttemptedRequests).toBe(0);
485-
expect(statistics.numberOfPendingRequests).toBe(0);
486-
expect(statistics.numberOfTilesProcessing).toBe(0);
487-
expect(statistics.numberOfTilesWithContentReady).toBe(0);
488-
});
489-
});
490-
});
491-
492-
it('handles failed tile processing', function() {
493-
viewRootOnly();
494-
var tileset = scene.primitives.add(new Cesium3DTileset({
495-
url : tilesetUrl
496-
}));
497-
return tileset.readyPromise.then(function(tileset) {
498-
// Start spying after the tileset json has been loaded
499-
spyOn(Resource._Implementations, 'loadWithXhr').and.callFake(function(url, responseType, method, data, headers, deferred, overrideMimeType) {
500-
deferred.resolve(Cesium3DTilesTester.generateBatchedTileBuffer({
501-
version : 0 // Invalid version
502-
}));
503-
});
504-
scene.renderForSpecs(); // Request root
505-
var root = tileset._root;
506-
return root.contentReadyPromise.then(function() {
507-
fail('should not resolve');
508-
}).otherwise(function(error) {
509-
expect(root._contentState).toEqual(Cesium3DTileContentState.FAILED);
510-
var statistics = tileset.statistics;
511-
expect(statistics.numberOfAttemptedRequests).toBe(0);
512-
expect(statistics.numberOfPendingRequests).toBe(0);
513-
expect(statistics.numberOfTilesProcessing).toBe(0);
514-
expect(statistics.numberOfTilesWithContentReady).toBe(0);
515483
});
516484
});
517485
});

0 commit comments

Comments
 (0)
Please sign in to comment.