Bug 249574 [Contributions] ExternalActionManager.addPropertyChangeListener() doesn't register the ListenerList
bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.java
&& (!loggedCommandIds.contains(commandId))) {
					
					final String message = MessageFormat.format(Util
							.translateString(RESOURCE_BUNDLE,
									"undefinedCommand.WarningMessage", null), 
							new String[] { command.getId() });
					IStatus status = new Status(IStatus.ERROR,
							"org.eclipse.jface", 
							0, message, new Exception());
					Policy.getLog().log(status);
					
					loggedCommandIds.add(commandId);
					command.addCommandListener(new ICommandListener() {
						/*
						 * (non-Javadoc)
						 * 
						 * @see org.eclipse.ui.commands.ICommandListener#commandChanged(org.eclipse.ui.commands.CommandEvent)
						 */
						public final void commandChanged(
								final CommandEvent commandEvent) {
							if (command.isDefined()) {
								command.removeCommandListener(this);
								loggedCommandIds.remove(commandId);
							}
						}
					});
					return true;
				}
				return activeChecker.isActive(commandId);
			}