private void check(Object probe, Object current) {
			List<Object> nl = graph.get(current);
			if (nl == null) {
				return;
			}
			for (Object o : nl) {
				if (o == probe) {
					throw new ComponentException("Circular reference to: "
							+ probe);
				} else {
					check(probe, o);
				}
			}
		}