Open chanseokoh opened 7 years ago
Changed title: does remove --> doesn't remove
Looks like the library is removed properly only when the Dynamic Web facet is present. We are removing the App Engine runtime by scheduling a job that tends to run after the Dynamic Web facet is removed, so this is why the library is not removed.
We can't make this work, because when you select multiple facets and uninstall them, they are done in a batch (FacetedProject.modifyInternal()
loops over Action
s) while holding a lock (via ProjectFacet.beginModification()
). That is, there is no room for FacetedProject.removeTargetedRuntime()
(which attempts to grab a lock) to be called between removing the App Engine facet and the Dynamic Web facet.
We may have to add code to explicitly remove the library (if it's still there), rather than relying on WTP to remove it when detaching the App Engine runtime. But I'd say this issue is a low priority.
The App Engine Standard Runtime library (servlet and jsp jars) remains in the build path.
On the other hand, when uninstalling the App Engine facet alone, the library is removed as expected.