diff options
author | Milutin Kristofic <milutin@google.com> | 2022-05-12 21:39:06 +0200 |
---|---|---|
committer | Paladox none <thomasmulhall410@yahoo.com> | 2022-05-13 12:47:15 +0000 |
commit | 74d8d465d82f78ea59de913a952addae87617b7c (patch) | |
tree | 794d511ce2789ead124fba36bf13494f8119e319 | |
parent | 309272bffd71f1f09089e95cb2e9d654d39fcec2 (diff) |
Prevent 2 same requests for editing commit message
Currently gr-change-view can get to state when it add twice listener
to _handleCommitMessageSave. This results to 2 /message requests with
the same content, that currently back-end doesn't process well and
change can get corrupted by 2 same patchsets.
This is quick fix to disable 2 /message request to be sent. The fix
for multiple listeners will be done in following change.
Google-Bug-Id: b/231981018
Release-Notes: skip
Change-Id: Ib14db7ae3257fc716926c0060d1d749348c56141
(cherry picked from commit cfcf0af437c15d12c9ed2bc9961193afa3af5935)
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts | 2 | ||||
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts index d3f29fce7b..ca2e4da899 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts @@ -944,6 +944,8 @@ export class GrChangeView extends base { assertIsDefined(this._change, '_change'); if (!this._changeNum) throw new Error('missing required changeNum property'); + // to prevent 2 requests at the same time + if (this.$.commitMessageEditor.disabled) return; // Trim trailing whitespace from each line. const message = e.detail.content.replace(TRAILING_WHITESPACE_REGEX, ''); diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts index 80cf8a478b..45a65307fe 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts @@ -1529,7 +1529,7 @@ suite('gr-change-view tests', () => { ); }); - test('_handleCommitMessageSave trims trailing whitespace', () => { + test('_handleCommitMessageSave trims trailing whitespace', async () => { element._change = createChangeViewChange(); // Response code is 500, because we want to avoid window reloading const putStub = stubRestApi('putChangeCommitMessage').returns( @@ -1541,10 +1541,10 @@ suite('gr-change-view tests', () => { element._handleCommitMessageSave(mockEvent('test \n test ')); assert.equal(putStub.lastCall.args[1], 'test\n test'); - + element.$.commitMessageEditor.disabled = false; element._handleCommitMessageSave(mockEvent(' test\ntest')); assert.equal(putStub.lastCall.args[1], ' test\ntest'); - + element.$.commitMessageEditor.disabled = false; element._handleCommitMessageSave(mockEvent('\n\n\n\n\n\n\n\n')); assert.equal(putStub.lastCall.args[1], '\n\n\n\n\n\n\n\n'); }); |