-
Notifications
You must be signed in to change notification settings - Fork 125
groovy-eclipse install and switch to 2.4 compiler causes Spring IDE to break #151
Comments
(comment in Pivotal Tracker added by Kris De Volder:) I was able to reproduce. One would assume that this is some kind of a dependency issue between greclipse and STS components but that does not appear to be the case, because... When I restart STS again, the problem fixes itself. So it would seem like the auto-restart performed by Greclipse doesn't quite startup Eclipse / STS properly. |
(comment in Pivotal Tracker added by Kris De Volder:) Hmmm... subsequent compiler switches now also seem to be working properly. |
(comment in Pivotal Tracker added by Kris De Volder:) At first it seemed like a restart fixed the issue somehow, but right now it seems to stay permanently broken. I have no errors related to bundle activation in the error log at all. I'm bit stumped what the problem is. Here some of the things I found:
|
(comment in Pivotal Tracker added by Kris De Volder:) Got an error log from starting up in a broken workspace. There are some errors and warnings around something seems broken in OSGI (stuff like "invalid registry object" and "Could not run processor" and some things going amiss with Oomph). Not sure this is connected to our problem, but seems somewhat likely at least. |
(comment in Pivotal Tracker added by Kris De Volder:) The problem can be 'fixed' by deleting the greclipse compiler resolver settings here: |
(comment in Pivotal Tracker added by Martin Lippert:) I also took a closer look at this. It seems that the core Groovy bundle is calling "refreshPackages" on the OSGi package admin at some time during startup, to set the specified Groovy compiler bundle. The package admin service is deprecated some quite some time. And I think it is quite dangerous to trigger the OSGi runtime to refresh packages during Eclipse startup. I think it is dangerous at all in an Eclipse IDE environment, since it is not built to be as dynamic as the OSGi runtime suggests it is. I don't know enough about the Groovy compiler settings (and how all that works), but this piece looks dangerous. |
(comment in Pivotal Tracker added by Martin Lippert:) I think the problematic piece starts here: |
(comment in Pivotal Tracker added by Martin Lippert:) If I understand the underlying logic correctly, a compiler switch uninstalls all the other compiler bundles and triggers the runtime to restart and to re-resolve bundles, so that other components get wired to the selected compiler bundle. If that is correct, I would suggest to install/uninstall the bundles and then trigger a restart with "-clean". That should do everything that is needed. It should not be necessary to do anything else during startup. Another option would be to define version constraints in the importing bundle and use a framework hook to specify that version range exactly to the version you selected at startup - and let the OSGi resolver do the rest. That way you would not need to install/uninstall bundles or re-wire packages or do anything dynamic (like refreshPackages) during startup. |
(comment in Pivotal Tracker added by Kris De Volder:) @mlippert "... seems dangerous..." indeed. It took Andrew many many hours/days of fiddling and it has been fragile ever since. The hard part I think is that it tries to switch around bundle installation / activation while osgi is in process of starting bundles. And it wants to satisfy two competing goals:
So the problem is, I think, what you suggest is not possible because the compiler prefs live in the workspace. You can't simply uninstall the compiler bundles indescriminatley as it may be needed for some workspaces and not others. Anyhoo... this is a problem in Greclipse most likely. Strange though how it seems to mostly break STS components and not anything (?) in Eclipse itself. |
I think the above comment was supposed to be for @martinlippert not for me. |
as reported in this issue here:
#148
the installation of Groovy-Eclipse and the switch to the 2.4 compiler causes other Spring IDE components to break.
Steps to reproduce:
Spring IDE views refuse to open (like the boot dashboard or the spring explorer view) and throw an error instead.
The text was updated successfully, but these errors were encountered: