summaryrefslogtreecommitdiff
path: root/src/node/handler/PadMessageHandler.js
diff options
context:
space:
mode:
authorwebzwo0i <webzwo0i@c3d2.de>2014-12-04 16:05:02 +0100
committerwebzwo0i <webzwo0i@c3d2.de>2014-12-04 16:05:02 +0100
commit5306f0c98af051b790bcf8344077e781b10f3eb7 (patch)
tree09d8c2babcdb10e3123c7028b71eb158db6b62ad /src/node/handler/PadMessageHandler.js
parent10c2f72720628c952138bc87dffd6505576fdcd0 (diff)
downloadetherpad-lite-5306f0c98af051b790bcf8344077e781b10f3eb7.zip
wrap appendRevision in try-catch block
Diffstat (limited to 'src/node/handler/PadMessageHandler.js')
-rw-r--r--src/node/handler/PadMessageHandler.js11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js
index bc8f5d62..1d89288c 100644
--- a/src/node/handler/PadMessageHandler.js
+++ b/src/node/handler/PadMessageHandler.js
@@ -742,7 +742,16 @@ function handleUserChanges(data, cb)
return callback(new Error("Can't apply USER_CHANGES "+changeset+" with oldLen " + Changeset.oldLen(changeset) + " to document of length " + prevText.length));
}
- pad.appendRevision(changeset, thisSession.author);
+ try
+ {
+ pad.appendRevision(changeset, thisSession.author);
+ }
+ catch(e)
+ {
+ client.json.send({disconnect:"badChangeset"});
+ stats.meter('failedChangesets').mark();
+ return callback(e)
+ }
var correctionChangeset = _correctMarkersInPad(pad.atext, pad.pool);
if (correctionChangeset) {