/** @see CollectionValueModelWrapper#disengageModel() */
 protected void disengageModel() {
   super.disengageModel();
   // stop listening to the components...
   for (Iterator stream = this.components.values().iterator(); stream.hasNext(); ) {
     ((CollectionValueModel) stream.next())
         .removeCollectionChangeListener(ValueModel.VALUE, this.componentListener);
   }
   // ...and clear the cache
   this.components.clear();
   this.collections.clear();
   this.size = 0;
 }