basgren / railways

A plugin for RubyMine and IntelliJ IDEA Ultimate that adds a panel with routes of Ruby on Rails application.
MIT License
46 stars 18 forks source link

Railways crashes on start #23

Closed cbxp closed 8 years ago

cbxp commented 8 years ago

IntelliJ IDEA 14.1.5 Railways 0.8.4

Everything worked fine before updating Railways.

com/intellij/ide/TextCopyProvider java.lang.NoClassDefFoundError: com/intellij/ide/TextCopyProvider at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:760) at java.lang.ClassLoader.defineClass(ClassLoader.java:642) at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:259) at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:255) at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:231) at com.intellij.ide.plugins.cl.PluginClassLoader.b(PluginClassLoader.java:124) at com.intellij.ide.plugins.cl.PluginClassLoader.a(PluginClassLoader.java:77) at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:66) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at net.bitpot.railways.gui.LabelWithCopy.(Unknown Source) at net.bitpot.railways.gui.MainPanel.createUIComponents(Unknown Source) at net.bitpot.railways.gui.MainPanel.$$$setupUI$$$(Unknown Source) at net.bitpot.railways.gui.MainPanel.(Unknown Source) at net.bitpot.railways.routesView.RoutesView.(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.picocontainer.defaults.InstantiatingComponentAdapter.newInstance(InstantiatingComponentAdapter.java:193) at org.picocontainer.defaults.ConstructorInjectionComponentAdapter$1.run(ConstructorInjectionComponentAdapter.java:220) at org.picocontainer.defaults.ThreadLocalCyclicDependencyGuard.observe(ThreadLocalCyclicDependencyGuard.java:53) at org.picocontainer.defaults.ConstructorInjectionComponentAdapter.getComponentInstance(ConstructorInjectionComponentAdapter.java:248) at com.intellij.util.pico.ConstructorInjectionComponentAdapter.getComponentInstance(ConstructorInjectionComponentAdapter.java:58) at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter.initializeInstance(ServiceManagerImpl.java:228) at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter$1.compute(ServiceManagerImpl.java:216) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:884) at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter.getComponentInstance(ServiceManagerImpl.java:207) at com.intellij.util.pico.DefaultPicoContainer.getLocalInstance(DefaultPicoContainer.java:245) at com.intellij.util.pico.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:211) at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:37) at net.bitpot.railways.routesView.RoutesView.getInstance(Unknown Source) at net.bitpot.railways.routesView.RoutesViewToolWindowFactory.createToolWindowContent(Unknown Source) at com.intellij.openapi.wm.impl.ToolWindowImpl.ensureContentInitialized(ToolWindowImpl.java:510) at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$11.run(ToolWindowManagerImpl.java:520) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:332) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:734) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:569) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.lang.ClassNotFoundException: com.intellij.ide.TextCopyProvider PluginClassLoader[Railways for IDEA, 0.8.4] at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:68) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 53 more

basgren commented 8 years ago

Hi. Thank you for the report! Unfortunately, I didn't test this version of plugin on older versions of IntelliJ IDEA, as sometimes it's hard to maintain compatibility with several IDE versions due to changes in IDE API. Taking into account that current IDEA version is 15 and 16 already in "public preview" stage and soon will be released, is there a change that you upgrade your IDE at least to version 15?

Anyways, I'll take a look if the issue can be resolved with minimum efforts and if yes - will make an update.

Until then to keep the plugin working I suggest the next options:

  1. Rollback to previous version of the plugin (0.8.3).
  2. Update IDE version to at least v15 (if possible, of course).

Thanks again and I'm sorry for the inconvenience!

cbxp commented 8 years ago

In plugin.xml you can specify the minimum IDEA version that your plugin needs. <idea-version since-build="131"/> (change 131 to whatever you need)

If specified, then in this example our older IDEA 14 wouldn't have received the Railways plugin update and would have stayed on 0.8.3 forever. Which would have been fine.

This matches your logic that older IDEA versions should keep using older plugin versions and we have no problem with this. It's just that you can dictate this behavior in plugin.xml, the users will never get a single crash and rate your plugin higher.

Thanks for an awesome plugin by the way, we love it.

basgren commented 8 years ago

Thank you! I'll update the plugin manifest. I promise, I'll be more attentive next time. Thanks again and feel free to let me know if you find any bugs or have some suggestions regarding the plugin.

cbxp commented 8 years ago

Downgrading to version 0.8.3 worked nicely. This issue can be closed.

basgren commented 8 years ago

Hi @cbxp! Finally I had some time to fix this issue. Please check 0.8.5 version - it should work fine now.

Thank you