It looks like #35101 is happening again (and probably has been for a while). I think the fix we put in place no longer works with buildship.

Comment From: philwebb

It's quite hard to debug the issue, but adding org.gradle.debug=true to ~/.gradle/gradle.properties allows a remote debugger to be attached when refreshing the gradle build in the IDE.

It looks like org.gradle.plugins.ide.internal.tooling.EclipseModelBuilder.gatherClasspathElements(Map<String, Boolean>, EclipseClasspath, boolean) is getting called with the correct classpath and eclipseClasspath.mergeXmlClasspath(classpath) should call our whenMerged method. However, the action is not there!

The conventions plugin is applied and the action is added, however, the by the time the gatherClasspathElements is called we seem to have a fresh instance that's been reset to an empty action set.