gitbito / bitoai

Bito’s AI helps developers dramatically accelerate their impact. It’s a Swiss Army knife of capabilities that can 10x your developer productivity and save you an hour a day, using the same models as ChatGPT!
http://www.bito.ai
Other
279 stars 17 forks source link

Bug in CLion: java.lang.AssertionError: 1474 (class com.intellij.openapi.editor.impl.RangeHighlighterTree); this: 15149(class com.intellij.openapi.editor.impl.RangeHighlighterTree) #185

Closed Algomorph closed 6 months ago

Algomorph commented 6 months ago

Seems to be related to code completion hints, i.e. popped up while I was just editing a file. Specifically, I was editing a TODO just above a non-const existing class private member variable, not sure if that helps narrow it down.

    // ==== settings // TODO: maybe figure out how to make `settings` `const` again?
    SettingsType settings;

Here is the complete stack trace:

java.lang.AssertionError: 1474 (class com.intellij.openapi.editor.impl.RangeHighlighterTree); this: 15149(class com.intellij.openapi.editor.impl.RangeHighlighterTree)
    at com.intellij.openapi.editor.impl.IntervalTreeImpl.checkBelongsToTheTree(IntervalTreeImpl.java:938)
    at com.intellij.openapi.editor.impl.IntervalTreeImpl.removeInterval(IntervalTreeImpl.java:969)
    at com.intellij.openapi.editor.impl.MarkupModelImpl.removeHighlighter(MarkupModelImpl.java:197)
    at co.bito.intellij.completion.popup.UIChangeListener.stateChanged(UIChangeListener.kt:46)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:700)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:660)
    at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:423)
    at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:402)
    at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:461)
    at jdk.proxy3/jdk.proxy3.$Proxy247.stateChanged(Unknown Source)
    at co.bito.intellij.completion.popup.PopupManager.changeStates(PopupManager.kt:160)
    at co.bito.intellij.completion.popup.PopupManager.changeStates$default(PopupManager.kt:96)
    at co.bito.intellij.completion.popup.PopupManager$addMessageSubscribers$1.type(PopupManager.kt:458)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:700)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:660)
    at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:423)
    at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:402)
    at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:461)
    at jdk.proxy3/jdk.proxy3.$Proxy249.type(Unknown Source)
    at co.bito.intellij.completion.popup.handlers.PopupTypedHandler$execute$1.invoke(PopupTypedHandler.kt:19)
    at co.bito.intellij.completion.popup.handlers.PopupTypedHandler$execute$1.invoke(PopupTypedHandler.kt:15)
    at co.bito.intellij.completion.popup.PopupManager.dontClosePopupAndRun(PopupManager.kt:228)
    at co.bito.intellij.completion.popup.handlers.PopupTypedHandler.execute(PopupTypedHandler.kt:15)
    at co.bito.intellij.completion.popup.handlers.PopupTypedHandler$execute$1.invoke(PopupTypedHandler.kt:16)
    at co.bito.intellij.completion.popup.handlers.PopupTypedHandler$execute$1.invoke(PopupTypedHandler.kt:15)
    at co.bito.intellij.completion.popup.PopupManager.dontClosePopupAndRun(PopupManager.kt:228)
    at co.bito.intellij.completion.popup.handlers.PopupTypedHandler.execute(PopupTypedHandler.kt:15)
    at com.intellij.openapi.editor.actionSystem.TypedAction.lambda$actionPerformed$2(TypedAction.java:198)
    at com.intellij.reporting.FreezeLoggerImpl.runUnderPerformanceMonitor(FreezeLoggerImpl.java:28)
    at com.intellij.openapi.editor.actionSystem.TypedAction.actionPerformed(TypedAction.java:197)
    at com.intellij.openapi.editor.impl.EditorImpl.processKeyTypedNormally(EditorImpl.java:1325)
    at com.intellij.openapi.editor.impl.EditorImpl.processKeyTyped(EditorImpl.java:1307)
    at com.intellij.openapi.editor.impl.EditorImpl.processKeyTyped(EditorImpl.java:3621)
    at com.intellij.openapi.editor.impl.EditorImpl$6.keyTyped(EditorImpl.java:1139)
    at java.desktop/java.awt.AWTEventMulticaster.keyTyped(AWTEventMulticaster.java:247)
    at java.desktop/java.awt.AWTEventMulticaster.keyTyped(AWTEventMulticaster.java:247)
    at java.desktop/java.awt.AWTEventMulticaster.keyTyped(AWTEventMulticaster.java:247)
    at java.desktop/java.awt.Component.processKeyEvent(Component.java:6612)
    at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2892)
    at java.desktop/java.awt.Component.processEvent(Component.java:6434)
    at java.desktop/java.awt.Container.processEvent(Container.java:2266)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
    at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:886)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1166)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1023)
    at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:849)
    at com.intellij.ide.IdeKeyboardFocusManager.access$dispatchEvent$s1569605750(IdeKeyboardFocusManager.kt:18)
    at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$1.invoke(IdeKeyboardFocusManager.kt:25)
    at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$1.invoke(IdeKeyboardFocusManager.kt:25)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1014)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1014)
    at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.kt:25)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4904)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2809)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:794)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:766)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:764)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:763)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:695)
    at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.kt:623)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$11(IdeEventQueue.kt:581)
    at com.intellij.openapi.application.impl.RwLockHolder.runWithEnabledImplicitRead(RwLockHolder.kt:75)
    at com.intellij.openapi.application.impl.RwLockHolder.runWithImplicitRead(RwLockHolder.kt:67)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:581)
    at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:72)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:355)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:354)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:793)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:354)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:349)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1014)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1014)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:349)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:848)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:391)
    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)

