AntoniRokitnicki / AdvancedExpressionFolding

Advanced Java Folding 2 ​(Fork)​
https://plugins.jetbrains.com/plugin/23659-advanced-java-folding-2-fork-
Apache License 2.0
7 stars 2 forks source link

Incorrect CachedValue use: same CV with different captured context, this can cause unstable results and invalid PSI access. #8

Closed AntoniRokitnicki closed 8 months ago

AntoniRokitnicki commented 8 months ago

com.intellij.diagnostic.PluginException: Incorrect CachedValue use: same CV with different captured context, this can cause unstable results and invalid PSI access. Field arg$2 in class com.intellij.advancedExpressionFolding.AdvancedExpressionFoldingBuilder$$Lambda$3514/0x0000000801865610 has non-equivalent values: DocumentImpl[file:///Users/ant/IdeaProjects/untitled/src/ElvisTestData.java] (com.intellij.openapi.editor.impl.DocumentImpl) and DocumentImpl[file:///Users/ant/IdeaProjects/untitled/src/SimpleOptionalTestData.java] (com.intellij.openapi.editor.impl.DocumentImpl) Either makeequals()` hold for these values, or avoid this dependency, e.g. by extracting CV provider into a static method. [Plugin: com.intellij.bigdecimal-folding2] at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23) at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:83) at com.intellij.diagnostic.PluginException.logPluginError(PluginException.java:100) at com.intellij.util.CachedValueStabilityChecker.complain(CachedValueStabilityChecker.java:164) at com.intellij.util.CachedValueStabilityChecker.checkFieldEquivalence(CachedValueStabilityChecker.java:131) at com.intellij.util.CachedValueStabilityChecker.checkFieldEquivalence(CachedValueStabilityChecker.java:127) at com.intellij.util.CachedValueStabilityChecker.checkProvidersEquivalent(CachedValueStabilityChecker.java:83) at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:67) at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:155) at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:121) at com.intellij.advancedExpressionFolding.AdvancedExpressionFoldingBuilder.getExpression(AdvancedExpressionFoldingBuilder.java:353) at com.intellij.advancedExpressionFolding.AdvancedExpressionFoldingBuilder.getNonSyntheticExpression(AdvancedExpressionFoldingBuilder.java:372) at com.intellij.advancedExpressionFolding.AdvancedExpressionFoldingHighlightingComponent.findHighlightingExpression(AdvancedExpressionFoldingHighlightingComponent.java:168) at com.intellij.advancedExpressionFolding.AdvancedExpressionFoldingHighlightingComponent.mouseMoved(AdvancedExpressionFoldingHighlightingComponent.java:262) at jdk.internal.reflect.GeneratedMethodAccessor130.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.$Proxy95.mouseMoved(Unknown Source) at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:4495) at java.desktop/java.awt.Component.processMouseMotionEvent(Component.java:6702) at java.desktop/javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3403) at java.desktop/java.awt.Component.processEvent(Component.java:6426) 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.LightweightDispatcher.retargetMouseEvent(Container.java:4969) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4596) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4524) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) 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.java:909) at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787) 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:838) 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)

`

AntoniRokitnicki commented 8 months ago

fixed in https://github.com/AntoniRokitnicki/AdvancedExpressionFolding/pull/9

AntoniRokitnicki commented 8 months ago

its back sometimes as com.intellij.diagnostic.PluginException: Incorrect CachedValue use: same CV with different captured context, this can cause unstable results and invalid PSI access. Field arg$3 in class com.intellij.advancedExpressionFolding.AdvancedExpressionFoldingBuilder$$Lambda$4190/0x00000008016257a0 has non-equivalent values: false (java.lang.Boolean) and true (java.lang.Boolean) Either makeequals()hold for these values, or avoid this dependency, e.g. by extracting CV provider into a static method. [Plugin: com.intellij.bigdecimal-folding2]

because of wrong cache key

AntoniRokitnicki commented 8 months ago

fixed in https://github.com/AntoniRokitnicki/AdvancedExpressionFolding/pull/20