Skip to content

Dictionary failure in LoaderΒ #1732

@kYann

Description

@kYann

Hello,

I don't have a lot of information to give, but I do have an NullException in Loader when trying to insert some value inside the Dictionary. This seems to be a threading issue as Dictionary is not thread safe. My question is : Is the loader used by many thread (like a singleton) ?

NHibernate.Exceptions.GenericADOException: could not load an entity: [Puzzle.QA.Bots.User#e65686bd-a2ae-4148-b509-a8f4011f2719][SQL: SELECT user0_.Id as id1_12_0_, user0_.job_title as job2_12_0_, user0_.real_name as real3_12_0_, user0_.display_name as display4_12_0_, user0_.email as email5_12_0_, user0_.state as state6_12_0_, user0_.prefered_chat_service as prefered7_12_0_, user0_.icon_url as icon8_12_0_, user0_.locale as locale9_12_0_, user0_.deleted as deleted10_12_0_, user0_.company_id as company11_12_0_, user0_1_.slack_id as slack2_13_0_, user0_1_.is_admin as is3_13_0_, user0_1_.is_owner as is4_13_0_, user0_1_.is_restricted as is5_13_0_, user0_1_.is_ultra_restricted as is6_13_0_, user0_1_.is_bot as is7_13_0_, user0_1_.is_stranger as is8_13_0_, user0_1_.slack_team_id as slack9_13_0_, case when user0_1_.user_id is not null then 1 when user0_.Id is not null then 0 end as clazz_0_ FROM qa.user user0_ left outer join qa.slack_user user0_1_ on user0_.Id=user0_1_.user_id WHERE user0_.Id=?] ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
   at NHibernate.Loader.Loader.GetSubclassEntityAliases(Int32 i, ILoadable persister)
   at NHibernate.Loader.Loader.LoadFromResultSet(DbDataReader rs, Int32 i, Object obj, String instanceClass, EntityKey key, String rowIdAlias, LockMode lockMode, ILoadable rootPersister, ISessionImplementor session)
   at NHibernate.Loader.Loader.InstanceNotYetLoaded(DbDataReader dr, Int32 i, ILoadable persister, EntityKey key, LockMode lockMode, String rowIdAlias, EntityKey optionalObjectKey, Object optionalObject, IList hydratedObjects, ISessionImplementor session)
   at NHibernate.Loader.Loader.GetRow(DbDataReader rs, ILoadable[] persisters, EntityKey[] keys, Object optionalObject, EntityKey optionalObjectKey, LockMode[] lockModes, IList hydratedObjects, ISessionImplementor session)
   at NHibernate.Loader.Loader.GetRowFromResultSet(DbDataReader resultSet, ISessionImplementor session, QueryParameters queryParameters, LockMode[] lockModeArray, EntityKey optionalObjectKey, IList hydratedObjects, EntityKey[] keys, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
   at NHibernate.Loader.Loader.LoadEntity(ISessionImplementor session, Object id, IType identifierType, Object optionalObject, String optionalEntityName, Object optionalIdentifier, IEntityPersister persister)
   --- End of inner exception stack trace ---
   at NHibernate.Loader.Loader.LoadEntity(ISessionImplementor session, Object id, IType identifierType, Object optionalObject, String optionalEntityName, Object optionalIdentifier, IEntityPersister persister)
   at NHibernate.Loader.Entity.AbstractEntityLoader.Load(ISessionImplementor session, Object id, Object optionalObject, Object optionalId)
   at NHibernate.Loader.Entity.AbstractEntityLoader.Load(Object id, Object optionalObject, ISessionImplementor session)
   at NHibernate.Persister.Entity.AbstractEntityPersister.Load(Object id, Object optionalObject, LockMode lockMode, ISessionImplementor session)
   at NHibernate.Event.Default.DefaultLoadEventListener.LoadFromDatasource(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   at NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   at NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   at NHibernate.Event.Default.DefaultLoadEventListener.ProxyOrLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
   at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions