zielu / GitToolBox

GitToolBox IntelliJ plugin
GNU General Public License v3.0
604 stars 71 forks source link

[BUG] Exception while in the injected language window, rename field #437

Closed gberche-orange closed 1 year ago

gberche-orange commented 1 year ago

Describe the bug

while in the injected language window and hitting the refactor rename field, this exception triggers

To Reproduce

Steps to reproduce the behavior:

Edit the following file with the K8S plugin

apiVersion: kuttl.dev/v1beta1
kind: TestStep
commands:
  #! See https://kuttl.dev/docs/testing/steps.html#running-commands for details of variable expansion
  #! > The $ in the command signifies the need for an expansion. If you have a need to use $ without expansion, 
  #! >  you will need to escape it by expressing $$ which will result in 1 $ when the command runs.
  - script: |
      set -x  
      EXPECTED_SECRET=kuttl-medium-mysql-instance

      # $1: field name (e.f. "host"
      function assert_non_empty_secret_field() {
          FIELD_NAME=$1
          HOST_VALUE=$(kubectl get secrets/${EXPECTED_SECRET} -n "$NAMESPACE" -o jsonpath='{.data.host}' | base64 --decode)
          if [ -z "${HOST_VALUE}" ]; then
              echo "missing host value"
              exit 1
          else
              echo "host is: ${HOST_VALUE}"
          fi

      }
      HOST_VALUE=$(kubectl get secrets/${EXPECTED_SECRET} -n "$NAMESPACE" -o jsonpath='{.data.host}' | base64 --decode)
      if [ -z "${HOST_VALUE}" ]; then
          echo "missing host value"
          exit 1
      else
          echo "host is: ${HOST_VALUE}"
      fi
      PASSWORD_VALUE=$(kubectl get secrets/${EXPECTED_SECRET} -n "$NAMESPACE" -o jsonpath='{.data.password}' | base64 --decode)
      if [ -z "${PASSWORD_VALUE}" ]; then
          echo "missing password value"
          exit 1
      else
          echo "password is: ${PASSWORD_VALUE}"
      fi
  1. Edit shell fragment

image

  1. Rename field

image

Expected behavior

Nothing related to git tool box

Observed behavior

The window closes an gittoolbox expection appears in notifs

Plugin version Exact plugin version. Eg. 212.8.4

IDE version Exact IDE and OS. You can use About > Copy 2022.3 Build #IU-223.7571.182, built on November 29, 2022

stack trace

image

