Cleared Entity Name in Properties Threw Error

TJO
2008-02-21
2013-05-28
  • TJO
    TJO
    2008-02-21

    I was renaming an Entity in the properties window and this error occurred

    I lost a number of hours of work with this one even with frequent saves.

    Note to everyone: If VS tries to recover from an error don't let it.  Instead try to relay on your own saves!!

        at DefaultDatabaseNameGenerator.AddToNameCollection(String& singleName, List`1& nameCollection, String newName, Int32 index) 

        at DefaultDatabaseNameGenerator.AddToNameCollection(String& singleName, List`1& nameCollection, String newName) 

        at DefaultDatabaseNameGenerator.GenerateTableName(Table table, String longerThan) 

        at DefaultDatabaseNameGenerator.Neumont.Tools.ORMAbstractionToConceptualDatabaseBridge.IDatabaseNameGenerator.GenerateTableName(Table table, String longerThan) 

        at <>c__DisplayClass21.<GenerateAllNames>b__16(Object element, String longerThan) 

        at UniqueNameGenerator.GenerateUniqueElementNames(IEnumerable elements, GenerateCandidateElementNameCallback generateName, SetElementNameCallback setName) 

        at NameGeneration.GenerateAllNames(Schema schema) 

        at ModificationTracker.DelayValidateSchemaNamesChanged(ModelElement element) 

        at ElementValidator.Validate() 

        at FrameworkDomainModel.DelayValidateElements(ElementAddedEventArgs e) 

        at DelayValidateElementsClass.ElementAdded(ElementAddedEventArgs e) 

        at AddRuleNotification.FireRule() 

        at Transaction.FireCommitTimeRules(SortedRuleNotificationList rulesToFire) 

        at Transaction.FireCommitTimeElementRules() 

        at Transaction.Commit() 

        at ElementPropertyDescriptor.SetValue(Object component, Object value) 

        at PropertyDescriptorGridEntry.SetPropertyValueCore(Object obj, Object value, Boolean doUndo) 

        at PropertyDescriptorGridEntry.SetPropertyValue(Object obj, Object objVal, Boolean reset, String undoText) 

        at PropertyDescriptorGridEntry.set_PropertyValue(Object value) 

        at PropertyGridView.CommitValue(GridEntry ipeCur, Object value) 

        at PropertyGridView.CommitValue(Object value) 

        at PropertyGridView.CommitText(String text) 

        at PropertyGridView.Commit() 

        at PropertyGridView._Commit() 

        at GridViewEdit.OnClickHooked() 

        at MouseHook.ProcessMouseDown(IntPtr hWnd, Int32 x, Int32 y) 

        at MouseHook.MouseHookProc(Int32 nCode, IntPtr wparam, IntPtr lparam) 

        at MouseHookObject.Callback(Int32 nCode, IntPtr wparam, IntPtr lparam) 

    ---------------------------
    Abort   Retry   Ignore  
    ---------------------------

     
    • changeset 1226 has cleaned up this assert. You had to work to hit this assert (I only managed it putting nothing but spaces in object names), but it is possible. If you end up with no table/column name you will now get TABLE and COLUMN (ugly casing is intentional) for the tables/columns I can't get a name for. To clear a name in NORMA, I recommend selecting the text and hitting Backspace (not space). A zero-length name will be automatically reset, but (currently) not one with spaces only.

      A general comment on asserts is in order here:
      Unless you get them firing ad nauseum, there is generally no reason to Abort on an assert. Just Ignore. NORMA is currently installed as a debug build, so there are a ton of asserts floating around in the code. Asserts are intended to notify of an unexpected condition, and the scenario to hit an assert is always welcome. However, very few of the asserts will actually lead to exceptions, and even if they do, NORMA is built on a transacted object model system: it will rollback automatically, giving you a chance to save your work (assuming the Save is not disabled, see my post in your other thread).

      -Matt