AntonShuvaev / elasticsearch4idea

Elasticsearch Plugin for JetBrains IDEs
https://plugins.jetbrains.com/plugin/14512-elasticsearch
59 stars 8 forks source link

IllegalArgumentException in PyCharm Professional 2022.2.1 #85

Closed cakarlen closed 1 year ago

cakarlen commented 1 year ago

Receiving this error from the Elasticsearch plugin on the most recent stable releases of the plugin and IDE:

com.intellij.diagnostic.PluginException: Cannot init component state (componentName=GlobalElasticsearchConfiguration, componentClass=K) [Plugin: org.elasticsearch4idea]
    at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:148)
    at com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:48)
    at com.intellij.serviceContainer.ComponentManagerImpl.initializeComponent$intellij_platform_serviceContainer(ComponentManagerImpl.kt:535)
    at com.intellij.serviceContainer.ComponentManagerImpl.createLightService(ComponentManagerImpl.kt:828)
    at com.intellij.serviceContainer.ComponentManagerImpl.access$createLightService(ComponentManagerImpl.kt:55)
    at com.intellij.serviceContainer.ComponentManagerImpl$getOrCreateLightService$$inlined$synchronized$lambda$1.run(ComponentManagerImpl.kt:673)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:223)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:233)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:222)
    at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService(ComponentManagerImpl.kt:672)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:621)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:583)
    at com.intellij.openapi.client.ClientAwareComponentManager.getFromSelfOrCurrentSession(ClientAwareComponentManager.kt:37)
    at com.intellij.openapi.client.ClientAwareComponentManager.getService(ClientAwareComponentManager.kt:22)
    at org.elasticsearch4idea.H.<init>(ClusterConfigurationService.kt:224)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:864)
    at com.intellij.serviceContainer.ComponentManagerImpl.createLightService(ComponentManagerImpl.kt:823)
    at com.intellij.serviceContainer.ComponentManagerImpl.access$createLightService(ComponentManagerImpl.kt:55)
    at com.intellij.serviceContainer.ComponentManagerImpl$getOrCreateLightService$$inlined$synchronized$lambda$1.run(ComponentManagerImpl.kt:673)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:223)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:233)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:222)
    at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService(ComponentManagerImpl.kt:672)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:621)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:583)
    at com.intellij.openapi.client.ClientAwareComponentManager.getFromSelfOrCurrentSession(ClientAwareComponentManager.kt:37)
    at com.intellij.openapi.client.ClientAwareComponentManager.getService(ClientAwareComponentManager.kt:22)
    at org.elasticsearch4idea.js.<init>(ElasticsearchManager.kt:569)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:864)
    at com.intellij.serviceContainer.ComponentManagerImpl.createLightService(ComponentManagerImpl.kt:823)
    at com.intellij.serviceContainer.ComponentManagerImpl.access$createLightService(ComponentManagerImpl.kt:55)
    at com.intellij.serviceContainer.ComponentManagerImpl$getOrCreateLightService$$inlined$synchronized$lambda$1.run(ComponentManagerImpl.kt:673)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$3(CoreProgressManager.java:223)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:238)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:222)
    at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService(ComponentManagerImpl.kt:672)
    at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:621)
    at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:583)
    at com.intellij.openapi.client.ClientAwareComponentManager.getFromSelfOrCurrentSession(ClientAwareComponentManager.kt:37)
    at com.intellij.openapi.client.ClientAwareComponentManager.getService(ClientAwareComponentManager.kt:22)
    at org.elasticsearch4idea.ae.substituteName(ElasticsearchConsoleRootType.kt:76)
    at com.intellij.ide.scratch.ScratchFileServiceImpl$FilePresentation.decorate(ScratchFileServiceImpl.java:320)
    at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.lambda$decorate$0(CompoundProjectViewNodeDecorator.java:45)
    at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.forEach(CompoundProjectViewNodeDecorator.java:51)
    at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.decorate(CompoundProjectViewNodeDecorator.java:45)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$doUpdate$1(AbstractPsiBasedNode.java:197)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:915)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.doUpdate(AbstractPsiBasedNode.java:148)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$update$0(AbstractPsiBasedNode.java:144)
    at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:172)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:130)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:119)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:109)
    at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.update(AbstractPsiBasedNode.java:144)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:78)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:30)
    at com.intellij.ui.tree.StructureTreeModel$Node.update(StructureTreeModel.java:458)
    at com.intellij.ui.tree.StructureTreeModel$Node.<init>(StructureTreeModel.java:439)
    at com.intellij.ui.tree.StructureTreeModel$Node.<init>(StructureTreeModel.java:432)
    at com.intellij.ui.tree.StructureTreeModel.getValidChildren(StructureTreeModel.java:390)
    at com.intellij.ui.tree.StructureTreeModel.validateChildren(StructureTreeModel.java:299)
    at com.intellij.ui.tree.StructureTreeModel$Node.isModelLeaf(StructureTreeModel.java:557)
    at com.intellij.ui.tree.StructureTreeModel.isLeaf(StructureTreeModel.java:335)
    at com.intellij.ui.tree.LeafState.get(LeafState.java:64)
    at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.load(AsyncTreeModel.java:574)
    at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.getNode(AsyncTreeModel.java:547)
    at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:440)
    at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:406)
    at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:314)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:115)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:66)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:66)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
    at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:203)
    at com.intellij.util.concurrency.Invoker.lambda$offerSafely$0(Invoker.java:181)
    at com.intellij.util.concurrency.Invoker$Background.lambda$offer$0(Invoker.java:481)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalArgumentException: Illegal base64 character 7b
    at java.base/java.util.Base64$Decoder.decode0(Base64.java:847)
    at java.base/java.util.Base64$Decoder.decode(Base64.java:566)
    at org.elasticsearch4idea.z.a(Base64Utils.kt:10)
    at org.elasticsearch4idea.z.a(Base64Utils.kt:14)
    at org.elasticsearch4idea.J.a(ConfigHelper.kt:211)
    at org.elasticsearch4idea.J.a(ConfigHelper.kt:45)
    at org.elasticsearch4idea.K.loadState(GlobalElasticsearchConfiguration.kt:52)
    at org.elasticsearch4idea.K.loadState(GlobalElasticsearchConfiguration.kt:15)
    at com.intellij.configurationStore.ComponentStoreImpl.doInitComponent(ComponentStoreImpl.kt:440)
    at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:373)
    at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:119)
    ... 110 more
AntonShuvaev commented 1 year ago

Hi, this is duplicate of #82. It was fixed in the last release. You need to restart IDE second time after updating plugin. After the first start GlobalElasticsearchConfiguration is read in the old way with base64 decoding for backward compatibility. Then plugin will save GlobalElasticsearchConfiguration without base64 encoding and with property version=1. You can check it in configuration file /Users/{user}/Library/Application Support/JetBrains/IntelliJIdea2022.2/options/globalElasticsearchSettings.xml. After the restart the problem should gone.

cakarlen commented 1 year ago

Hi, thanks for the response. I restarted PyCharm and checked the XML file several times after restarting, but still getting the base64 decode error. I don't see a key named version in the XML file either.

Hoping that I can fix the XML file because I had many connections that I don't really want to have to recreate

AntonShuvaev commented 1 year ago

Probably the config cannot be saved because it cannot be read normally. I will fix it in the next release. The plugin decodes to base64 credentials which is stored securely in OS. As a workaround you need for each entry of <option name="clusterConfigurations"> to change <option name="credentialsStored" value="true" /> from true to false. But in this case you will need to setup credentials again. You can try to change entries one by one, in case if the problem is only with one of them.

cakarlen commented 1 year ago

That ended up working. Thanks for your help!