Clion version info w/ Bito version number:

CLion 2023.3.4
Build #CL-233.14475.31, built on February 13, 2024
Licensed to Presage Security, Inc / Gregory Kramida
Subscription is active until November 19, 2024.
Runtime version: 17.0.10+1-b1087.17 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Linux 6.5.0-18-generic
GC: G1 Young Generation, G1 Old Generation
Memory: 8192M
Cores: 32
Registry:
  debugger.attach.dialog.enabled=true
  run.processes.with.pty=TRUE
  ide.experimental.ui=true
Non-Bundled Plugins:
  idea.plugin.protoeditor (233.13135.65)
  dev.meanmail.plugin.nginx-intellij-plugin (2022.1.1)
  A move tab left and right using the keyboard plugin - by momomo.com (12.550)
  co.bito.bito-intellij (1.2.7)
  com.mikejhill.intellij.movetab (2.1.1)
  ru.adelf.idea.dotenv (2023.3)
  kemoke.net.cssmodule (1.1)
  com.haulmont.rcb (233.13135.65)
  com.google.idea.bazel.clwb (2023.11.23.0.1-api-version-233)
Current Desktop: ubuntu:GNOME
Algomorph commented 6 months ago

Just now tried to reproduce, same file, same lines -- after inserting a line break between the // ==== settings comment and the TODO:

