Bug 186403 [KeyBindings] provide conflict information to users outside of logging
bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
* child to parent.
	 * </p>
	 * <p>
	 * This method completes in <code>O(n)</code>, where <code>n</code> is
	 * the height of the context tree.
	 * </p>
	 * 
	 * @param contextIds
	 *            The set of context identifiers to be converted into a tree;
	 *            must not be <code>null</code>.
	 * @return The tree of contexts to use; may be empty, but never
	 *         <code>null</code>. The keys and values are both strings.
	 */
	private final Map createContextTreeFor(final Set contextIds) {
		final Map contextTree = new HashMap();
		final Iterator contextIdItr = contextIds.iterator();
		while (contextIdItr.hasNext()) {
			String childContextId = (String) contextIdItr.next();
			while (childContextId != null) {
				
				if (contextTree.containsKey(childContextId)) {
					break;
				}
				
				final Context childContext = contextManager
						.getContext(childContextId);
				
				try {
					final String parentContextId = childContext.getParentId();
					contextTree.put(childContextId, parentContextId);