code: @Override
  	public synchronized WComponent getUI(final String key) {
  		WComponent ui = registry.get(key);
  
  		if (ui == null) {
  			// Looks like we haven't tried loading this UI yet, so do it now.
  			ui = loadUI(key);
  
  			ui.setLocked(true);
  
  			// Cache the result only if the UI was successfully loaded.
  			if (ui instanceof ErrorPage) {
  				LOG.debug("Returning non-cached ErrorPage WComponent. Key=" + key);
  			} else {
  				register(key, ui);
  
  				LOG.debug("Returning cached WComponent. Key=" + key);
  			}
  		} else {
  			LOG.debug("Returning cached WComponent. Key=" + key);
  		}
  
  		return ui;
  	}
docs: Retrieves the user interface that was registered with the given key. If the UI has not been registered, this
  attempts to load the UI using the key as a class name.
  
  @param key The registration key.
  @return the UI for the given key. The UI may be newly created.