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 #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)

ValidationException.html (62.9 KB) - added by atarkowska 15 years ago.

Download all attachments as: .zip

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

Deleting an experimenter at the moment is extremely difficult. Essentially nothing can have been done by the user, otherwise the provenance information restricts everything.

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.

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

We're Hiring!