Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #2557 (closed)

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

LDAP integration testing

Reported by: cxallan Owned by: cxallan
Priority: minor Milestone: OMERO-Beta4.2
Component: General Version: n.a.
Keywords: n.a. Cc: jburel, jamoore
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: n.a.
Sprint: 2010-06-24 (12)

Description

Beta 4.2 LDAP integration testing.

Change History (17)

comment:1 Changed 14 years ago by cxallan

  • Status changed from new to assigned

comment:2 Changed 14 years ago by cxallan

  • Cc jburel jmoore added

comment:3 Changed 14 years ago by cxallan

With a basic configuration consisting of omero.ldap.base, omero.ldap.config and omero.ldap.urls the following exception is thrown on initial user creation upon successful LDAP authentication:

2010-07-01 21:26:45,139 INFO  [        ome.services.util.ServiceHandler] (l.Server-5)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-01 21:26:45,139 INFO  [        ome.services.util.ServiceHandler] (l.Server-5)  Args:	[null, ome.tools.spring.InternalServiceFactory@5b5e3abb]
2010-07-01 21:26:45,141 INFO  [         ome.security.basic.EventHandler] (l.Server-5)  Auth:	user=0,group=0,event=null(Sessions),sess=e4b949f3-a83a-46a3-ac06-536c6d53ecb9
2010-07-01 21:26:45,158 INFO  [                 org.perf4j.TimingLogger] (l.Server-5) start[1278016005139] time[19] tag[omero.call.exception]
2010-07-01 21:26:45,159 WARN  [        ome.services.util.ServiceHandler] (l.Server-5) Unknown exception thrown.

java.lang.IllegalStateException: Object unloaded:ome.model.meta.ExperimenterGroup:Id_0
	at ome.model.meta.ExperimenterGroup.errorIfUnloaded(ExperimenterGroup.java:1063)
	at ome.model.meta.ExperimenterGroup.getDetails(ExperimenterGroup.java:894)
	at ome.security.basic.CurrentDetails.createDetails(CurrentDetails.java:375)
	at ome.security.basic.OmeroInterceptor.newTransientDetails(OmeroInterceptor.java:436)
	at ome.security.basic.BasicSecuritySystem.newTransientDetails(BasicSecuritySystem.java:284)
	at ome.security.auth.SimpleRoleProvider.createExperimenter(SimpleRoleProvider.java:103)
	at ome.logic.LdapImpl.createUserFromLdap(LdapImpl.java:303)
	at ome.security.auth.LdapPasswordProvider.checkPassword(LdapPasswordProvider.java:85)
	at ome.security.auth.PasswordProviders.checkPassword(PasswordProviders.java:42)
	at ome.logic.AdminImpl.checkPassword(AdminImpl.java:1121)
	at ome.services.sessions.SessionManagerImpl$7.doWork(SessionManagerImpl.java:928)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:409)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:144)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy55.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:923)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:911)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)

comment:4 Changed 14 years ago by jmoore

The previous stack trace is related to #1254. This call gets made twice; once read-only, once read-write. The read-only throws an exception, which needs to be caught.

comment:5 follow-up: Changed 14 years ago by cxallan

When switching the default user mapping to:

...
omero.ldap.user_mapping=omeName=givenName,firstName=sn,lastName=uid,email=cn
...

The following exceptions are thrown and the user is unable to login:

2010-07-01 21:46:50,436 INFO  [    ome.services.blitz.util.CheckAllJobs] (l.Server-4) Received 0 job(s)
2010-07-01 21:47:20,188 INFO  [ ome.services.blitz.impl.ServiceFactoryI] (l.Server-4) Keep alive: 410bbb7e-72aa-4b05-b001-67374e9c06d5
2010-07-01 21:47:44,014 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-01 21:47:44,015 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Args:	[null, ome.tools.spring.InternalServiceFactory@5dccb1ae]
2010-07-01 21:47:44,017 INFO  [         ome.security.basic.EventHandler] (l.Server-4)  Auth:	user=0,group=0,event=null(Sessions),sess=6e6f7308-8285-4c5b-8f97-2cad930be572
2010-07-01 21:47:44,100 INFO  [                 org.perf4j.TimingLogger] (l.Server-4) start[1278017264015] time[85] tag[omero.call.exception]
2010-07-01 21:47:44,103 WARN  [        ome.services.util.ServiceHandler] (l.Server-4) Unknown exception thrown.

