Bug 186403 [KeyBindings] provide conflict information to users outside of logging
bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
* This method completes in <code>O(n)</code>, where <code>n</code> is
	 * the height of the context tree.
	 * </p>
	 * 
	 * @param schemeId
	 *            The id of the scheme for which the parents should be found;
	 *            may be <code>null</code>.
	 * @return The array of scheme ids (<code>String</code>) starting with
	 *         <code>schemeId</code> and then ascending through its ancestors.
	 */
	private final String[] getSchemeIds(String schemeId) {
		final List strings = new ArrayList();
		while (schemeId != null) {
			strings.add(schemeId);
			try {
				schemeId = getScheme(schemeId).getParentId();
			} catch (final NotDefinedException e) {
				Policy.getLog().log(
						new Status(IStatus.ERROR, Policy.JFACE, IStatus.OK,
								"Failed ascending scheme parents", 
								e));
				return new String[0];
			}
		}
		return (String[]) strings.toArray(new String[strings.size()]);
	}
	/**
	 * <p>
	 * Returns whether the given trigger sequence is a partial match for the
	 * given sequence.