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

Opened 13 years ago

Closed 13 years ago

BUG:Feedback 3791:Model not loaded

Reported by: ajpatterson Owned by: wmoore
Priority: major Milestone: OMERO-Beta4.3
Component: Services Version: n.a.
Keywords: n.a. Cc: jamoore, jburel, wmoore
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2011-06-16 (14)

Description (last modified by ajpatterson)

Crash generated by importing file 6x4y1z1t1c8b-swatch-instrument.ome, opening main viewer, showing right panel, picking aqusition, then trying to expand the channel tab.

http://qa.openmicroscopy.org.uk/qa/feedback/3791/

Comment: expanding channel info

java.lang.Exception: Abnormal termination due to an uncaught exception.
omero.UnloadedEntityException: Object unloaded:omero.model.LaserI@326a40d6
	at omero.model.LaserI.errorIfUnloaded(LaserI.java:32)
	at omero.model.LaserI.getModel(LaserI.java:430)
	at omero.model.LightSource.getModel(LightSource.java:105)
	at pojos.LightSourceData.getLightSourceModel(LightSourceData.java:143)
	at org.openmicroscopy.shoola.agents.util.EditorUtil.transformLightSource(EditorUtil.java:1656)
	at org.openmicroscopy.shoola.agents.util.EditorUtil.transformLightSourceAndSetting(EditorUtil.java:1592)
	at org.openmicroscopy.shoola.agents.metadata.editor.ChannelAcquisitionComponent.setChannelAcquisitionData(ChannelAcquisitionComponent.java:451)
	at org.openmicroscopy.shoola.agents.metadata.editor.AcquisitionDataUI.setChannelAcquisitionData(AcquisitionDataUI.java:485)
	at org.openmicroscopy.shoola.agents.metadata.editor.EditorUI.setChannelAcquisitionData(EditorUI.java:643)
	at org.openmicroscopy.shoola.agents.metadata.editor.EditorComponent.setChannelAcquisitionData(EditorComponent.java:522)
	at org.openmicroscopy.shoola.agents.metadata.AcquisitionDataLoader.handleResult(AcquisitionDataLoader.java:101)
	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:678)
	at java.awt.EventQueue.access$000(EventQueue.java:86)
	at java.awt.EventQueue$1.run(EventQueue.java:639)
	at java.awt.EventQueue$1.run(EventQueue.java:637)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:648)
	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.
omero.UnloadedEntityException: Object unloaded:omero.model.LaserI@326a40d6
	at omero.model.LaserI.errorIfUnloaded(LaserI.java:32)
	at omero.model.LaserI.getModel(LaserI.java:430)
	at omero.model.LightSource.getModel(LightSource.java:105)
	at pojos.LightSourceData.getLightSourceModel(LightSourceData.java:143)
	at org.openmicroscopy.shoola.agents.util.EditorUtil.transformLightSource(EditorUtil.java:1656)
	at org.openmicroscopy.shoola.agents.util.EditorUtil.transformLightSourceAndSetting(EditorUtil.java:1592)
	at org.openmicroscopy.shoola.agents.metadata.editor.ChannelAcquisitionComponent.setChannelAcquisitionData(ChannelAcquisitionComponent.java:451)
	at org.openmicroscopy.shoola.agents.metadata.editor.AcquisitionDataUI.setChannelAcquisitionData(AcquisitionDataUI.java:485)
	at org.openmicroscopy.shoola.agents.metadata.editor.EditorUI.setChannelAcquisitionData(EditorUI.java:643)
	at org.openmicroscopy.shoola.agents.metadata.editor.EditorComponent.setChannelAcquisitionData(EditorComponent.java:522)
	at org.openmicroscopy.shoola.agents.metadata.AcquisitionDataLoader.handleResult(AcquisitionDataLoader.java:101)
	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:678)
	at java.awt.EventQueue.access$000(EventQueue.java:86)
	at java.awt.EventQueue$1.run(EventQueue.java:639)
	at java.awt.EventQueue$1.run(EventQueue.java:637)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:648)
	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:183)
	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:272)
	at org.openmicroscopy.shoola.env.AbnormalExitHandler.doTermination(AbnormalExitHandler.java:138)
	at org.openmicroscopy.shoola.env.AbnormalExitHandler.terminate(AbnormalExitHandler.java:83)
	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 (1)