java.lang.IllegalStateException: Object unloaded:ome.model.meta.ExperimenterGroup:Id_0
	at ome.model.meta.ExperimenterGroup.errorIfUnloaded(ExperimenterGroup.java:1063)
	at ome.model.meta.ExperimenterGroup.getDetails(ExperimenterGroup.java:894)
	at ome.security.basic.CurrentDetails.createDetails(CurrentDetails.java:375)
	at ome.security.basic.OmeroInterceptor.newTransientDetails(OmeroInterceptor.java:436)
	at ome.security.basic.OmeroInterceptor.onSave(OmeroInterceptor.java:157)
	at org.hibernate.event.def.AbstractSaveEventListener.substituteValuesIfNecessary(AbstractSaveEventListener.java:414)
	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:293)
	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
	at org.hibernate.event.def.DefaultMergeEventListener.mergeTransientEntity(DefaultMergeEventListener.java:313)
	at org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:282)
	at org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener.entityIsTransient(IdTransferringMergeEventListener.java:59)
	at ome.security.basic.MergeEventListener.entityIsTransient(MergeEventListener.java:135)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:237)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:85)
	at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:84)
	at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:75)
	at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:859)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:843)
	at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:847)
	at ome.security.auth.SimpleRoleProvider.createGroup(SimpleRoleProvider.java:74)
	at ome.logic.LdapImpl.createUserFromLdap(LdapImpl.java:284)
	at ome.security.auth.LdapPasswordProvider.checkPassword(LdapPasswordProvider.java:85)
	at ome.security.auth.PasswordProviders.checkPassword(PasswordProviders.java:42)
	at ome.logic.AdminImpl.checkPassword(AdminImpl.java:1121)
	at ome.services.sessions.SessionManagerImpl$7.doWork(SessionManagerImpl.java:928)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:409)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:144)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy55.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:923)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:911)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
