beansoft / visualgc_java8

Visualgc patch for Java 8+ and visualgc for IDEA
BSD 3-Clause "New" or "Revised" License
25 stars 5 forks source link

IntelliJ IDEA: java.lang.NullPointerException in the background #4

Closed petr-nehez closed 2 years ago

petr-nehez commented 3 years ago

I only noticed it in IDEA's status line.

java.lang.NullPointerException
    at java.base/java.util.ResourceBundle.containsKey(ResourceBundle.java:2302)
    at com.github.beansoft.devkit.javadoc.JavaDocBundle.containsKey(JavaDocBundle.java:22)
    at com.github.beansoft.devkit.javadoc.JdcrFoldingBuilder.replaceAnnotation(JdcrFoldingBuilder.java:167)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
    at com.github.beansoft.devkit.javadoc.JdcrFoldingBuilder.buildFoldRegions(JdcrFoldingBuilder.java:43)
    at com.intellij.lang.folding.LanguageFolding.buildFoldingDescriptorsNoPlaceholderCaching(LanguageFolding.java:99)
    at com.intellij.lang.folding.CompositeFoldingBuilder.buildFoldRegions(CompositeFoldingBuilder.java:37)
    at com.intellij.lang.folding.LanguageFolding.buildFoldingDescriptorsNoPlaceholderCaching(LanguageFolding.java:92)
    at com.intellij.lang.folding.LanguageFolding.buildFoldingDescriptors(LanguageFolding.java:75)
    at com.intellij.codeInsight.folding.impl.FoldingUpdate.getFoldingsFor(FoldingUpdate.java:267)
    at com.intellij.codeInsight.folding.impl.FoldingUpdate.getFoldingsFor(FoldingUpdate.java:233)
    at com.intellij.codeInsight.folding.impl.FoldingUpdate.getUpdateResult(FoldingUpdate.java:87)
    at com.intellij.codeInsight.folding.impl.FoldingUpdate.lambda$updateFoldRegions$0(FoldingUpdate.java:76)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:78)
    at com.intellij.codeInsight.folding.impl.FoldingUpdate.updateFoldRegions(FoldingUpdate.java:73)
    at com.intellij.codeInsight.folding.impl.CodeFoldingManagerImpl.updateFoldRegions(CodeFoldingManagerImpl.java:221)
    at com.intellij.codeInsight.folding.impl.CodeFoldingManagerImpl.updateFoldRegionsAsync(CodeFoldingManagerImpl.java:207)
    at com.intellij.codeInsight.daemon.impl.CodeFoldingPass.doCollectInformation(CodeFoldingPass.java:42)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:56)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:400)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1137)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:393)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:392)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:368)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:172)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:183)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:366)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:188)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

IntelliJ IDEA 2020.3.2 (Ultimate Edition) Build #IU-203.7148.57, built on January 26, 2021 Subscription is active until November 28, 2021. Runtime version: 11.0.9.1+11-b1250.2 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Linux 4.18.0-240.15.1.el8_3.x86_64 GC: ParNew, ConcurrentMarkSweep Memory: 7416M Cores: 12 Registry: documentation.show.toolbar=true, ide.tree.collapse.recursively=false, ide.balloon.shadow.size=0 Non-Bundled Plugins: Batch Scripts Support, Key Promoter X, ch.raffael.idea.plugins.runpopup, com.intellij.ideolog, com.intellij.javafx, com.intellij.nativeDebug, com.jetbrains.ChooseRuntime, com.jetbrains.CyanTheme, com.intellij.plugins.watcher, com.wix.sasslint, com.kite.intellij, com.layoutmanager, com.tabnine.TabNine, de.ehmkah.projects.imgdiff, hunspell, net.seesharpsoft.intellij.plugins.csv, net.seesharpsoft.intellij.plugins.file-preview, com.majera.intellij.codereview.bitbucket, mobi.hsz.idea.gitignore, name.kropp.intellij.makefile, org.zalando.intellij.swagger, CheckStyle-IDEA, EclipseCodeFormatter, GrepConsole, String Manipulation, com.github.setial, com.jetbrains.codeWithMe, org.sonarlint.idea, com.kukido.eclipser, com.github.beansoft.devkit.helper, com.github.shiraji.emoji, com.jetbrains.lang.ejs, com.codota.csp.intellij, org.jetbrains.kotlin, zielu.gittoolbox, com.intellij.plugins.html.instantEditing, org.intellij.scala, izhangzhihao.rainbow.brackets, pro.bashsupport, org.asciidoctor.intellij.asciidoc Current Desktop: GNOME

