Code coverage tab no longer produces results

Issue #2090 resolved
Luke Kozakewycz created an issue

I just get the following. I am able to run the tests, but don’t get any coverage details. I can export the coverage into a HTML file and it works fine.

(This has been “loading” for nearly an hour - I’m definitely convinced it’s crashed)

IDEA: 2022.1
IC: 2.2.1.6

2022-04-22 13:17:16,363 [9521877] SEVERE - #c.i.i.p.PluginManager - IntelliJ IDEA 2022.1  Build #IU-221.5080.210
2022-04-22 13:17:16,363 [9521877] SEVERE - #c.i.i.p.PluginManager - JDK: 11.0.14.1; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2022-04-22 13:17:16,363 [9521877] SEVERE - #c.i.i.p.PluginManager - OS: Windows 10
2022-04-22 13:17:16,363 [9521877] SEVERE - #c.i.i.p.PluginManager - Plugin to blame: Illuminated Cloud 2 version: 2.2.1.6
2022-04-22 13:17:32,496 [9538010] SEVERE - #c.i.i.p.PluginManager - class com.illuminatedcloud.intellij.coverage.IlluminatedCloudConnectionTreeNode cannot be cast to class com.illuminatedcloud.intellij.coverage.ApexCoverageTreeNode (com.illuminatedcloud.intellij.coverage.IlluminatedCloudConnectionTreeNode and com.illuminatedcloud.intellij.coverage.ApexCoverageTreeNode are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @49ed6c22)
java.lang.ClassCastException: class com.illuminatedcloud.intellij.coverage.IlluminatedCloudConnectionTreeNode cannot be cast to class com.illuminatedcloud.intellij.coverage.ApexCoverageTreeNode (com.illuminatedcloud.intellij.coverage.IlluminatedCloudConnectionTreeNode and com.illuminatedcloud.intellij.coverage.ApexCoverageTreeNode are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @49ed6c22)
    at com.illuminatedcloud.intellij.coverage.PercentageColumnInfo.valueOf(SourceFile:12)
    at com.intellij.coverage.view.CoverageTableModel.getValueAt(CoverageTableModel.java:119)
    at com.intellij.ui.treeStructure.treetable.TreeTableModelAdapter.getValueAt(TreeTableModelAdapter.java:126)
    at java.desktop/javax.swing.JTable.getValueAt(JTable.java:2706)
    at java.desktop/javax.swing.JTable.prepareRenderer(JTable.java:5723)
    at com.intellij.ui.table.JBTable.prepareRenderer(JBTable.java:700)
    at java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2185)
    at java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2087)
    at java.desktop/javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1883)
    at java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
    at java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:800)
    at com.intellij.ui.table.JBTable.paintComponent(JBTable.java:417)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1077)
    at com.intellij.ui.table.JBTable.paint(JBTable.java:547)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:910)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1086)
    at java.desktop/javax.swing.JViewport.paint(JViewport.java:737)
    at com.intellij.ui.components.JBViewport.paint(JBViewport.java:235)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:910)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1086)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:910)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1086)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:910)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1086)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:910)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1086)
    at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5263)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1654)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1629)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1566)
    at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1333)
    at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5211)
    at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5021)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:868)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:851)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:851)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:826)
    at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:775)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1901)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
    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.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:803)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:119)
    at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:479)
    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.pumpEventsForFilter(EventDispatchThread.java:121)
    at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:702)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:439)
    at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1668)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1626)
    at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1640)
    at com.intellij.ide.actions.DebugLogConfigureAction.actionPerformed(DebugLogConfigureAction.kt:25)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:235)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:256)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:235)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$performAction$0(ActionMenuItem.java:289)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:233)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.performAction(ActionMenuItem.java:281)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:296)
    at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$2(ActionMenuItem.java:111)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:95)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:540)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:570)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
    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:2793)
    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:898)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:743)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:803)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:119)
    at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
    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)
2022-04-22 13:17:32,498 [9538012] SEVERE - #c.i.i.p.PluginManager - IntelliJ IDEA 2022.1  Build #IU-221.5080.210
2022-04-22 13:17:32,498 [9538012] SEVERE - #c.i.i.p.PluginManager - JDK: 11.0.14.1; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2022-04-22 13:17:32,498 [9538012] SEVERE - #c.i.i.p.PluginManager - OS: Windows 10
2022-04-22 13:17:32,498 [9538012] SEVERE - #c.i.i.p.PluginManager - Plugin to blame: Illuminated Cloud 2 version: 2.2.1.6
2022-04-22 13:17:46,515 [9552029]   INFO - #c.i.i.a.RevealFileAction - Exit code 1

Official response

  • Scott Wells repo owner

    Ah, I see what's going on. Prior to 2022.1 (all the way back to IntelliJ IDEA 12), the root node isn't displayed in the coverage view, but starting in 2022.1 it is:

    Pre-2022.1

    Coverage_Pre_2022_1.png

    2022.1

    Coverage_2022_1.png

    One of the tree cell renderers wasn't expecting the root node type because it had never been displayed. As is evident from the screenshot above, I've already implemented the fix. I'll run through the patch release pipeline and get a new build out shortly.

Comments (10)

  1. Scott Wells repo owner

    Yeah, I see this as well. Looks like something with 2022.1. Should hopefully be pretty simple to fix in which case I'll get a patch out this morning. Thanks for reporting and sorry for the issue!

  2. Luke Kozakewycz reporter

    2022.1 has been pretty buggy for me so far. Get all sorts of weird UI issues. Hope they manage to clear things up a bit soon.

    Thanks Scott!

  3. Scott Wells repo owner

    What other types of issues are you seeing with it? I've been using it as a daily driver and this is the first major functional issue I've seen reported. I'd definitely like to know about other things as undoubtedly if you're seeing issues, others are as well. That will give me an opportunity to either address them myself or make sure they're reported properly to JetBrains.

  4. Luke Kozakewycz reporter

    It’s mainly different ways of moving tabs/windows within the UI and also across different screens that can often cause it bug out. I would start dragging tabs/windows around only it for it go blank/duplicate the screen. I have to exit the app or even sometimes do a full restart if it gets super bad. It never did it before the latest release.

    This would happen consistently on the code coverage side of stuff so it does make me wonder if IDEA mishandles exceptions in the IC plugin and causes the whole thing to crash.

  5. Scott Wells repo owner

    Okay. I just about have a fix ready for the coverage view. They changed something in the type hierarchy there in 2022.1 such that everything still builds and runs fine, but there's a deferred exception due to that hierarchy change. Let's see how much of what you're seeing is addressed by that issue being resolved.

  6. Scott Wells repo owner

    Ah, I see what's going on. Prior to 2022.1 (all the way back to IntelliJ IDEA 12), the root node isn't displayed in the coverage view, but starting in 2022.1 it is:

    Pre-2022.1

    Coverage_Pre_2022_1.png

    2022.1

    Coverage_2022_1.png

    One of the tree cell renderers wasn't expecting the root node type because it had never been displayed. As is evident from the screenshot above, I've already implemented the fix. I'll run through the patch release pipeline and get a new build out shortly.

  7. Luke Kozakewycz reporter

    That explains why it functioned correctly and it was purely a UI issue!
    Awesome - thanks Scott. 😁

  8. Log in to comment