"sanity check" for cloud-saving mechanism

errors if the serialized project data is corrupt and cannot be parsed
as XML, addresses #203, #200, #171. I'm hoping that this might provide
us a clue whether the corruption is happening in Snap's marshalling or
on the backend side
pull/3/merge
jmoenig 2013-10-10 11:09:29 +02:00
rodzic 24476a644e
commit 027388029f
2 zmienionych plików z 23 dodań i 1 usunięć

Wyświetl plik

@ -29,7 +29,7 @@
/*global modules, IDE_Morph, SnapSerializer, hex_sha512, alert, nop*/
modules.cloud = '2013-September-17';
modules.cloud = '2013-October-10';
// Global stuff
@ -356,6 +356,24 @@ Cloud.prototype.saveProject = function (ide, callBack, errorCall) {
ide.serializer.isCollectingMedia = false;
ide.serializer.flushMedia();
// check if serialized data can be parsed back again
try {
ide.serializer.parse(pdata);
} catch (err) {
ide.showMessage('Serialization of program data failed:\n' + err);
throw new Error('Serialization of program data failed:\n' + err);
}
if (media !== null) {
try {
ide.serializer.parse(media);
} catch (err) {
ide.showMessage('Serialization of media failed:\n' + err);
throw new Error('Serialization of media failed:\n' + err);
}
}
ide.serializer.isCollectingMedia = false;
ide.serializer.flushMedia();
myself.reconnect(
function () {
myself.callService(

Wyświetl plik

@ -1950,3 +1950,7 @@ ______
131009
------
* Theads: added a variant for linked lists to the experimental MAP primitive reporter
131010
------
* Cloud: added "sanity check" to cloud-saving mechanism that errors if the serialized project data is corrupt and cannot be parsed as XML, addresses #203, #200, #171