code: public synchronized void setBeanContext(BeanContext bc) throws PropertyVetoException {
  
          if (bc == _beanContext) return;
  
          // track if veto'd the first time, then then second time remove anyway (dont except);
          if (!_vetodOnce) {
              try {
                  _vetoableChangeSupport.fireVetoableChange("beanContext", _beanContext, bc);
              }
              catch (PropertyVetoException pve) {
                  _vetodOnce = true;
                  throw pve;
              }
          }
  
          releaseBeanContextResources();
          BeanContext oldValue = _beanContext;
          _beanContext = bc;
          _vetodOnce = false;
          firePropertyChange("beanContext", oldValue, _beanContext);
      }
docs: <p/>
  Objects that implement this interface,
  shall fire a java.beans.PropertyChangeEvent, with parameters:
  <p/>
  propertyName "beanContext", oldValue (the previous nesting
  <code>BeanContext</code> instance, or <code>null</code>),
  newValue (the current nesting
  <code>BeanContext</code> instance, or <code>null</code>).
  <p/>
  A change in the value of the nesting BeanContext property of this
  BeanContextChild may be vetoed by throwing the appropriate exception.
  </p>
  
  @param bc The <code>BeanContext</code> with which
  to associate this <code>BeanContextChild</code>.