public virtual void DropPersistenceUnit(string name) /* throws Net.Vpc.Upa.Exceptions.UPAException */
 {
     if (name == null)
     {
         name = "";
     }
     lock (persistenceUnits) {
         if (!persistenceUnits.ContainsKey(name))
         {
             throw new Net.Vpc.Upa.Exceptions.NoSuchPersistenceUnitException(name);
         }
         Net.Vpc.Upa.PersistenceUnit persistenceUnit = Net.Vpc.Upa.Impl.FwkConvertUtils.GetMapValue <string, Net.Vpc.Upa.PersistenceUnit>(persistenceUnits, name);
         if (!persistenceUnit.IsClosed())
         {
             persistenceUnit.Close();
         }
         listeners.FireOnDropPersistenceUnit(new Net.Vpc.Upa.Callbacks.PersistenceUnitEvent(persistenceUnit, this, Net.Vpc.Upa.EventPhase.BEFORE));
         persistenceUnits.Remove(name);
         listeners.FireOnDropPersistenceUnit(new Net.Vpc.Upa.Callbacks.PersistenceUnitEvent(persistenceUnit, this, Net.Vpc.Upa.EventPhase.AFTER));
     }
 }