-
Notifications
You must be signed in to change notification settings - Fork 936
Closed
Description
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)
fredericDelaporte