Plugin recompiled with SNAPSHOT from intellij-community master won't run on SNAPSHOT or 2019.3
已回答
I recompiled a plugin with latest SNAPSHOT and it would not run on the SNAPSHOT build nor on latest 2019.3.
On SNAPSHOT build it was getting resource bundle not found and class not found for DynamicBundle on 2019.3.
Effectively, SNAPSHOT build right now is not usable for plugin dev. Ignoring the myriad of exceptions and glitches it has had for the last couple of weeks, not being able to build and run a plugin is a show stopper.
java.util.MissingResourceException: Can't find bundle for base name com/vladsch/MissingInActions/localization/strings, locale en_CA
at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2055)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1689)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1593)
at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:1284)
at com.intellij.AbstractBundle.getResourceBundle(AbstractBundle.java:86)
at com.intellij.AbstractBundle.getResourceBundle(AbstractBundle.java:66)
at com.intellij.DynamicBundle.getBundle(DynamicBundle.java:88)
at com.vladsch.MissingInActions.settings.ApplicationSettingsForm.$$$setupUI$$$(ApplicationSettingsForm.java)
at com.vladsch.MissingInActions.settings.ApplicationSettingsForm.<init>(ApplicationSettingsForm.java:177)
at com.vladsch.MissingInActions.settings.ApplicationConfigurable.getForm(ApplicationConfigurable.java:75)
at com.vladsch.MissingInActions.settings.ApplicationConfigurable.isModified(ApplicationConfigurable.java:82)
at com.intellij.openapi.options.ex.ConfigurableWrapper.isModified(ConfigurableWrapper.java:168)
at com.intellij.openapi.options.newEditor.SettingsEditor.checkModifiedInternal(SettingsEditor.java:448)
at com.intellij.openapi.options.newEditor.SettingsEditor.checkModifiedForItem(SettingsEditor.java:442)
at com.intellij.openapi.options.newEditor.SettingsEditor.checkModified(SettingsEditor.java:430)
at com.intellij.openapi.options.newEditor.SettingsEditor$5.apply(SettingsEditor.java:166)
at com.intellij.openapi.options.newEditor.SettingsEditor.apply(SettingsEditor.java:357)
at com.intellij.openapi.options.newEditor.SettingsDialog.applyAndClose(SettingsDialog.java:191)
at com.intellij.openapi.options.newEditor.SettingsDialog.doOKAction(SettingsDialog.java:187)
at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1890)
at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1843)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6416)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
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:2773)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
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:933)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:871)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:803)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:433)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:679)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:432)
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.pumpEventsForFilter(EventDispatchThread.java:117)
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:1063)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:708)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1707)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1666)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:84)
at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:54)
at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$null$1(MacOSApplicationProvider.java:75)
at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$submit$7(MacOSApplicationProvider.java:172)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:192)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:468)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:444)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:421)
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:933)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:806)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:433)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:690)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:432)
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)
请先登录再写评论。
Is this problem still actual?
Yann Cebron, yes it is.
I opened an issue https://youtrack.jetbrains.com/issue/IDEA-230489
It is caused by form designer forms injejcted setup the code using DynamicBundle to resolve property messages from bundles.
Yann Cebron, I updated the issue with proof of concept fix which moves test for presence of DynamicBundle to form run-time SupportCode class. This allows building of plugins with forms in 2020.1 SNAPSHOT version and running the plugins in 2020.1 and 2019.3 without errors.
I can now use the snapshot IDE build for my plugin dev work. :)