diff options
author | John McLear <john@mclear.co.uk> | 2015-03-31 23:17:51 +0100 |
---|---|---|
committer | John McLear <john@mclear.co.uk> | 2015-03-31 23:17:51 +0100 |
commit | b404af7c1702aef2d445e95f9d9a632718974b54 (patch) | |
tree | 35d411c9db1dc5363c2ba2bfe8be8d9566bbfeff /src/node/handler/PadMessageHandler.js | |
parent | e47992f5b7ec89b5798b9715643f768355dbc463 (diff) | |
parent | 0f82cd871141a4ca465e171dd4eb0fe6a73058f6 (diff) | |
download | etherpad-lite-b404af7c1702aef2d445e95f9d9a632718974b54.zip |
Merge pull request #2530 from webzwo0i/exception-handling-for-mimatched-composition
do not crash when encountering mismatched compositions. log the changese...
Diffstat (limited to 'src/node/handler/PadMessageHandler.js')
-rw-r--r-- | src/node/handler/PadMessageHandler.js | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index ef8e32b0..c210ab2b 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -1634,10 +1634,15 @@ 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){ + // r-1 indicates the rev that was build starting with startNum, applying startNum+1, +2, +3 + console.warn("failed to compose cs in pad:",padId," startrev:",startNum," current rev:",r); + return callback(e); } callback(null); |