Task #8283 (closed)
Bug: HCS Move group
Reported by: | saloynton | Owned by: | jamoore |
---|---|---|---|
Priority: | major | Milestone: | OMERO-4.4 |
Component: | Web | Version: | n.a. |
Keywords: | n.a. | Cc: | saloynton, jburel, atarkowska |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | 0.0d |
Sprint: | 2012-06-05 (16) |
Description
Using move group for HCS does not currently transfer the screen over to the selected group.
This was moving into the test owner group under your own account Will. The actual screens have been moved from the swedlow group but have not been visible in the test owner group on insight.
Attachments (1)
Change History (26)
comment:1 Changed 12 years ago by wmoore
- Sprint set to 2012-04-24 (13)
comment:2 Changed 12 years ago by wmoore
- Status changed from new to accepted
comment:3 Changed 12 years ago by wmoore
- Cc jburel added
comment:4 Changed 12 years ago by wmoore
- Owner changed from wmoore to atarkowska
I have fixed the issue of not being able to remove Screens from Plates. This is in sprint13-web-backlog branch: https://github.com/aleksandra-tarkowska/openmicroscopy/commit/32ae85458ea62ac5af58aaf13d50ebae3032c90e
The main bug with moving and display of plate in the tree, is that when a Plate moved (from orphaned) and refreshed, it loads it's subtree with this url
http://localhost:8000/webclient/load_data/screen/101/plate/354/?view=tree
And this code is used in load_data ('tree' is ignored).
elif kw.has_key('plate'): fields = manager.plate.getNumberOfFields(kw.get('acquisition', None)) if fields is not None: form_well_index = WellIndexForm(initial={'index':index, 'range':fields}) if index == 0: index = fields[0] template = "webclient/data/plate.html"
comment:5 Changed 12 years ago by atarkowska
- Owner atarkowska deleted
- Status changed from accepted to new
comment:6 Changed 12 years ago by atarkowska
- Owner set to atarkowska
comment:7 Changed 12 years ago by atarkowska
- Cc atarkowska added
- Owner changed from atarkowska to wmoore
comment:8 Changed 12 years ago by jburel
- Sprint changed from 2012-04-24 (13) to 2012-05-08 (14)
Moved from sprint 2012-04-24 (13)
comment:9 Changed 12 years ago by jburel
- Sprint changed from 2012-05-08 (14) to 2012-05-22 (15)
Moved from sprint 2012-05-08 (14)
comment:10 Changed 12 years ago by Will Moore <will@…>
(In [fae44b8a57b630adce33407bf4692289276008eb/ome.git] on branch develop) chgrp support of 'Screen' and 'Plate'. See #8283
comment:11 Changed 12 years ago by Will Moore <will@…>
(In [32ae85458ea62ac5af58aaf13d50ebae3032c90e/ome.git] on branch develop) 'Remove' Plates from Screens in jsTree. See #8283
comment:12 Changed 12 years ago by wmoore
Trying to move Plate to different group using:
def chgrpObject(self, graph_spec, obj_id, group_id): """ Change the Group for a specified object using queue. @param graph_spec: String to indicate the object type or graph specification. Examples include: * '/Image' * '/Project' # will move contents too. * NB: Also supports 'Image' etc for convenience @param obj_id: ID for the object to move. @param group_id: The group to move the data to. """ if not graph_spec.startswith('/'): graph_spec = '/%s' % graph_spec logger.debug('chgrp Received object type, using "%s"' % graph_spec) chgrp = omero.cmd.Chgrp(type=graph_spec, id=obj_id, options=None, grp=group_id) prx = self.c.sf.submit(chgrp) return prx
Got:
2012-05-22 11:25:22,744 ERROR [ omeroweb.webclient.views] (proc.84154) activities:1994 chgrp failed with: step: 456, stacktrace: ome.services.graphs.GraphException(message=Release at depth 0! at ome.services.graphs.GraphState.rollback(GraphState.java:486) at ome.services.graphs.GraphStep.rollback(GraphStep.java:318) at ome.services.graphs.GraphState.handleException(GraphState.java:352) at ome.services.graphs.GraphState.execute(GraphState.java:312) at omero.cmd.graphs.ChgrpI.step(ChgrpI.java:145) at omero.cmd.HandleI.steps(HandleI.java:342) at omero.cmd.HandleI.doRun(HandleI.java:320) at omero.cmd.HandleI$1.doWork(HandleI.java:272) at omero.cmd.HandleI$1.doWork(HandleI.java:268) at sun.reflect.GeneratedMethodAccessor243.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:498) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at ome.security.basic.EventHandler.invoke(EventHandler.java:165) 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:236) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:116) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy65.doWork(Unknown Source) at ome.services.util.Executor$Impl.execute(Executor.java:402) at omero.cmd.HandleI.run(HandleI.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at ome.services.util.Executor$Impl$1.call(Executor.java:427) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) , message: , id: 1
comment:13 Changed 12 years ago by wmoore
- Owner changed from wmoore to jmoore
If I try to chgrp a Plate that has no PlateAcquisitions?, I get
2012-05-22 11:36:13,721 ERROR [ omeroweb.webclient.views] (proc.84154) activities:1994 chgrp failed with: step: 44, stacktrace: java.lang.ClassCastException: org.hibernate.hql.ast.tree.IdentNode cannot be cast to org. hibernate.hql.ast.tree.DotNode at org.hibernate.hql.ast.tree.AssignmentSpecification.<init>(AssignmentSpecification.java:72) at org.hibernate.hql.ast.HqlSqlWalker.evaluateAssignment(HqlSqlWalker.java:1072) at org.hibernate.hql.ast.HqlSqlWalker.evaluateAssignment(HqlSqlWalker.java:1066) at org.hibernate.hql.antlr.HqlSqlBaseWalker.assignment(HqlSqlBaseWalker.java:1092) at org.hibernate.hql.antlr.HqlSqlBaseWalker.setClause(HqlSqlBaseWalker.java:772) at org.hibernate.hql.antlr.HqlSqlBaseWalker.updateStatement(HqlSqlBaseWalker.java:367) at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:245) at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
comment:14 Changed 12 years ago by jburel
- Sprint changed from 2012-05-22 (15) to 2012-06-05 (16)
Moved from sprint 2012-05-22 (15)
comment:15 Changed 12 years ago by jmoore
- Remaining Time set to 0.5
- Status changed from new to accepted
comment:16 Changed 12 years ago by jmoore
- Owner changed from jmoore to wmoore
- Remaining Time changed from 0.5 to 0.25
I think Will has said that we don't have a test for this. After all of my work on chgrp in #8979, can someone try to reproduce this please? Passing to Will, but I don't know who would be optimal.
comment:17 Changed 12 years ago by jmoore
(btw, Jean-Marie does have a Plate-with-Plate-Acquisition test in OmeroJava/test/integration/chgrp/HierarchyMoveTest.java which is passing
comment:18 Changed 12 years ago by wmoore
I just tried again in Web (latest sprint16 build just now) and Insight. Moving a Plate (No PlateAcquisition? worked OK). Moving a Plate with Acquisitions gave me this (I'll attach the ome.xml file for this:
STEP ERR step: 454, stacktrace: ome.services.graphs.GraphException(message=Release at depth 0! at ome.services.graphs.GraphState.rollback(GraphState.java:486) at ome.services.graphs.GraphStep.rollback(GraphStep.java:318) at ome.services.graphs.GraphState.handleException(GraphState.java:352) at ome.services.graphs.GraphState.execute(GraphState.java:312) at omero.cmd.graphs.ChgrpI.step(ChgrpI.java:154) at omero.cmd.HandleI.steps(HandleI.java:439) at omero.cmd.HandleI.doRun(HandleI.java:414) at omero.cmd.HandleI$1.doWork(HandleI.java:361) at omero.cmd.HandleI$1.doWork(HandleI.java:357) at sun.reflect.GeneratedMethodAccessor253.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:502) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at ome.security.basic.EventHandler.invoke(EventHandler.java:154) 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:241) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:116) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy65.doWork(Unknown Source) at ome.services.util.Executor$Impl.execute(Executor.java:406) at omero.cmd.HandleI.run(HandleI.java:355) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at ome.services.util.Executor$Impl$1.call(Executor.java:431) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) , message: , id: 2
comment:19 Changed 12 years ago by jmoore
Looks like this is not as bad as it looks, but the exception coming back should probably be a different one:
2012-06-04 10:57:28,307 DEBUG [ ome.services.chgrp.ChgrpValidation] (2-thread-5) 1<==select count(*) from ome.model.acquisition.Filter target, ome.model.acquisition.LightPathEmissionFilterLink source where target.id = source.child.id and source.id = ? and not (target.details.group.id = ? or target.details.group.id = ?), i d=7, grp=2, userGroup=12012-06-04 10:57:28,307 INFO [ org.perf4j.TimingLogger] (2-thread-5) start[1338800248305] time[2] tag[omero.chgrp.validation.ome.model.acquisition.F ilter.child]2012-06-04 10:57:28,308 DEBUG [ ome.services.chgrp.ChgrpValidation] (2-thread-5) 0<==select count(*) from ome.model.acquisition.LightPath target, ome.model.acquisition.LightPathEmissionFilterLink source where target.id = source.parent.id and source.id = ? and not (target.details.group.id = ? or target.details.group.id = ? ), id=7, grp=2, userGroup=12012-06-04 10:57:28,308 INFO [ org.perf4j.TimingLogger] (2-thread-5) start[1338800248307] time[1] tag[omero.chgrp.validation.ome.model.acquisition.L ightPath.parent] 2012-06-04 10:57:28,308 DEBUG [ ome.services.graphs.GraphState] (2-thread-5) Rolled back savepoint ad8813d9580e46d2b48fc30af1968db6 with 0 ids: new depth=1 2012-06-04 10:57:28,309 INFO [ omero.cmd.graphs.ChgrpI.@26b0f62e] (2-thread-5) Cancelled 2012-06-04 10:57:28,309 INFO [ org.perf4j.TimingLogger] (2-thread-5) start[1338800248304] time[5] tag[omero.request.step.454] 2012-06-04 10:57:28,309 INFO [ org.perf4j.TimingLogger] (2-thread-5) start[1338800246773] time[1536] tag[omero.request] 2012-06-04 10:57:28,310 INFO [ org.perf4j.TimingLogger] (2-thread-5) start[1338800246749] time[1561] tag[omero.call.exception] 2012-06-04 10:57:28,310 INFO [ ome.services.util.ServiceHandler] (2-thread-5) Excp: omero.cmd.HandleI$Cancel: STEP ERR
i.e. a Filter is still not being handled properly.
comment:20 Changed 12 years ago by wmoore
- Owner changed from wmoore to jmoore
Josh - Let me know if you need a test for this... I would probably do it by adding the test file below to the code-base, so that it could be imported in the test.
comment:21 Changed 12 years ago by jmoore
- Remaining Time changed from 0.25 to 0.1
Sorry, I thought I had marked this "accepted" this morning. I've fixed the issue and have been testing manually with your file. How was it created? Do we have others like it in the system already?
Note: this is related to #2857
comment:22 Changed 12 years ago by jmoore
Just pushed a number of commits, but I'll leave this open until we decide on the testing strategy.
2fae963 - Merge branch '8283-chgrp-fixes' into sprint16-bugfixes (2 minutes ago) <jmoore> b4afd62 - (8283-chgrp-fixes) Handle linked LightPath Filters in graphs (See #2857, #8283) (17 hours ago) <jmoore> 844e5ee - Better handling of closed savepoints in GraphStep (Fix #8283) (17 hours ago) <jmoore> 33a396c - Handle LockTimeout on graphspeclist in chgrp.py (17 hours ago) <jmoore> beb20d1 - Graph clean up and logging (17 hours ago) <jmoore> 980cc5c - Add log settings for graphs to log4j.xml (18 hours ago) <jmoore> edaf8b5 - Fix and improve chgrp.py's use of Command API (22 hours ago) <jmoore> f423439 - Remove redundant rsp fields in commands (23 hours ago) <jmoore>
comment:23 Changed 12 years ago by Will Moore <will@…>
(In [d8d2e141d596be4e5fc29811f4925b048028b148/ome.git] on branch develop) Improve display of chgrp errors in Activities panel. See #8283
comment:24 Changed 12 years ago by jmoore <josh@…>
- Remaining Time changed from 0.1 to 0
- Resolution set to fixed
- Status changed from accepted to closed
(In [844e5eef974317ff037cd6bdc22773a30e1a068a/ome.git] on branch develop) Better handling of closed savepoints in GraphStep? (Fix #8283)
Previously we had no case apparently where an invalidated
savepoint was being invalidated again. This case is now
handled by GraphStep?.sanityCheck.
comment:25 Changed 12 years ago by jmoore <josh@…>
(In [b4afd6235823394a6f1806153d77c2993a6f1895/ome.git] on branch develop) Handle linked LightPath? Filters in graphs (See #2857, #8283)
Unsure why these were commented out, but they were the
underlying problem which made the odd exception caused
in #8283 appear.
Web chgrp now supports 'Screen' and 'Plate' in Ola's sprint13-web-backlog branch: https://github.com/aleksandra-tarkowska/openmicroscopy/commit/fae44b8a57b630adce33407bf4692289276008eb
However, chgrp seems not to work on Plates with Plate-Acquisitions.