2010-07-01 21:47:44,106 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Excp:	java.lang.IllegalStateException: Object unloaded:ome.model.meta.ExperimenterGroup:Id_0
2010-07-01 21:47:44,108 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-01 21:47:44,108 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Args:	[null, ome.tools.spring.InternalServiceFactory@7a29120]
2010-07-01 21:47:44,135 INFO  [         ome.security.basic.EventHandler] (l.Server-4)  Auth:	user=0,group=0,event=8(Sessions),sess=6e6f7308-8285-4c5b-8f97-2cad930be572
2010-07-01 21:47:44,203 INFO  [       ome.security.basic.CurrentDetails] (l.Server-4) Adding log:INSERT,class ome.model.meta.ExperimenterGroup,4
2010-07-01 21:47:44,205 INFO  [       ome.security.basic.CurrentDetails] (l.Server-4) Adding log:INSERT,class ome.model.meta.Experimenter,2
2010-07-01 21:47:44,223 INFO  [       ome.security.basic.CurrentDetails] (l.Server-4) Adding log:INSERT,class ome.model.meta.GroupExperimenterMap,3
2010-07-01 21:47:44,233 INFO  [       ome.security.basic.CurrentDetails] (l.Server-4) Adding log:INSERT,class ome.model.meta.GroupExperimenterMap,4
2010-07-01 21:47:44,255 INFO  [                 org.perf4j.TimingLogger] (l.Server-4) start[1278017264108] time[147] tag[omero.call.success]
2010-07-01 21:47:44,255 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Rslt:	true
2010-07-01 21:47:44,256 INFO  [ome.services.sessions.state.SessionCache] (l.Server-5) Waiting for synchronization
2010-07-01 21:47:44,811 INFO  [ome.services.sessions.state.SessionCache] (r_Worker-3) Synchronizing session cache. Count = 2
2010-07-01 21:47:44,813 INFO  [        ome.services.util.ServiceHandler] (r_Worker-3)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.reload
2010-07-01 21:47:44,813 INFO  [        ome.services.util.ServiceHandler] (r_Worker-3)  Args:	[null, ome.tools.spring.InternalServiceFactory@28098d94]
2010-07-01 21:47:44,815 INFO  [         ome.security.basic.EventHandler] (r_Worker-3)  Auth:	user=0,group=0,event=null(Sessions),sess=6e6f7308-8285-4c5b-8f97-2cad930be572
2010-07-01 21:47:44,827 INFO  [                 org.perf4j.TimingLogger] (r_Worker-3) start[1278017264813] time[14] tag[omero.call.success]
2010-07-01 21:47:44,827 INFO  [        ome.services.util.ServiceHandler] (r_Worker-3)  Rslt:	(ome.model.meta.Experimenter:Id_0, ome.model.meta.ExperimenterGroup:Id_0, [0, 1], ... 4 more)
2010-07-01 21:47:44,828 INFO  [        ome.services.util.ServiceHandler] (r_Worker-3)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.reload
2010-07-01 21:47:44,828 INFO  [        ome.services.util.ServiceHandler] (r_Worker-3)  Args:	[null, ome.tools.spring.InternalServiceFactory@24ebe538]
2010-07-01 21:47:44,829 INFO  [         ome.security.basic.EventHandler] (r_Worker-3)  Auth:	user=0,group=0,event=null(Sessions),sess=6e6f7308-8285-4c5b-8f97-2cad930be572
2010-07-01 21:47:44,846 INFO  [                 org.perf4j.TimingLogger] (r_Worker-3) start[1278017264828] time[18] tag[omero.call.success]
2010-07-01 21:47:44,846 INFO  [        ome.services.util.ServiceHandler] (r_Worker-3)  Rslt:	(ome.model.meta.Experimenter:Id_0, ome.model.meta.ExperimenterGroup:Id_0, [0, 1], ... 4 more)
2010-07-01 21:47:44,847 INFO  [ome.services.sessions.state.SessionCache] (r_Worker-3) Synchronization took 36 ms.
2010-07-01 21:47:45,263 INFO  [        ome.services.util.ServiceHandler] (l.Server-5)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.createSession
2010-07-01 21:47:45,263 INFO  [        ome.services.util.ServiceHandler] (l.Server-5)  Args:	[null, ome.tools.spring.InternalServiceFactory@4e543c44]
2010-07-01 21:47:45,290 INFO  [         ome.security.basic.EventHandler] (l.Server-5)  Auth:	user=0,group=0,event=9(Sessions),sess=6e6f7308-8285-4c5b-8f97-2cad930be572
2010-07-01 21:47:45,294 WARN  [ome.services.sessions.SessionManagerImpl] (l.Server-5) Exception while running executeDefaultGroup
ome.conditions.ApiUsageException: No such experimenter: Jean-Marie
	at ome.logic.AdminImpl.userProxy(AdminImpl.java:181)
	at ome.services.sessions.SessionManagerImpl._getDefaultGroup(SessionManagerImpl.java:1192)
	at ome.services.sessions.SessionManagerImpl.checkPrincipalNameAndDefaultGroup(SessionManagerImpl.java:733)
	at ome.services.sessions.SessionManagerImpl.access$000(SessionManagerImpl.java:77)
	at ome.services.sessions.SessionManagerImpl$2.doWork(SessionManagerImpl.java:298)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:409)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:144)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy55.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.createSession(SessionManagerImpl.java:293)
	at ome.services.sessions.SessionManagerImpl.createWithAgent(SessionManagerImpl.java:244)
	at ome.services.blitz.fire.SessionManagerI.create(SessionManagerI.java:173)
	at Glacier2._SessionManagerDisp.___create(_SessionManagerDisp.java:92)
	at Glacier2._SessionManagerDisp.__dispatch(_SessionManagerDisp.java:125)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
