diff options
author | webzwo0i <webzwo0i@c3d2.de> | 2015-02-26 14:57:49 +0100 |
---|---|---|
committer | webzwo0i <webzwo0i@c3d2.de> | 2015-02-26 14:57:49 +0100 |
commit | 7719117e1e1b0d4d7b1d3740329cbea92258c6f8 (patch) | |
tree | 1e01018c35c1f231617be9ddfb56d64a8dd5b99f /src/node/handler/PadMessageHandler.js | |
parent | 38a4f1be5f08784d94080adf55f83d5f146364a1 (diff) | |
download | etherpad-lite-7719117e1e1b0d4d7b1d3740329cbea92258c6f8.zip |
do not crash when encountering mismatched compositions. log the changesets and padid
Diffstat (limited to 'src/node/handler/PadMessageHandler.js')
-rw-r--r-- | src/node/handler/PadMessageHandler.js | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index 7ea5039d..86244d85 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -1629,10 +1629,14 @@ function composePadChangesets(padId, startNum, endNum, callback) changeset = changesets[startNum]; var pool = pad.apool(); - for(var r=startNum+1;r<endNum;r++) - { - var cs = changesets[r]; - changeset = Changeset.compose(changeset, cs, pool); + try { + for(var r=startNum+1;r<endNum;r++) { + var cs = changesets[r]; + changeset = Changeset.compose(changeset, cs, pool); + } + } catch(e){ + console.warn("failed to compose cs in pad:",padId); + return; } callback(null); |