java.lang.IllegalArgumentException: Count 'n' must be non-negative, but was -3.
    at kotlin.text.StringsKt__StringsJVMKt.repeat(StringsJVM.kt:795)
    at co.bito.intellij.completion.popup.handlers.PopupBackspaceHandler$doExecute$1.invoke(PopupBackspaceHandler.kt:21)
    at co.bito.intellij.completion.popup.handlers.PopupBackspaceHandler$doExecute$1.invoke(PopupBackspaceHandler.kt:17)
    at co.bito.intellij.completion.popup.PopupManager.dontClosePopupAndRun(PopupManager.kt:228)
    at co.bito.intellij.completion.popup.handlers.PopupBackspaceHandler.doExecute(PopupBackspaceHandler.kt:17)
    at com.intellij.openapi.editor.actionSystem.EditorActionHandler.lambda$execute$4(EditorActionHandler.java:199)
    at com.intellij.openapi.editor.actionSystem.EditorActionHandler.doIfEnabled(EditorActionHandler.java:89)
    at com.intellij.openapi.editor.actionSystem.EditorActionHandler.execute(EditorActionHandler.java:198)
    at com.intellij.openapi.editor.actionSystem.EditorAction.lambda$actionPerformed$0(EditorAction.java:92)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:225)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:177)
    at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:101)
    at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:77)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:344)
    at com.intellij.openapi.keymap.impl.ActionProcessor.performAction(ActionProcessor.java:32)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$myActionProcessor$1.performAction(IdeKeyEventDispatcher.kt:496)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.doPerformActionInner$lambda$4$lambda$3(IdeKeyEventDispatcher.kt:831)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:95)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.doPerformActionInner$lambda$4(IdeKeyEventDispatcher.kt:831)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:381)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.doPerformActionInner(IdeKeyEventDispatcher.kt:829)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcherKt.access$doPerformActionInner(IdeKeyEventDispatcher.kt:1)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction$intellij_platform_ide_impl(IdeKeyEventDispatcher.kt:559)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.kt:509)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.kt:448)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.kt:441)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.kt:303)
    at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.kt:620)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$11(IdeEventQueue.kt:581)
    at com.intellij.openapi.application.impl.RwLockHolder.runWithEnabledImplicitRead(RwLockHolder.kt:75)
    at com.intellij.openapi.application.impl.RwLockHolder.runWithImplicitRead(RwLockHolder.kt:67)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:581)
    at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:72)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:355)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:354)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:793)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:354)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:349)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1014)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1014)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:349)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:848)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:391)
    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)
bitoandy commented 6 months ago

Thanks @Algomorph for reporting this. We are looking into this issue and will keep you posted both on the issue and the fix.

mayanksingh0307 commented 6 months ago

Hello @Algomorph ,

I wanted to let you know that the issue you mentioned (java.lang.IllegalArgumentException: Count 'n' must be non-negative, but was -3.) has been addressed in the latest version (1.2.8) of the app, which is now available in the marketplace. Could you kindly update your app to this newest version and see if the problem persists? If you continue to face the same issue, please share the IDEA logs with us. This will allow us to gain a deeper understanding of the problem and assist you more effectively.

Thank you very much for your cooperation and understanding.

Algomorph commented 6 months ago

@mayanksingh0307 thanks for getting back, I have upgraded since reporting the issue.

I'm not sure that the java.lang.AssertionError: 1474 (class com.intellij.openapi.editor.impl.RangeHighlighterTree); this: 15149(class com.intellij.openapi.editor.impl.RangeHighlighterTree) issue is still there or not, let me know if I can assist in diagnosing.

I have seen other bugs pop up with the new version, I'll keep submitting reports like this one if you prefer -- but I can't guarantee I'll always have time to help you replicate.

As an aside, I'm trying out the Bito code suggestions right now, but I might switch back to Codeium for that specific feature to continue comparing. So far, the latter seems a little easier easier to use / fells like it plays better with JetBrains products, as well as offering better suggestions -- which I'm hoping might be a matter of training / tuning on my own code for Bito.

mayanksingh0307 commented 6 months ago

@Algomorph Thank you so much for sharing your thoughts and feedback with us. We value the effort you've put into sending us bug reports, and we understand how precious your time is. Your input plays a crucial role in helping us make improvements and ensure that we're offering the best experience possible to our users.

It's great to hear that you're trying out the code suggestions feature in Bito. Our goal isn't just to keep up the quality of what we already offer, but also to keep bringing in new features that can make a difference in your coding work. We're thrilled to let you know that we're currently developing some exciting new features aimed at understanding your code in a deeper way, which will allow us to give you more personalized and accurate suggestions based on how you code.

Let us know if you have any more feedback or if there's anything specific that's been bothering you about your experience.

Algomorph commented 6 months ago

@mayanksingh0307, here is a thought: CLion and other JetBrains IDEs already make very powerful suggestions based on static typing or type hinting for the languages that support those. I highly recommend integrating the existing suggestions into your system, whether on a surface level or even to help train the model.

Aside: I confirm that I wasn't able to replicate the java.lang.IllegalArgumentException: Count 'n' must be non-negative, but was -3. issue in the same context as before on the newer version.

mayanksingh0307 commented 6 months ago

Thank you @Algomorph for the suggestion we will look into it.

Closing this ticket now as the issue is resolved in the new version 1.2.8