2010-07-01 21:47:45,297 INFO  [                 org.perf4j.TimingLogger] (l.Server-5) start[1278017265263] time[34] tag[omero.call.exception]
2010-07-01 21:47:45,297 INFO  [        ome.services.util.ServiceHandler] (l.Server-5)  Excp:	ome.conditions.ApiUsageException: Can't find default group for Jean-Marie

comment:6 Changed 14 years ago by cxallan

With the above configuration, upon second login attempt the following exceptions are thrown:

2010-07-01 21:51:28,236 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-01 21:51:28,236 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Args:	[null, ome.tools.spring.InternalServiceFactory@16562d4b]
2010-07-01 21:51:28,260 INFO  [         ome.security.basic.EventHandler] (l.Server-4)  Auth:	user=0,group=0,event=10(Sessions),sess=6e6f7308-8285-4c5b-8f97-2cad930be572
2010-07-01 21:51:28,288 ERROR [.event.def.AbstractFlushingEventListener] (l.Server-4) Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not insert: [ome.model.meta.Experimenter]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2438)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2858)
	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:260)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:179)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
	at ome.security.auth.SimpleRoleProvider.createExperimenter(SimpleRoleProvider.java:105)
	at ome.logic.LdapImpl.createUserFromLdap(LdapImpl.java:303)
	at ome.security.auth.LdapPasswordProvider.checkPassword(LdapPasswordProvider.java:85)
	at ome.security.auth.PasswordProviders.checkPassword(PasswordProviders.java:42)
	at ome.logic.AdminImpl.checkPassword(AdminImpl.java:1121)
	at ome.services.sessions.SessionManagerImpl$8.doWork(SessionManagerImpl.java:941)
	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:409)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:144)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy55.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRW(SessionManagerImpl.java:936)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:916)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "experimenter_omename_key"
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:304)
	at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2418)
	... 47 more
2010-07-01 21:51:28,290 INFO  [                 org.perf4j.TimingLogger] (l.Server-4) start[1278017488236] time[54] tag[omero.call.exception]
2010-07-01 21:51:28,291 WARN  [        ome.services.util.ServiceHandler] (l.Server-4) DataIntegrityViolationException thrown.

org.springframework.dao.DataIntegrityViolationException: could not insert: [ome.model.meta.Experimenter]; SQL [insert into experimenter (external_id, permissions, email, firstName, institution, lastName, middleName, omeName, version, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [experimenter_omename_key]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [ome.model.meta.Experimenter]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:637)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy55.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRW(SessionManagerImpl.java:936)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:916)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
Caused by: org.hibernate.exception.ConstraintViolationException: could not insert: [ome.model.meta.Experimenter]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2438)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2858)
	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:260)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:179)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
	at ome.security.auth.SimpleRoleProvider.createExperimenter(SimpleRoleProvider.java:105)
	at ome.logic.LdapImpl.createUserFromLdap(LdapImpl.java:303)
	at ome.security.auth.LdapPasswordProvider.checkPassword(LdapPasswordProvider.java:85)
	at ome.security.auth.PasswordProviders.checkPassword(PasswordProviders.java:42)
	at ome.logic.AdminImpl.checkPassword(AdminImpl.java:1121)
	at ome.services.sessions.SessionManagerImpl$8.doWork(SessionManagerImpl.java:941)
	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:409)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:144)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	... 22 more
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "experimenter_omename_key"
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:304)
	at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2418)
	... 47 more
