Task #1329 (new)
Opened 15 years ago
Last modified 12 years ago
ValidationException while delete experimenter (Delete user umbrella)
Reported by: | atarkowska | Owned by: | jamoore |
---|---|---|---|
Priority: | critical | Milestone: | Unscheduled |
Component: | WebAdmin | Version: | 3.0-M1 |
Keywords: | n.a. | Cc: | jrswedlow, jburel |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | 3.0d |
Sprint: | n.a. |
Description (last modified by jmoore)
exception ::omero::ValidationException { serverStackTrace = ome.conditions.ValidationException: could not delete: [ome.model.meta.Experimenter#3]; nested exception is org.hibernate.exception.ConstraintViolationException: could not delete: [ome.model.meta.Experimenter#3] at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:624) 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:171) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:169) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy63.deleteExperimenter(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at ome.security.basic.BasicSecurityWiring.invoke(BasicSecurityWiring.java:78) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at ome.services.blitz.fire.AopContextInitializer.invoke(AopContextInitializer.java:35) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy63.deleteExperimenter(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at ome.services.blitz.util.IceMethodInvoker.callOrClose(IceMethodInvoker.java:257) at ome.services.blitz.util.IceMethodInvoker.invoke(IceMethodInvoker.java:179) at ome.services.throttling.Callback.run(Callback.java:55) at ome.services.throttling.InThreadThrottlingStrategy.callInvokerOnRawArgs(InThreadThrottlingStrategy.java:37) at ome.services.blitz.impl.AbstractAmdServant.callInvokerOnRawArgs(AbstractAmdServant.java:114) at ome.services.blitz.impl.AdminI.deleteExperimenter_async(AdminI.java:191) at omero.api._IAdminTie.deleteExperimenter_async(_IAdminTie.java:169) at omero.api._IAdminDisp.___deleteExperimenter(_IAdminDisp.java:900) at omero.api._IAdminDisp.__dispatch(_IAdminDisp.java:1289) at IceInternal.Incoming.invoke(Incoming.java:166) at Ice.ConnectionI.invokeAll(ConnectionI.java:2045) at Ice.ConnectionI.message(ConnectionI.java:977) at IceInternal.ThreadPool.run(ThreadPool.java:575) at IceInternal.ThreadPool.access$100(ThreadPool.java:12) at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:951) serverExceptionClass = ome.conditions.ValidationException message = could not delete: [ome.model.meta.Experimenter#3]; nested exception is org.hibernate.exception.ConstraintViolationException: could not delete: [ome.model.meta.Experimenter#3] }
Solution
The solution will be to reuse the logic in source:trunk/sql/psql/OMERO4.2__0/omero-4.1-move-to-group.sql at the JDBC-level and find all data belonging to a user (or group). There may need to be an option of whom to move the data to (rather than deleting).
Attachments (1)
Change History (6)
Changed 15 years ago by atarkowska
comment:1 Changed 15 years ago by jmoore
- Cc jrswedlow jburel added
- Description modified (diff)
- Milestone changed from OMERO-Beta4.1 to OMERO-Beta4.2
comment:2 Changed 15 years ago by jmoore
See #547
comment:3 Changed 14 years ago by jmoore
- Milestone changed from OMERO-Beta4.2 to Unscheduled
- Summary changed from ValidationException while delete experimenter to ValidationException while delete experimenter (Delete user umbrella)
comment:4 Changed 14 years ago by jmoore
- Description modified (diff)
- Remaining Time set to 3.0
comment:5 Changed 12 years ago by jburel
Referencing ticket #547 has changed sprint.
Note: See
TracTickets for help on using
tickets.
You may also have a look at Agilo extensions to the ticket.
Deleting an experimenter at the moment is extremely difficult. Essentially nothing can have been done by the user, otherwise the provenance information restricts everything.