diff options
author | webzwo0i <webzwo0i@c3d2.de> | 2014-12-04 16:05:02 +0100 |
---|---|---|
committer | webzwo0i <webzwo0i@c3d2.de> | 2014-12-04 16:05:02 +0100 |
commit | 5306f0c98af051b790bcf8344077e781b10f3eb7 (patch) | |
tree | 09d8c2babcdb10e3123c7028b71eb158db6b62ad /src/node/handler/PadMessageHandler.js | |
parent | 10c2f72720628c952138bc87dffd6505576fdcd0 (diff) | |
download | etherpad-lite-5306f0c98af051b790bcf8344077e781b10f3eb7.zip |
wrap appendRevision in try-catch block
Diffstat (limited to 'src/node/handler/PadMessageHandler.js')
-rw-r--r-- | src/node/handler/PadMessageHandler.js | 11 |
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) { |