mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-22 08:26:16 -04:00
do not crash when encountering mismatched compositions. log the changesets and padid
This commit is contained in:
parent
38a4f1be5f
commit
7719117e1e
2 changed files with 9 additions and 5 deletions
|
@ -1629,11 +1629,15 @@ function composePadChangesets(padId, startNum, endNum, callback)
|
||||||
changeset = changesets[startNum];
|
changeset = changesets[startNum];
|
||||||
var pool = pad.apool();
|
var pool = pad.apool();
|
||||||
|
|
||||||
for(var r=startNum+1;r<endNum;r++)
|
try {
|
||||||
{
|
for(var r=startNum+1;r<endNum;r++) {
|
||||||
var cs = changesets[r];
|
var cs = changesets[r];
|
||||||
changeset = Changeset.compose(changeset, cs, pool);
|
changeset = Changeset.compose(changeset, cs, pool);
|
||||||
}
|
}
|
||||||
|
} catch(e){
|
||||||
|
console.warn("failed to compose cs in pad:",padId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
callback(null);
|
callback(null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1318,7 +1318,7 @@ exports.compose = function (cs1, cs2, pool) {
|
||||||
var unpacked2 = exports.unpack(cs2);
|
var unpacked2 = exports.unpack(cs2);
|
||||||
var len1 = unpacked1.oldLen;
|
var len1 = unpacked1.oldLen;
|
||||||
var len2 = unpacked1.newLen;
|
var len2 = unpacked1.newLen;
|
||||||
exports.assert(len2 == unpacked2.oldLen, "mismatched composition of two changesets");
|
exports.assert(len2 == unpacked2.oldLen, "mismatched composition of two changesets - cs1:",cs1," and cs2:",cs2);
|
||||||
var len3 = unpacked2.newLen;
|
var len3 = unpacked2.newLen;
|
||||||
var bankIter1 = exports.stringIterator(unpacked1.charBank);
|
var bankIter1 = exports.stringIterator(unpacked1.charBank);
|
||||||
var bankIter2 = exports.stringIterator(unpacked2.charBank);
|
var bankIter2 = exports.stringIterator(unpacked2.charBank);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue