AssertionFailure exception at ISession.Save

Description

Mapping:

Table fields:

ID BIGINT IDENTITY
ANKETA CHARACTER 32
XML CLOB 1048576

Code:

The code above works OK on MS SQL all the time, and works on DB2, too, except at one client. At this client, we get the following exception at session.Save ():

2010-03-18T00:12:47 {6} ERROR: NHibernate.AssertionFailure: null identifier
at NHibernate.Engine.EntityKey..ctor(Object identifier, String rootEntityName, String entityName, IType identifierType, Boolean batchLoadable, ISessionFactoryImplementor factory, EntityMode entityMode)
at NHibernate.Engine.EntityKey..ctor(Object id, IEntityPersister persister, EntityMode entityMode)
at NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
at NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.Save(Object obj)
at NLBAnkete.Core.System.MSGSUOPBridge.ObdelajRezultate(XmlNode pollResult, String& idAnkete, Int64& idRezultata) in C:\Users\Kristof\Delo\Projects\CS\NLBAnkete\Core\System\MSGSUOPBridge.cs:line 207
at NLBAnkete.Core.System.MSGSUOPBridge.ObdelajSporocilo(OutputMessage om) in C:\Users\Kristof\Delo\Projects\CS\NLBAnkete\Core\System\MSGSUOPBridge.cs:line 139
at NLBAnkete.Core.System.MSGSUOPBridge.ObdelajSporocila() in C:\Users\Kristof\Delo\Projects\CS\NLBAnkete\Core\System\MSGSUOPBridge.cs:line 100

and the following line in the log:
NH:ERROR - An AssertionFailure occurred - this may indicate a bug in NHibernate or in your custom types.NHibernate.AssertionFailure: null identifier

Dispite the exception, record is inserted into a database, so simply ignoring this exception works. However, I thought you might be interested in this.

Best regards, Kristof

Environment

None

Activity

Show:

Frédéric Delaporte 
May 15, 2017 at 2:36 PM

This trouble only happen when no transaction are used. You may work around it by using transactions.

Fixed

Details

Assignee

Reporter

Labels

Components

Fix versions

Affects versions

Priority

Who's Looking?

Open Who's Looking?
Created March 22, 2010 at 1:59 AM
Updated May 15, 2017 at 2:36 PM
Resolved May 15, 2017 at 2:31 PM
Who's Looking?