2010-07-01 21:51:28,291 INFO  [        ome.services.util.ServiceHandler] (l.Server-4)  Excp:	org.springframework.dao.DataIntegrityViolationException: could not insert: [ome.model.meta.Experimenter]; SQL [insert into experimenter (external_id, permissions, email, firstName, institution, lastName, middleName, omeName, version, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [experimenter_omename_key]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [ome.model.meta.Experimenter]
2010-07-01 21:51:28,292 ERROR [services.blitz.fire.PermissionsVerifierI] (l.Server-4) Exception thrown while checking password for:Jean-Marie
ome.conditions.ValidationException: could not insert: [ome.model.meta.Experimenter]; SQL [insert into experimenter (external_id, permissions, email, firstName, institution, lastName, middleName, omeName, version, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [experimenter_omename_key]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [ome.model.meta.Experimenter]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:637)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy55.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRW(SessionManagerImpl.java:936)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:916)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)

comment:7 Changed 14 years ago by cxallan

A single user filter such as:

...
omero.ldap.user_filter=(cn=jburel)
...

Does not allow users that match to login.

comment:8 in reply to: ↑ 5 Changed 14 years ago by jmoore

Replying to cxallan:

When switching the default user mapping to:

...
omero.ldap.user_mapping=omeName=givenName,firstName=sn,lastName=uid,email=cn
...

The following exceptions are thrown and the user is unable to login:

2010-07-01 21:47:45,294 WARN [ome.services.sessions.SessionManagerImpl?] (l.Server-5) Exception while running executeDefaultGroup
ome.conditions.ApiUsageException?: No such experimenter: Jean-Marie

...

2010-07-01 21:47:45,297 INFO [ ome.services.util.ServiceHandler?] (l.Server-5) Excp: ome.conditions.ApiUsageException?: Can't find default group for Jean-Marie
}}}

From mage's db:

OMERO4.2__0=# select * from experimenter order by id desc;
 id | permissions |         email          |  firstname  | institution | lastname | middlename |  omename   | version | external_id 
----+-------------+------------------------+-------------+-------------+----------+------------+------------+---------+-------------
 53 |        -103 | j.burel@dundee.ac.uk   | Jean-marie  |             | Burel    |            | jburel     |       0 |            
 52 |        -103 | c.x.allan@dundee.ac.uk | Christopher |             | Allan    |            | cxallan    |       0 |            
  2 |        -103 | jburel                 | Burel       |             | jburel   |            | Jean-marie |       0 |            
  1 |           0 |                        | Guest       |             | Account  |            | guest      |       0 |            
  0 |           0 |                        | root        |             | root     |            | root       |       0 |            
(5 rows)

Note the capitalization.

comment:9 Changed 14 years ago by jmoore

(In [7429]) Earlier catch of exception for executeCheckPasswordRO (See #2557)

comment:10 Changed 14 years ago by jmoore

(In [7430]) More testing for ldap (See #2557)

The same tests that are run by the mock test LdapTest are now
also run against a database with an actual login.

comment:11 Changed 14 years ago by jmoore

(In [7431]) Fixing startup error in ldap (See #2557)

comment:12 Changed 14 years ago by jmoore

(In [7433]) Adding case-sensitive logic (See #2557)

Also contains attempts to get the multipleGroups test working.
User "test1" is still not found, and Apache DS prints:
attribute 'gidnumber' cannot be stored

comment:13 Changed 14 years ago by cxallan

After r7433, on successful password check the experimenter creation fails:

2010-07-02 10:46:38,285 INFO  [        ome.services.util.ServiceHandler] (l.Server-7)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-02 10:46:38,285 INFO  [        ome.services.util.ServiceHandler] (l.Server-7)  Args:	[null, ome.tools.spring.InternalServiceFactory@7e64cfe0]
2010-07-02 10:46:38,286 INFO  [         ome.security.basic.EventHandler] (l.Server-7)  Auth:	user=0,group=0,event=null(Sessions),sess=846be045-2f41-4f31-87e7-8af4c01c4b67
2010-07-02 10:46:38,380 INFO  [                 org.perf4j.TimingLogger] (l.Server-7) start[1278063998285] time[95] tag[omero.call.exception]
2010-07-02 10:46:38,382 WARN  [        ome.services.util.ServiceHandler] (l.Server-7) OptimisticLockingFailureException thrown.

org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [3]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#3]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#3]
	at org.hibernate.event.def.DefaultFlushEntityEventListener.getDatabaseSnapshot(DefaultFlushEntityEventListener.java:575)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:545)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:230)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:154)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
	at org.hibernate.event.def.DefaultDirtyCheckEventListener.onDirtyCheck(DefaultDirtyCheckEventListener.java:54)
	at org.hibernate.impl.SessionImpl.isDirty(SessionImpl.java:1192)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:167)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	... 22 more