6x4y1z1t1c8b-swatch-instrument.ome (3.4 KB) - added by ajpatterson 13 years ago.

Download all attachments as: .zip

Change History (22)

comment:1 Changed 13 years ago by jburel

  • Component changed from from QA to Services
  • Milestone changed from Unscheduled to OMERO-Beta4.3
  • Remaining Time set to 0.1
  • Reporter omero-qa deleted
  • Sprint set to 2011-06-02 (13)
  • Summary changed from BUG:Feedback 3791 to BUG:Feedback 3791:Model not loaded

comment:2 Changed 13 years ago by ajpatterson

  • Cc a.j.patterson@… removed
  • Description modified (diff)
  • Reporter set to ajpatterson

Changed 13 years ago by ajpatterson

comment:3 Changed 13 years ago by jburel

  • Remaining Time changed from 0.1 to 0.15
  • Status changed from new to accepted

comment:4 Changed 13 years ago by jburel

OK, I have figured out the problem
The tests pass but in that file, we have a laser with a pump. No test to cover than case

comment:5 Changed 13 years ago by jburel

  • Remaining Time changed from 0.15 to 0.3

comment:6 Changed 13 years ago by jburel <j.burel@…>

(In [93f866265b729a8b086e041655509d84bb2a03ce/ome.git] on branch develop) Fix query when loading light source for channel (see #5742)

comment:7 Changed 13 years ago by jburel

  • Cc jmoore added
  • Priority changed from minor to critical

query works fine when directly made using the query service from insight but when done using the MetadataService#loadChannelData

    serverStackTrace = "ome.conditions.InternalException: Cannot handle type:ome.model.acquisition.Arc:Id_201
                        	at ome.util.ModelMapper.findTarget(ModelMapper.java:151)
                        	at omero.util.IceMapper.filter(IceMapper.java:989)
                        	at ome.model.acquisition.Laser.acceptFilter(Laser.java:300)
                        	at omero.util.IceMapper.filter(IceMapper.java:985)
                        	at ome.model.acquisition.LightSettings.acceptFilter(LightSettings.java:337)
                        	at omero.util.IceMapper.filter(IceMapper.java:985)
                        	at ome.model.core.LogicalChannel.acceptFilter(LogicalChannel.java:794)
                        	at omero.util.IceMapper.filter(IceMapper.java:985)
                        	at ome.util.ContextFilter.filter(ContextFilter.java:160)
                        	at ome.util.ContextFilter.doFilter(ContextFilter.java:84)
                        	at ome.util.ContextFilter.filter(ContextFilter.java:121)

comment:8 Changed 13 years ago by jburel <j.burel@…>

(In [c786da2087de38daec289f68c2d294cd21608752/ome.git] on branch develop) Add tests for laser with pump (see #5742)

comment:9 Changed 13 years ago by jburel

  • Cc jburel added

comment:10 Changed 13 years ago by jburel

  • Owner jburel deleted
  • Status changed from accepted to new

comment:11 Changed 13 years ago by jburel <j.burel@…>

(In [eb99752ab0f9826eb0317e77010060d680715a1d/ome.git] on branch develop) Improve test for laser pump (see #5742)

comment:12 Changed 13 years ago by jburel

  • Sprint changed from 2011-06-02 (13) to 2011-06-16 (14)

Moved from sprint 2011-06-02 (13)

comment:13 Changed 13 years ago by jburel

One point I notice
If a laser has a pump. If in the query, the pump is not requested when loading the laser form the logical channel.
The laser is not loaded.
But it is not true if i load the laser from instrument.

comment:14 Changed 13 years ago by jmoore

Jean-Marie, by changing the generated code to load some types "EARGERLY" then I can get rid of this error. I had previously tried to do this, but I think the commit was wrong:

commit 7550600f643a35aea45863e1262cb1ce2ffc65a8
Author: jmoore <jmoore@05709c45-44f0-0310-885b-81a1db45b4a6>
Date:   Wed Jan 16 13:41:42 2008 +0000

    StructuredAnnotation : Changing default loading to eager for all abstract m-1 relations
    
    

This would mean that all the following fields would be loaded automatically (i.e. even if you don't do a "join fetch" in HQL, the would still be loaded). Do you think that's ok?

~/git/components/model/target/generated/src $ grep -r -A 10 EAGER * | grep -E " get"
ome/model/acquisition/Instrument.java-    protected java.util.Set<ome.model.acquisition.LightSource> getLightSource() {
ome/model/acquisition/Laser.java-    public ome.model.acquisition.LightSource getPump() {
ome/model/acquisition/LightSettings.java-    public ome.model.acquisition.LightSource getLightSource() {
ome/model/annotations/AnnotationAnnotationLink.java-    public IObject getParent() {
ome/model/annotations/AnnotationAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/ChannelAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/DatasetAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/ExperimenterAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/ExperimenterGroupAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/ImageAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/NamespaceAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/NodeAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/OriginalFileAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/PixelsAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/PlaneInfoAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/PlateAcquisitionAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/PlateAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/ProjectAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/ReagentAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/RoiAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/ScreenAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/SessionAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/WellAnnotationLink.java-    public IObject getChild() {
ome/model/annotations/WellSampleAnnotationLink.java-    public IObject getChild() {
ome/model/display/RenderingDef.java-    protected java.util.List<ome.model.display.CodomainMapContext> getSpatialDomainEnhancement() {
ome/model/jobs/JobOriginalFileLink.java-    public IObject getParent() {
ome/model/roi/Roi.java-    protected java.util.List<ome.model.roi.Shape> getShapes() {

comment:15 Changed 13 years ago by jburel

Seems to be a lot
especially one related to image, annotation annotation, project etc

comment:16 Changed 13 years ago by jburel

  • Cc wmoore added
  • Priority changed from critical to major

This will require some significant rework, for now. If we have a laser with a pump, client should check if the light source is loaded, if not then load using IQuery from client.
Will: I will add code query to the ticket when implemented.

comment:17 Changed 13 years ago by jburel

  • Owner set to jburel
  • Remaining Time changed from 0.3 to 0.2
  • Status changed from new to accepted

comment:18 Changed 13 years ago by jburel <j.burel@…>

(In [722b86ff0cd238c43816c4dca7a0422dcb490f99/ome.git] on branch develop) Modify loading sequence of logical channel if laser linked to light settings has a pump (see #5742)

comment:19 Changed 13 years ago by jburel

  • Owner changed from jburel to wmoore

From OMEROGateway

Object loadChannelAcquisitionData(long channelID)
		throws DSOutOfServiceException, DSAccessException
	{
		//stage Label
		isSessionAlive();
		try {
			IMetadataPrx service = getMetadataService();
			List<Long> ids = new ArrayList<Long>(1);
			ids.add(channelID);
			List l = service.loadChannelAcquisitionData(ids);
			if (l != null && l.size() == 1) {
				LogicalChannel lc = (LogicalChannel) l.get(0);
				ChannelAcquisitionData data = new ChannelAcquisitionData(lc);
				LightSourceData src = data.getLightSource();
				if (src.isLoaded()) return data;
				//Not loaded so need to load
				IObject io = src.asIObject();
				if (io instanceof Laser) { //only case to handle.
					StringBuilder sb = new StringBuilder();
					sb.append("select l from Laser as l ");
					sb.append("left outer join fetch l.type ");
					sb.append("left outer join fetch l.laserMedium ");
					sb.append("left outer join fetch l.pulse as pulse ");
					sb.append("left outer join fetch l.pump as pump ");
					sb.append("left outer join fetch pump.type as pt ");
					sb.append("where l.id = :id");
					ParametersI param = new ParametersI();
					param.addId(src.getId());
					Laser laser = (Laser) getQueryService().findByQuery(
							sb.toString(), param);
					if (laser != null)
						data.setLightSource(new LightSourceData(laser));
				}
				return data;
			}
			return null;
		} catch (Exception e) {
			handleException(e, "Cannot load channel acquisition data.");
		}
		return null;
	}

comment:20 Changed 13 years ago by Will Moore <will@…>

(In [89e07fddcf7aa395445975686add545d5e48425a/ome.git] on branch develop) Blitz LightSettingsWrapper?.getLightSource() loads if necessary. See #5742

comment:21 Changed 13 years ago by Will Moore <will@…>

  • Remaining Time changed from 0.2 to 0
  • Resolution set to fixed
  • Status changed from accepted to closed

(In [461f09f465bca630a34b74768aaf32868d1791b0/ome.git] on branch develop) Webclient views.py improved getLightSource() calls. Closes #5742

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

We're Hiring!