com.intellij.openapi.editor.impl.DocumentImpl$UnexpectedBulkUpdateStateException: Current operation is not permitted in bulk mode, see Document.isInBulkUpdate() javadoc
    at com.intellij.openapi.editor.impl.DocumentImpl.assertNotInBulkUpdate(DocumentImpl.java:1232)
    at com.intellij.openapi.editor.impl.view.EditorView.assertNotInBulkMode(EditorView.java:739)
    at com.intellij.openapi.editor.impl.view.EditorView.logicalToVisualPosition(EditorView.java:184)
    at com.intellij.openapi.editor.impl.EditorImpl.logicalToVisualPosition(EditorImpl.java:2300)
    at com.intellij.openapi.editor.impl.CaretImpl.updateCachedState(CaretImpl.java:1474)
    at com.intellij.openapi.editor.impl.CaretImpl.updateCachedStateIfNeeded(CaretImpl.java:1466)
    at com.intellij.openapi.editor.impl.CaretImpl.getLogicalPosition(CaretImpl.java:644)
    at com.intellij.openapi.editor.CaretModel.getLogicalPosition(CaretModel.java:112)
    at zielu.gittoolbox.E.G.a(SourceFile:83)
    at zielu.gittoolbox.E.F.a(SourceFile)
    at zielu.gittoolbox.E.k.b.a(SourceFile:173)
    at zielu.gittoolbox.E.k.b.e(SourceFile:167)
    at zielu.gittoolbox.E.k.c.caretPositionChanged(SourceFile:46)
    at jdk.internal.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:120)
    at com.intellij.util.EventDispatcher.lambda$createMulticaster$1(EventDispatcher.java:85)
    at jdk.proxy2/jdk.proxy2.$Proxy94.caretPositionChanged(Unknown Source)
    at jdk.internal.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:120)
    at com.intellij.util.EventDispatcher.lambda$createMulticaster$1(EventDispatcher.java:85)
    at jdk.proxy2/jdk.proxy2.$Proxy94.caretPositionChanged(Unknown Source)
    at com.intellij.openapi.editor.impl.CaretModelImpl.fireCaretPositionChanged(CaretModelImpl.java:543)
    at com.intellij.openapi.editor.impl.CaretImpl.lambda$moveToOffset$0(CaretImpl.java:127)
    at com.intellij.openapi.editor.impl.CaretModelImpl.doWithCaretMerging(CaretModelImpl.java:419)
    at com.intellij.openapi.editor.impl.CaretImpl.moveToOffset(CaretImpl.java:104)
    at com.intellij.openapi.editor.CaretModel.moveToOffset(CaretModel.java:91)
    at com.intellij.openapi.editor.CaretModel.moveToOffset(CaretModel.java:77)
    at com.intellij.psi.impl.source.tree.injected.changesHandler.IndentAwareInjectedFileChangesHandler.commitToOriginal(IndentAwareInjectedFileChangesHandler.kt:77)
    at com.intellij.codeInsight.intention.impl.QuickEditHandler.lambda$commitToOriginal$10(QuickEditHandler.java:336)
    at com.intellij.psi.impl.source.PostprocessReformattingAspect.lambda$disablePostprocessFormattingInside$1(PostprocessReformattingAspect.java:122)
    at com.intellij.psi.impl.source.PostprocessReformattingAspect.disablePostprocessFormattingInside(PostprocessReformattingAspect.java:130)
    at com.intellij.psi.impl.source.PostprocessReformattingAspect.disablePostprocessFormattingInside(PostprocessReformattingAspect.java:121)
    at com.intellij.codeInsight.intention.impl.QuickEditHandler.commitToOriginal(QuickEditHandler.java:336)
    at com.intellij.codeInsight.intention.impl.QuickEditHandler.documentChanged(QuickEditHandler.java:272)
    at com.intellij.openapi.editor.impl.DocumentImpl.lambda$changedUpdate$2(DocumentImpl.java:922)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:226)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:666)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:622)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$4(CoreProgressManager.java:234)
    at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:234)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:225)
    at com.intellij.openapi.editor.impl.DocumentImpl.changedUpdate(DocumentImpl.java:919)
    at com.intellij.openapi.editor.impl.DocumentImpl.updateText(DocumentImpl.java:823)
    at com.intellij.openapi.editor.impl.DocumentImpl.deleteString(DocumentImpl.java:580)
    at com.intellij.codeInsight.template.TemplateBuilderImpl.lambda$initInlineTemplate$0(TemplateBuilderImpl.java:199)
    at com.intellij.util.DocumentUtil.executeInBulk(DocumentUtil.java:34)
    at com.intellij.codeInsight.template.TemplateBuilderImpl.initInlineTemplate(TemplateBuilderImpl.java:196)
    at com.intellij.codeInsight.template.TemplateBuilderImpl.buildInlineTemplate(TemplateBuilderImpl.java:185)
    at com.intellij.sh.rename.ShTextRenameRefactoring.startTemplate(ShTextRenameRefactoring.java:98)
    at com.intellij.sh.rename.ShTextRenameRefactoring.lambda$start$0(ShTextRenameRefactoring.java:81)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$1(WriteCommandAction.java:150)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:955)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$2(WriteCommandAction.java:148)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:219)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:184)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.doRunWriteCommandAction(WriteCommandAction.java:157)
    at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:124)
    at com.intellij.sh.rename.ShTextRenameRefactoring.start(ShTextRenameRefactoring.java:81)
    at com.intellij.sh.rename.ShRenameAllOccurrencesHandler.doExecute(ShRenameAllOccurrencesHandler.java:52)
    at com.intellij.openapi.editor.actionSystem.EditorActionHandler.execute(EditorActionHandler.java:202)
    at com.intellij.sh.rename.ShRenameHandler.invoke(ShRenameHandler.java:53)
    at com.intellij.refactoring.actions.BaseRefactoringAction.performRefactoringAction(BaseRefactoringAction.java:163)
    at com.intellij.refactoring.rename.RenameHandler2Renamer.lambda$performRename$0(RenameHandler2Renamer.java:38)
    at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:167)
    at com.intellij.refactoring.rename.RenameHandler2Renamer.performRename(RenameHandler2Renamer.java:36)
    at com.intellij.refactoring.actions.RenameElementAction.actionPerformed(RenameElementAction.java:85)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:323)
    at com.intellij.openapi.keymap.impl.ActionProcessor.performAction(ActionProcessor.java:47)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:584)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$doPerformActionInner$9(IdeKeyEventDispatcher.java:706)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$doPerformActionInner$10(IdeKeyEventDispatcher.java:706)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:346)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.doPerformActionInner(IdeKeyEventDispatcher.java:703)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:647)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:595)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.java:478)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:467)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:225)
    at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:815)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:750)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:774)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
    at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Screenshots If applicable, add screenshots to help explain your problem.

zielu commented 1 year ago

Done in Done in 213.10.4

gberche-orange commented 1 year ago

thanks @zielu !