Task #10564 (closed)
BUG: crash after Plate Run deleted
Reported by: | pwalczysko | Owned by: | mtbcarroll |
---|---|---|---|
Priority: | major | Milestone: | 5.0.0-rc1 |
Component: | Insight | Version: | n.a. |
Keywords: | delete | Cc: | ux@… |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | 0.0d |
Sprint: | n.a. |
Description
Permissions testing ad hoc server
Login as user-1, private-1
Deleting a Plate Run of user-2. (in "Screen imported by user-2"). After a successful delete (Activities window says Done) double-click onto the Plate ("plate1") which contained the (now deleted) Run. Error appears. Insight crashes.
java.lang.Exception: Abnormal termination due to an uncaught exception. java.lang.IllegalArgumentException: Object cannot null. at pojos.ExperimenterData.<init>(ExperimenterData.java:78) at pojos.DataObject.getOwner(DataObject.java:290) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.getNodeOwner(ImageDisplay.java:154) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.setNodeDecoration(ImageDisplay.java:324) at org.openmicroscopy.shoola.agents.dataBrowser.visitor.DecoratorVisitor.visit(DecoratorVisitor.java:66) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageNode.doAccept(ImageNode.java:89) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.accept(ImageDisplay.java:412) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.accept(ImageDisplay.java:410) at org.openmicroscopy.shoola.agents.dataBrowser.browser.BrowserModel.accept(BrowserModel.java:432) at org.openmicroscopy.shoola.agents.dataBrowser.view.WellsModel.<init>(WellsModel.java:395) at org.openmicroscopy.shoola.agents.dataBrowser.view.DataBrowserFactory.createWellsDataBrowser(DataBrowserFactory.java:488) at org.openmicroscopy.shoola.agents.dataBrowser.view.DataBrowserFactory.getWellsDataBrowser(DataBrowserFactory.java:136) at org.openmicroscopy.shoola.agents.treeviewer.view.TreeViewerComponent.setPlates(TreeViewerComponent.java:2883) at org.openmicroscopy.shoola.agents.treeviewer.PlateWellsLoader.handleResult(PlateWellsLoader.java:156) at org.openmicroscopy.shoola.env.data.events.DSCallAdapter.eventFired(DSCallAdapter.java:90) at org.openmicroscopy.shoola.env.data.views.BatchCallMonitor$1.run(BatchCallMonitor.java:124) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702) at java.awt.EventQueue.access$400(EventQueue.java:82) at java.awt.EventQueue$2.run(EventQueue.java:663) at java.awt.EventQueue$2.run(EventQueue.java:661) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:672) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Abnormal termination due to an uncaught exception. java.lang.IllegalArgumentException: Object cannot null. at pojos.ExperimenterData.<init>(ExperimenterData.java:78) at pojos.DataObject.getOwner(DataObject.java:290) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.getNodeOwner(ImageDisplay.java:154) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.setNodeDecoration(ImageDisplay.java:324) at org.openmicroscopy.shoola.agents.dataBrowser.visitor.DecoratorVisitor.visit(DecoratorVisitor.java:66) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageNode.doAccept(ImageNode.java:89) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.accept(ImageDisplay.java:412) at org.openmicroscopy.shoola.agents.dataBrowser.browser.ImageDisplay.accept(ImageDisplay.java:410) at org.openmicroscopy.shoola.agents.dataBrowser.browser.BrowserModel.accept(BrowserModel.java:432) at org.openmicroscopy.shoola.agents.dataBrowser.view.WellsModel.<init>(WellsModel.java:395) at org.openmicroscopy.shoola.agents.dataBrowser.view.DataBrowserFactory.createWellsDataBrowser(DataBrowserFactory.java:488) at org.openmicroscopy.shoola.agents.dataBrowser.view.DataBrowserFactory.getWellsDataBrowser(DataBrowserFactory.java:136) at org.openmicroscopy.shoola.agents.treeviewer.view.TreeViewerComponent.setPlates(TreeViewerComponent.java:2883) at org.openmicroscopy.shoola.agents.treeviewer.PlateWellsLoader.handleResult(PlateWellsLoader.java:156) at org.openmicroscopy.shoola.env.data.events.DSCallAdapter.eventFired(DSCallAdapter.java:90) at org.openmicroscopy.shoola.env.data.views.BatchCallMonitor$1.run(BatchCallMonitor.java:124) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702) at java.awt.EventQueue.access$400(EventQueue.java:82) at java.awt.EventQueue$2.run(EventQueue.java:663) at java.awt.EventQueue$2.run(EventQueue.java:661) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:672) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Exception in thread "AWT-EventQueue-0" at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.showErrorDialog(UserNotifierImpl.java:189) at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:287) at org.openmicroscopy.shoola.env.AbnormalExitHandler.doTermination(AbnormalExitHandler.java:147) at org.openmicroscopy.shoola.env.AbnormalExitHandler.terminate(AbnormalExitHandler.java:85) at org.openmicroscopy.shoola.env.AWTExceptionHanlder.handle(AWTExceptionHanlder.java:99) 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 java.awt.EventDispatchThread.handleException(EventDispatchThread.java:412) at java.awt.EventDispatchThread.processException(EventDispatchThread.java:318) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:312) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Attachments (2)
Change History (24)
comment:1 Changed 12 years ago by jburel
- Sprint changed from 2013-04-09 (7)) to 2013-05-07 (8)
comment:2 Changed 11 years ago by pwalczysko
We have this bug also on Develop, exactly the same workflow. Repeated
- locally with todays server build from develop branch
- on Gretzky, with OMERO.insight-5.0.0-alpha4-294-2c30fb6-dirty-ice33-b298-mac
comment:3 Changed 11 years ago by pwalczysko
Because this is a full crash and is very near the features which we want to demonstrate soon, I think there is a danger of following happening: uninformed user testing the FS is trying to delete a plate and clicks onto a Run instead....
comment:4 Changed 11 years ago by jburel
- Sprint changed from 2013-05-07 (8) to Blocker 4.4.9 (1)
Moved from sprint 2013-05-07 (8)
comment:5 Changed 11 years ago by mtbcarroll
- Owner changed from jburel to mtbcarroll
- Version set to 4.4.8
comment:6 Changed 11 years ago by mtbcarroll
More recent testing suggests that the present behavior upon deleting another user's run is that when one double-clicks on the plate one sees remaining wells in an alarming fashion.
Changed 11 years ago by mtbcarroll
comment:7 Changed 11 years ago by mtbcarroll
In the DB, the rows from wellsample and plateacquisition are deleted, but not those from well and they reference plate directly.
comment:8 Changed 11 years ago by mtbcarroll
Reading the Blitz log, for the delete process the material appearing within tag[...] is,
omero.graph.query.PlateAcquisition omero.graph.query.PlateAcquisition.PlateAcquisitionAnnotationLink omero.graph.query.PlateAcquisition.PlateAcquisitionAnnotationLink.Annotation omero.graph.query.PlateAcquisition.WellSample omero.graph.query.PlateAcquisition.WellSample.Image omero.graph.query.PlateAcquisition.WellSample.Image.DatasetImageLink omero.graph.query.PlateAcquisition.WellSample.Image.Experiment omero.graph.query.PlateAcquisition.WellSample.Image.Experiment.MicrobeamManipulation omero.graph.query.PlateAcquisition.WellSample.Image.Experiment.MicrobeamManipulation.LightSettings omero.graph.query.PlateAcquisition.WellSample.Image.ImageAnnotationLink omero.graph.query.PlateAcquisition.WellSample.Image.ImageAnnotationLink.Annotation omero.graph.query.PlateAcquisition.WellSample.Image.ImagingEnvironment omero.graph.query.PlateAcquisition.WellSample.Image.Instrument omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.Detector omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.Dichroic omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.Filter omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.Filter.TransmittanceRange omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.FilterSet omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.LightSource omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.Microscope omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.OTF omero.graph.query.PlateAcquisition.WellSample.Image.Instrument.Objective omero.graph.query.PlateAcquisition.WellSample.Image.ObjectiveSettings omero.graph.query.PlateAcquisition.WellSample.Image.Pixels omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.ChannelAnnotationLink omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.ChannelAnnotationLink.Annotation omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.DetectorSettings omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.DetectorSettings.Detector omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath.Dichroic omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath.LightPathEmissionFilterLink omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath.LightPathEmissionFilterLink.Filter omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath.LightPathEmissionFilterLink.Filter.TransmittanceRange omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath.LightPathExcitationFilterLink omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath.LightPathExcitationFilterLink.Filter omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightPath.LightPathExcitationFilterLink.Filter.TransmittanceRange omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightSettings omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightSettings.LightSource omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.LightSettings.MicrobeamManipulation omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.LogicalChannel.OTF omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Channel.StatsInfo omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.PixelsAnnotationLink omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.PixelsAnnotationLink.Annotation omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.PixelsOriginalFileMap omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.PixelsOriginalFileMap.OriginalFile omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.PlaneInfo omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.PlaneInfo.PlaneInfoAnnotationLink omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.PlaneInfo.PlaneInfoAnnotationLink.Annotation omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.RenderingDef omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.RenderingDef.ChannelBinding omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.RenderingDef.CodomainMapContext omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.RenderingDef.QuantumDef omero.graph.query.PlateAcquisition.WellSample.Image.Pixels.Thumbnail omero.graph.query.PlateAcquisition.WellSample.Image.Roi omero.graph.query.PlateAcquisition.WellSample.Image.Roi.RoiAnnotationLink omero.graph.query.PlateAcquisition.WellSample.Image.Roi.RoiAnnotationLink.Annotation omero.graph.query.PlateAcquisition.WellSample.Image.Roi.RoiAnnotationLink.Annotation.AnnotationAnnotationLink omero.graph.query.PlateAcquisition.WellSample.Image.Roi.RoiAnnotationLink.Annotation.OriginalFile omero.graph.query.PlateAcquisition.WellSample.Image.Roi.Shape omero.graph.query.PlateAcquisition.WellSample.Image.StageLabel omero.graph.query.PlateAcquisition.WellSample.WellSampleAnnotationLink omero.graph.query.PlateAcquisition.WellSample.WellSampleAnnotationLink.Annotation
from which perhaps the *.Well entries appear conspicuously absent, as do any subsequent omero.deletestep.Well.* steps.
comment:9 Changed 11 years ago by mtbcarroll
My guess is that in spec.xml if we delete the last WellSample of a Well then we should also delete the Well. (Well samples do directly reference their well.)
comment:10 Changed 11 years ago by mtbcarroll
- Resolution set to fixed
- Status changed from new to closed
comment:11 Changed 11 years ago by mtbcarroll
- Resolution fixed deleted
- Status changed from closed to reopened
I don't understand spec.xml well enough. I think I nearly have it fixed, but the /Well bean has extra paths that perhaps I need to somehow include in the /PlateAcquisition traversal beyond the end of the /PlateAcquisition/WellSample/Well path?
comment:12 Changed 11 years ago by mtbcarroll
- Owner changed from mtbcarroll to jamoore
- Status changed from reopened to accepted
Josh, I think it has to be you figuring this one out! Though if I'm nearly there and you can easily explain to me what to do, then of course feel free to just instruct me and have me do it.
comment:13 Changed 11 years ago by mtbcarroll
(especially, I'm curious about how we can reuse the /Well bean paths for the wells deleted under /PlateAcquisition, if that's the way to fix the bug at all)
comment:14 Changed 11 years ago by mtbcarroll
- Owner changed from jamoore to mtbcarroll
It will probably work to repeat a bunch of the /Well bean stuff in /PlateAcquisition; I'll give it a go.
comment:15 Changed 11 years ago by mtbcarroll
- Resolution set to fixed
- Status changed from accepted to closed
fixed by above PR
comment:16 Changed 11 years ago by Mark Carroll <m.t.b.carroll@…>
- Remaining Time set to 0
(In [ecb6e4404f8111e2695fdd3f7dd880efca791e92/ome.git] on branch develop) fix #10564: graph traversal from plate run to well
comment:17 Changed 11 years ago by Josh Moore <josh@…>
(In [e779b3b518e6ac7f7b0b08aec7867793767dd06b/ome.git] on branch develop) Merge pull request #1600 from mtbc/wellsample-to-well-10564
fix #10564: include wells in plate run processing (rebased)
comment:18 Changed 11 years ago by mtbcarroll
- Milestone changed from OMERO-4.4.9 to OMERO-5
- Priority changed from critical to major
- Resolution fixed deleted
- Sprint Blocker 4.4.9 (1) deleted
- Status changed from closed to reopened
- Version 4.4.8 deleted
Although it seemed fixed, I am now seeing the "surprising wells" mess on plates in develop if in Insight I try deleting the run for, say, bd-pathway and others. I wonder what is making the wells stay.
This isn't simply a regression: http://hudson.openmicroscopy.org.uk/job/OmeroJava-integration-develop/lastSuccessfulBuild/testngreports/integration.delete/integration.delete.HierarchyDeleteTest/testDeletingMultipleRunsWithOrphanedSamples/ is still passing.
comment:19 Changed 11 years ago by jamoore
- Milestone changed from OMERO-5 to 5.0.0-beta2
comment:20 Changed 11 years ago by mtbcarroll
- Resolution set to fixed
- Status changed from reopened to closed
This turns out to be fine: the plate had some wells that had no samples in the run. Doing the delete and checking the database before and after demonstrates that the deletion is working as previously specified. Filed http://trac.openmicroscopy.org.uk/ome/ticket/11623 accordingly.
comment:21 Changed 11 years ago by Mark Carroll <m.t.b.carroll@…>
(In [2a37e6ed0f7ed87912f1487578b9ab8b07f57799/ome.git]on branches master, dev_4_4) fix #10564: graph traversal from plate run to well
comment:22 Changed 11 years ago by Josh Moore <josh@…>
(In [88e51ed0b42ee06047584dfa2c1b95fa4f17f313/ome.git]on branches master, dev_4_4) Merge pull request #1430 from mtbc/wellsample-to-well-10564
fix #10564: include wells in plate run processing
Moved from sprint 2013-04-09 (7))