nhat-phan / merge-request-integration

An Intellij IDE plugin which helps you manage Merge Request and do Code Review right in your IDE.
Other
175 stars 59 forks source link

Error response from GitLab when commenting on deleted section not handled nicely #105

Open reitzig opened 3 years ago

reitzig commented 3 years ago

We can leave comments on deleted sections:

image (note the redundant gutter icons; I'm getting up to four --> separate bug?)

GitLab itself doesn't seem to handle that all too well:

image

The plugin receives a 500 -- despite the comment being created! -- resulting in:

java.lang.RuntimeException: net.ntworld.mergeRequestIntegration.provider.ProviderException: 500 Internal Server Error
    at com.intellij.util.ExceptionUtil.rethrow(ExceptionUtil.java:116)
    at com.intellij.util.EventDispatcher.throwExceptions(EventDispatcher.java:158)
    at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:131)
    at com.intellij.util.EventDispatcher.lambda$createMulticaster$1(EventDispatcher.java:86)
    at com.sun.proxy.$Proxy201.onCreateCommentRequested(Unknown Source)
    at net.ntworld.mergeRequestIntegrationIde.diff.AbstractDiffView$myThreadPresenterEventListener$1.onCreateCommentRequested(AbstractDiffView.kt:68)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:123)
    at com.intellij.util.EventDispatcher.lambda$createMulticaster$1(EventDispatcher.java:86)
    at com.sun.proxy.$Proxy239.onCreateCommentRequested(Unknown Source)
    at net.ntworld.mergeRequestIntegrationIde.component.thread.ThreadPresenterImpl$myThreadViewActionListener$1.onCreateCommentRequested(ThreadPresenterImpl.kt:33)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:123)
    at com.intellij.util.EventDispatcher.lambda$createMulticaster$1(EventDispatcher.java:86)
    at com.sun.proxy.$Proxy238.onCreateCommentRequested(Unknown Source)
    at net.ntworld.mergeRequestIntegrationIde.component.thread.ThreadViewImpl$myEditorComponentEventListener$1.onSubmitClicked(ThreadViewImpl.kt:101)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:123)
    at com.intellij.util.EventDispatcher.lambda$createMulticaster$1(EventDispatcher.java:86)
    at com.sun.proxy.$Proxy235.onSubmitClicked(Unknown Source)
    at net.ntworld.mergeRequestIntegrationIde.component.comment.EditorComponentImpl$MyAddCommentAction.actionPerformed(EditorComponentImpl.kt:69)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:282)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:276)
    at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:182)
    at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:155)
    at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:439)
    at java.desktop/java.awt.Component.processEvent(Component.java:6419)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:971)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:906)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:838)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:452)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:451)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:505)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: net.ntworld.mergeRequestIntegration.provider.ProviderException: 500 Internal Server Error
    at net.ntworld.mergeRequestIntegrationIde.diff.DiffPresenterImpl$onCreateCommentRequested$1.invoke(DiffPresenterImpl.kt:158)
    at net.ntworld.mergeRequestIntegrationIde.diff.DiffPresenterImpl$onCreateCommentRequested$1.invoke(DiffPresenterImpl.kt:34)
    at net.ntworld.foundation.internal.ServiceBusProcessResultImpl.ifError(ServiceBusProcessResultImpl.kt:18)
    at net.ntworld.mergeRequestIntegrationIde.diff.DiffPresenterImpl.onCreateCommentRequested(DiffPresenterImpl.kt:153)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:123)
    ... 68 more

As hinted at by above screenshots, the comment "popup" seems to indicate the comment wasn't created, when in fact it was!