2010-07-02 10:46:38,384 INFO  [        ome.services.util.ServiceHandler] (l.Server-7)  Excp:	org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [3]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#3]
2010-07-02 10:46:38,385 ERROR [services.blitz.fire.PermissionsVerifierI] (l.Server-7) Exception thrown while checking password for:cxallan
ome.conditions.OptimisticLockException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [3]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#3]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
2010-07-02 10:46:38,392 INFO  [        ome.services.util.ServiceHandler] (l.Server-2)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-02 10:46:38,392 INFO  [        ome.services.util.ServiceHandler] (l.Server-2)  Args:	[null, ome.tools.spring.InternalServiceFactory@68de59f0]
2010-07-02 10:46:38,393 INFO  [         ome.security.basic.EventHandler] (l.Server-2)  Auth:	user=0,group=0,event=null(Sessions),sess=846be045-2f41-4f31-87e7-8af4c01c4b67
2010-07-02 10:46:38,414 INFO  [                 org.perf4j.TimingLogger] (l.Server-2) start[1278063998392] time[22] tag[omero.call.exception]
2010-07-02 10:46:38,415 WARN  [        ome.services.util.ServiceHandler] (l.Server-2) OptimisticLockingFailureException thrown.

org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [4]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#4]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#4]
	at org.hibernate.event.def.DefaultFlushEntityEventListener.getDatabaseSnapshot(DefaultFlushEntityEventListener.java:575)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:545)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:230)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:154)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
	at org.hibernate.event.def.DefaultDirtyCheckEventListener.onDirtyCheck(DefaultDirtyCheckEventListener.java:54)
	at org.hibernate.impl.SessionImpl.isDirty(SessionImpl.java:1192)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:167)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	... 22 more
2010-07-02 10:46:38,416 INFO  [        ome.services.util.ServiceHandler] (l.Server-2)  Excp:	org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [4]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#4]
2010-07-02 10:46:38,416 ERROR [services.blitz.fire.PermissionsVerifierI] (l.Server-2) Exception thrown while checking password for:cxallan
ome.conditions.OptimisticLockException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [4]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#4]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
2010-07-02 10:46:38,435 INFO  [        ome.services.util.ServiceHandler] (l.Server-9)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-02 10:46:38,435 INFO  [        ome.services.util.ServiceHandler] (l.Server-9)  Args:	[null, ome.tools.spring.InternalServiceFactory@77d4433f]
2010-07-02 10:46:38,437 INFO  [         ome.security.basic.EventHandler] (l.Server-9)  Auth:	user=0,group=0,event=null(Sessions),sess=846be045-2f41-4f31-87e7-8af4c01c4b67
2010-07-02 10:46:38,463 INFO  [                 org.perf4j.TimingLogger] (l.Server-9) start[1278063998435] time[28] tag[omero.call.exception]
2010-07-02 10:46:38,463 WARN  [        ome.services.util.ServiceHandler] (l.Server-9) OptimisticLockingFailureException thrown.

org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [5]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#5]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#5]
	at org.hibernate.event.def.DefaultFlushEntityEventListener.getDatabaseSnapshot(DefaultFlushEntityEventListener.java:575)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:545)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:230)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:154)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
	at org.hibernate.event.def.DefaultDirtyCheckEventListener.onDirtyCheck(DefaultDirtyCheckEventListener.java:54)
	at org.hibernate.impl.SessionImpl.isDirty(SessionImpl.java:1192)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:167)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	... 22 more
