Task #11368 (closed)
BUG:Delete ROI and save
Reported by: | omero-qa | Owned by: | mtbcarroll |
---|---|---|---|
Priority: | critical | Milestone: | OMERO-4.4.9 |
Component: | Insight | Version: | 4.4.8 |
Keywords: | n.a. | Cc: | a.m.davies@… |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | 0.0d |
Sprint: | Blocker 4.4.9 (1) |
Description
https://www.openmicroscopy.org/qa2/qa2/qa/feedback/7565/
Comment: Trying to delete ROI's and then save
java.lang.Exception: Abnormal termination due to an uncaught exception. java.lang.IllegalArgumentException: The method can only be invoked in the LOADING_ROI state. at org.openmicroscopy.shoola.agents.measurement.view.MeasurementViewerComponent.setLoadingFromServerClient(MeasurementViewerComponent.java:884) at org.openmicroscopy.shoola.agents.measurement.ServerSideROILoader.handleResult(ServerSideROILoader.java:109) 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(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Abnormal termination due to an uncaught exception. java.lang.IllegalArgumentException: The method can only be invoked in the LOADING_ROI state. at org.openmicroscopy.shoola.agents.measurement.view.MeasurementViewerComponent.setLoadingFromServerClient(MeasurementViewerComponent.java:884) at org.openmicroscopy.shoola.agents.measurement.ServerSideROILoader.handleResult(ServerSideROILoader.java:109) 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(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 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(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at java.awt.EventDispatchThread.handleException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Change History (8)
comment:1 Changed 11 years ago by jburel
- Component changed from from QA to Insight
- Milestone changed from Unscheduled to OMERO-4.4.9
- Priority changed from minor to critical
- Sprint set to Blocker 4.4.9 (1)
comment:2 Changed 11 years ago by mtbcarroll
- Owner changed from jburel to mtbcarroll
comment:3 Changed 11 years ago by mtbcarroll
- Status changed from new to accepted
comment:4 Changed 11 years ago by mtbcarroll
comment:5 Changed 11 years ago by mtbcarroll
comment:6 Changed 11 years ago by mtbcarroll
- Resolution set to fixed
- Status changed from accepted to closed
comment:7 Changed 11 years ago by jean-marie burel <j.burel@…>
- Remaining Time set to 0
(In [b0eff21ac62e3bf4ca243c01328a7ba1e6652738/ome.git] on branch develop) Merge pull request #1527 from mtbc/rebased/develop/activity-handler-11368
fix #11368: adjust event dispatch in Insight agents (rebased onto develop)
comment:8 Changed 10 years ago by jean-marie burel <j.burel@…>
(In [b0b62f63d8aa0f43c09076a496327ad4c0735713/ome.git]on branches master, dev_4_4) Merge pull request #1480 from mtbc/activity-handler-11368
fix #11368: adjust event dispatch in Insight agents
So, what's happening here is that when a ROI is deleted, MeasurementViewerModel.onROIDeleted gets called twice; each time it sets the model state to READY. The first call is caused when the save button is pressed by MeasurementViewerComponent.saveROIToServer dispatching a DeleteActivity to the MeasurementAgent; the second follows in the event dispatch thread as DataObjectRemover.update goes on to call DeleteActivity.endActivity which again reaches onROIDeleted setting the state to READY.
MeasurementViewerModel.fireLoadROIServerOrClient gets called once, in the event dispatch thread, effectively by ROISaver.handleResult receiving ROIs as the result of a DSCallOutcomeEvent, and it sets the state to LOADING_ROI.
The exception occurs when the state is set to LOADING_ROI by fireLoadROIServerOrClient before it gets set to READY by DataObjectRemover.update. After the above three calls when, via ServerSideROILoader handling a DSCallOutcomeEvent, MeasurementViewerComponent.setLoadingFromServerClient is called, it objects to that the state is READY at that point instead of being LOADING_ROI.