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 #11368 (closed)

Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

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

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.

Last edited 11 years ago by mtbcarroll (previous) (diff)

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

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.66399 sec.)

We're Hiring!