summaryrefslogtreecommitdiff
path: root/src/node/handler/PadMessageHandler.js
diff options
context:
space:
mode:
authorJohn McLear <john@mclear.co.uk>2015-03-31 23:17:51 +0100
committerJohn McLear <john@mclear.co.uk>2015-03-31 23:17:51 +0100
commitb404af7c1702aef2d445e95f9d9a632718974b54 (patch)
tree35d411c9db1dc5363c2ba2bfe8be8d9566bbfeff /src/node/handler/PadMessageHandler.js
parente47992f5b7ec89b5798b9715643f768355dbc463 (diff)
parent0f82cd871141a4ca465e171dd4eb0fe6a73058f6 (diff)
downloadetherpad-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.js13
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);