rodm/gradle-teamcity-plugin

Always follow reload-logic for 2018.2 EAP3+ in development mode

Vampire opened this issue · 3 comments

According to https://youtrack.jetbrains.com/issue/TW-57776#focus=streamItem-27-3173033-0-0 Jetbrains "decided to make all plugins reloadable in developer mode so the allow-runtime-reload attribute is not required now for development (gradle sdk should be updated though).", so the unload / copy / load cycle should always be done if you have a 2018.2+ server in development mode, independent from the reloadable-flag.

EAP3 has arrived. Buildnumber is 60795

rodm commented

I've updated the readme removing the incorrect statement that the allowRuntimeReload is used to cause the unload/load to occur, only the version of the environment is used. I'll close this issue but re-open it if you think I've missed anything.

I cannot reopen, just comment.
I was not aware it is not depending on that flag, so even better if it was just wrong docs. :-)

If I see it correctly, you just try to load when the unload was fully successful, I think the load should be tried always, or at least too if the unload was partially successful. After the unload TC forces a garbage collection in a hacky way and then checks whether the class loader is still present in memory which means something is still having some hard reference. But - except for bugs - this usually means the plugin has some threads running or some other things and for TC the plugin still remains unloaded, so you should anyway try to load it I think.