f1ynn-zhan9 commented 2 years ago

I've got the same null point exception with different stack trace:

java.lang.NullPointerException
    at github.beansoftapp.visualgc.JpsHelper.getFirstArgument(JpsHelper.java:251)
    at github.beansoftapp.visualgc.JpsHelper.getMainClass(JpsHelper.java:160)
    at github.beansoftapp.visualgc.JpsHelper.getJvmPSList(JpsHelper.java:79)
    at com.sun.jvmstat.tools.visualgc.VisualGCPane$PsListModel.actionPerformed(VisualGCPane.java:575)
    at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
    at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
    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:885)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:754)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:441)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:440)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
    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)

IDE info:

IntelliJ IDEA 2021.2.3 (Ultimate Edition) Build #IU-212.5457.46, built on October 12, 2021 Runtime version: 11.0.12+7-b1504.40 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 10 10.0 GC: G1 Young Generation, G1 Old Generation Memory: 1536M Cores: 6 Registry: documentation.show.toolbar=true, ide.balloon.shadow.size=0 Non-Bundled Plugins: org.toml.lang (0.2.155.4114-212), indent-rainbow.indent-rainbow (1.7.0), io.ajab.timestamp-generator-plugin (0.1.4), Shifter (1.9.6), com.khmelyuk.multirun (1.13), Batch Scripts Support (1.0.12), net.seesharpsoft.intellij.plugins.file-preview (1.6.4), net.vektah.codeglance (1.5.4), com.intellij.nativeDebug (212.5284.19), mobi.hsz.idea.gitignore (4.3.0), com.intellij.guice (212.5080.8), com.bruce.intellijplugin.generatesetter (2.8), String Manipulation (8.22.203.000.1), zielu.gittoolbox (212.8.1), GrepConsole (12.1.211.6086.0), com.github.leomillon.uuidgenerator (4.5.1), com.github.lppedd.idea-conventional-commit (0.19.0), ru.adelf.idea.dotenv (2021.3.0.212), com.intellij.kubernetes (212.5457.4), com.intellij.plugins.watcher (212.5080.8), com.intellij.selenium (212.5457.18), org.sonarlint.idea (6.3.0.39716), MavenRunHelper (4.18.212.000.3), com.alibabacloud.intellij.toolkit-intellij (2021.11.1-212), com.github.beansoftapp.visualgc.plugin (1.0.3), com.intellij.javafx (1.0.3), com.haulmont.jpab (5.8-212), org.intellij.scala (2021.2.24), com.intellij.plugins.html.instantEditing (212.4746.57), JRebelPlugin (2021.4.1), jr-mp-ide-idea (0.0.4), JProfiler (19.3), com.ccnode.codegenerator.MyBatisCodeHelperPro (2.9.6-183-204), izhangzhihao.rainbow.brackets (6.21) Kotlin: 212-1.6.0-release-799-IJ5457.46

beansoft commented 2 years ago

I'll take a look, seems something wrong when try to get the main class name from java process.

beansoft commented 2 years ago

Fixed, please download and install it to try first: https://plugins.jetbrains.com/plugin/download?rel=true&updateId=147141

petr-nehez commented 2 years ago

Thanks, installed and will monitor it :)

petr-nehez commented 2 years ago

Not yet...

java.lang.NullPointerException
    at github.beansoftapp.visualgc.JpsHelper.getVmStringValue(JpsHelper.java:225)
    at github.beansoftapp.visualgc.JpsHelper.getCommandLine(JpsHelper.java:197)
    at github.beansoftapp.visualgc.JpsHelper.getFirstArgument(JpsHelper.java:247)
    at github.beansoftapp.visualgc.JpsHelper.getMainClass(JpsHelper.java:160)
    at github.beansoftapp.visualgc.JpsHelper.getJvmPSList(JpsHelper.java:79)
    at com.sun.jvmstat.tools.visualgc.VisualGCPane$PsListModel.actionPerformed(VisualGCPane.java:588)
    at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
    at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
    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:885)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:754)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:441)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:440)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
    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)
beansoft commented 2 years ago

Hi, i've found this issue still there on my Mac this weekend, so I fixed it and verified. and a new fix is just approved by Jetbrains 2 hours ago, please update the VisualGC plugin to have a try.