kopia lustrzana https://github.com/backface/turtlestitch
"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 sidepull/3/merge
rodzic
24476a644e
commit
027388029f
20
cloud.js
20
cloud.js
|
@ -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(
|
||||
|
|
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue