code: protected void clearScratchMaps(final WComponent node) {
  		UIContext uic = UIContextHolder.getCurrent();
  
  		uic.clearRequestScratchMap(node);
  		uic.clearScratchMap(node);
  
  		if (node instanceof WRepeater) {
  			WRepeater repeater = (WRepeater) node;
  			List<UIContext> rowContextList = repeater.getRowContexts();
  			WComponent repeatedComponent = repeater.getRepeatedComponent();
  
  			for (UIContext rowContext : rowContextList) {
  				UIContextHolder.pushContext(rowContext);
  
  				try {
  					clearScratchMaps(repeatedComponent);
  				} finally {
  					UIContextHolder.popContext();
  				}
  			}
  
  			// Make sure the repeater's scratch map has not been repopulated by processing its children
  			uic.clearRequestScratchMap(node);
  			uic.clearScratchMap(node);
  		} else if (node instanceof Container) {
  			Container container = (Container) node;
  
  			for (int i = 0; i < container.getChildCount(); i++) {
  				clearScratchMaps(container.getChildAt(i));
  			}
  		}
  	}
docs: Recursively clears cached component scratch maps. This is called when the bean list changes, as the beans may
  have changed.
  
  @param node the component branch to clear cached data in.