void contextChanged(Map<Class<? extends ActionContext>, ActionContext> defaultContextMap,
			ActionContext localContext, Set<DockingActionIf> excluded) {
		/**
		 * We need the guard against reentrant changes to the actionToProxyMap, lest the iterator
		 * throw a ConcurrentModificationException. If the guard finds a violation, i.e., the map
		 * has changed, we just bail. Whatever changed the map should also trigger an update to
		 * context, and so we should have a fresh go here with the new map.
		 * 
		 * There are three points where there could be reentrant modifications. Those are 1) when
		 * computing an action's context, 2) when checking if the action is enabled for that
		 * context, and 3) when setting the proxy's enabled state. There are minimal performance
		 * trade-offs to consider when deciding which points to check. Critically, we must check
		 * somewhere between the last point and the end of the loop, i.e., before stepping the
		 * iterator. We opt to check only that last point, since reentry is uncommon here.
		 */
		try (Guarded guarded = reentryGuard.enter()) {
			if (!node.isVisible() || disposed) {
				return;
			}

			for (Entry<DockingActionIf, DockingActionProxy> ent : actionToProxyMap.entrySet()) {
				DockingActionIf action = ent.getKey();
				DockingActionIf proxyAction = ent.getValue();
				if (excluded.contains(action)) {
					continue;
				}

				// Reentry point 1
				ActionContext context =
					getContextForAction(action, localContext, defaultContextMap);
				// Reentry point 2
				boolean enabled =
					context == null ? false : proxyAction.isEnabledForContext(context);
				// Reentry point 3, which we check
				proxyAction.setEnabled(enabled);
				if (reentryGuard.isViolated()) {
					break;
				}
			}
		}
	}
Some actions' {@link DockingActionIf#isEnabledForContext(ActionContext)} methods may
inadvertently display an error dialog, allowing for the Swing thread to reenter and modify
the {@link #actionToProxyMap}. We want to allow this, but detect it and bail early.
Ghidra/Framework/Docking/src/main/java/docking/WindowActionManager.java