From 95d4237caaeb608e992de3e88ebec9400d3d12ca Mon Sep 17 00:00:00 2001 From: Sergey Konovalov Date: Wed, 27 Dec 2023 12:39:02 +0300 Subject: [PATCH] [bug] Fix sending double documentOpen command when co-editing --- DocService/sources/canvasservice.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DocService/sources/canvasservice.js b/DocService/sources/canvasservice.js index 1612a1fd..7951bb88 100644 --- a/DocService/sources/canvasservice.js +++ b/DocService/sources/canvasservice.js @@ -292,7 +292,7 @@ var getOutputData = co.wrap(function* (ctx, cmd, outputData, key, optConn, optAd } break; case commonDefines.FileStatus.None: - outputData.setStatus('none'); + //this status has no handler break; case commonDefines.FileStatus.WaitQueue: //task in the queue. response will be after convertion @@ -302,6 +302,7 @@ var getOutputData = co.wrap(function* (ctx, cmd, outputData, key, optConn, optAd outputData.setData(constants.UNKNOWN); break; } + return status; }); function* addRandomKeyTaskCmd(ctx, cmd) { var task = yield* taskResult.addRandomKeyTask(ctx, cmd.getDocId()); @@ -523,8 +524,8 @@ function* commandOpen(ctx, conn, cmd, outputData, opt_upsertRes, opt_bIsRestore) } } function* commandOpenFillOutput(ctx, conn, cmd, outputData, opt_bIsRestore) { - yield getOutputData(ctx, cmd, outputData, cmd.getDocId(), conn, undefined, opt_bIsRestore); - return 'none' === outputData.getStatus(); + let status = yield getOutputData(ctx, cmd, outputData, cmd.getDocId(), conn, undefined, opt_bIsRestore); + return commonDefines.FileStatus.None === status; } function* commandReopen(ctx, conn, cmd, outputData) { const tenOpenProtectedFile = ctx.getCfg('services.CoAuthoring.server.openProtectedFile', cfgOpenProtectedFile); @@ -1346,7 +1347,7 @@ exports.openDocument = function(ctx, conn, cmd, opt_upsertRes, opt_bIsRestore) { outputData.setData(constants.UNKNOWN); } finally { - if (outputData && outputData.getStatus()) { + if (outputData?.getStatus()) { ctx.logger.debug('Response command: %s', JSON.stringify(outputData)); docsCoServer.sendData(ctx, conn, new OutputDataWrap('documentOpen', outputData)); }