2010-07-02 10:46:38,464 INFO  [        ome.services.util.ServiceHandler] (l.Server-9)  Excp:	org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [5]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#5]
2010-07-02 10:46:38,464 ERROR [services.blitz.fire.PermissionsVerifierI] (l.Server-9) Exception thrown while checking password for:cxallan
ome.conditions.OptimisticLockException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [5]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#5]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
2010-07-02 10:46:38,469 INFO  [        ome.services.util.ServiceHandler] (l.Server-8)  Executor.doWork -- ome.services.sessions.SessionManagerImpl.executeCheckPassword
2010-07-02 10:46:38,469 INFO  [        ome.services.util.ServiceHandler] (l.Server-8)  Args:	[null, ome.tools.spring.InternalServiceFactory@5fefa888]
2010-07-02 10:46:38,470 INFO  [         ome.security.basic.EventHandler] (l.Server-8)  Auth:	user=0,group=0,event=null(Sessions),sess=846be045-2f41-4f31-87e7-8af4c01c4b67
2010-07-02 10:46:38,492 INFO  [                 org.perf4j.TimingLogger] (l.Server-8) start[1278063998469] time[23] tag[omero.call.exception]
2010-07-02 10:46:38,493 WARN  [        ome.services.util.ServiceHandler] (l.Server-8) OptimisticLockingFailureException thrown.

org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [6]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#6]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#6]
	at org.hibernate.event.def.DefaultFlushEntityEventListener.getDatabaseSnapshot(DefaultFlushEntityEventListener.java:575)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:545)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:230)
	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:154)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
	at org.hibernate.event.def.DefaultDirtyCheckEventListener.onDirtyCheck(DefaultDirtyCheckEventListener.java:54)
	at org.hibernate.impl.SessionImpl.isDirty(SessionImpl.java:1192)
	at ome.security.basic.EventHandler.invoke(EventHandler.java:167)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
	... 22 more
2010-07-02 10:46:38,494 INFO  [        ome.services.util.ServiceHandler] (l.Server-8)  Excp:	org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [6]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#6]
2010-07-02 10:46:38,494 ERROR [services.blitz.fire.PermissionsVerifierI] (l.Server-8) Exception thrown while checking password for:cxallan
ome.conditions.OptimisticLockException: Object of class [ome.model.meta.ExperimenterGroup] with identifier [6]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ome.model.meta.ExperimenterGroup#6]
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:672)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:175)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:111)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at $Proxy56.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:339)
	at ome.services.sessions.SessionManagerImpl.executeCheckPasswordRO(SessionManagerImpl.java:919)
	at ome.services.sessions.SessionManagerImpl.executeCheckPassword(SessionManagerImpl.java:910)
	at ome.services.sessions.SessionManagerImpl.executePasswordCheck(SessionManagerImpl.java:889)
	at ome.services.blitz.fire.PermissionsVerifierI.checkPermissions(PermissionsVerifierI.java:71)
	at Glacier2._PermissionsVerifierDisp.___checkPermissions(_PermissionsVerifierDisp.java:90)
	at Glacier2._PermissionsVerifierDisp.__dispatch(_PermissionsVerifierDisp.java:118)
	at IceInternal.Incoming.invoke(Incoming.java:159)
	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
	at Ice.ConnectionI.message(ConnectionI.java:972)
	at IceInternal.ThreadPool.run(ThreadPool.java:577)
	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)

comment:14 Changed 14 years ago by jmoore

(In [7435]) Fixing optimistic lock exception after r7429 (See #2557)

comment:15 Changed 14 years ago by jmoore

(In [7440]) Better logging for executeCheckPassword (See #2557)

comment:16 Changed 14 years ago by jmoore

  • Resolution set to fixed
  • Status changed from assigned to closed

I did another round of testing including SSL testing. Things seem fine. All documented on https://www.openmicroscopy.org/site/support/omero4/server/install-ldap

comment:17 Changed 14 years ago by jmoore

(In [8444]) Better logging for executeCheckPassword (See #2557)

original-svn-id: file:///home/svn/omero/trunk@7440 05709c45-44f0-0310-885b-81a1db45b4a6

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.70269 sec.)

We're Hiring!