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

Opened 11 years ago

Closed 11 years ago

Bug: plate loading using loadContainerHierarchy doesn't work

Reported by: sbesson Owned by: jburel
Priority: major Milestone: OMERO-4.4.7
Component: Services Version: n.a.
Keywords: n.a. Cc: jburel, joshmoore, bpindelski, analysis@…
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: Bugs Fixing

Description

The following error was obtained when trying to call

objectList = proxy.loadContainerHierarchy('omero.model.Plate', ids, parameters);

from Matlab. All the other objects (Project, Dataset, Screen) work as expected.

Java exception occurred:
omero.ApiUsageException
    serverStackTrace = "ome.conditions.ApiUsageException: Class parameter for loadContainerIHierarchy() must be in {Project,Dataset,
    Screen, Plate}, not class ome.model.screen.Plate
                        	at ome.logic.PojosImpl.loadContainerHierarchy(PojosImpl.java:113)
                        	at sun.reflect.GeneratedMethodAccessor617.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	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.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 $Proxy83.loadContainerHierarchy(Unknown Source)
                        	at sun.reflect.GeneratedMethodAccessor617.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	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.security.basic.BasicSecurityWiring.invoke(BasicSecurityWiring.java:98)
                        	at
                                org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                                                        	at
                                ome.services.blitz.fire.AopContextInitializer.invoke(AopContextInitializer.java:43)
                        	at
                                org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                                                        	at
                                org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
                        	at $Proxy83.loadContainerHierarchy(Unknown Source)
                        	at sun.reflect.GeneratedMethodAccessor689.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	at ome.services.blitz.util.IceMethodInvoker.invoke(IceMethodInvoker.java:179)
                        	at ome.services.throttling.Callback.run(Callback.java:56)
                        	at
                                ome.services.throttling.InThreadThrottlingStrategy.callInvokerOnRawArgs(InThreadThrottlingStrategy.java:56)
                                                        	at
                                ome.services.blitz.impl.AbstractAmdServant.callInvokerOnRawArgs(AbstractAmdServant.java:150)
                        	at ome.services.blitz.impl.ContainerI.loadContainerHierarchy_async(ContainerI.java:179)
                        	at sun.reflect.GeneratedMethodAccessor688.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                        	at java.lang.reflect.Method.invoke(Method.java:592)
                        	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 omero.cmd.CallContext.invoke(CallContext.java:59)
                        	at
                                org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                                                        	at
                                org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
                        	at $Proxy84.loadContainerHierarchy_async(Unknown Source)
                        	at omero.api._IContainerTie.loadContainerHierarchy_async(_IContainerTie.java:134)
                        	at omero.api._IContainerDisp.___loadContainerHierarchy(_IContainerDisp.java:196)
                        	at omero.api._IContainerDisp.__dispatch(_IContainerDisp.java:641)
                        	at IceInternal.Incoming.invoke(Incoming.java:159)
                        	at Ice.ConnectionI.invokeAll(ConnectionI.java:2037)
                        	at Ice.ConnectionI.message(ConnectionI.java:972)
                        	at IceInternal.ThreadPool.run(ThreadPool.java:577)
                        	at IceInternal.ThreadPool.access$100(ThreadPool.java:12)
                        	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971)
                        "
    serverExceptionClass = "ome.conditions.ApiUsageException"
    message = "Class parameter for loadContainerIHierarchy() must be in {Project,Dataset, Screen, Plate}, not class
    ome.model.screen.Plate"
	at sun.reflect.GeneratedConstructorAccessor32.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:357)
	at java.lang.Class.newInstance(Class.java:310)
	at IceInternal.BasicStream$DynamicUserExceptionFactory.createAndThrow(BasicStream.java:2243)
	at IceInternal.BasicStream.throwException(BasicStream.java:1632)
	at IceInternal.Outgoing.throwUserException(Outgoing.java:442)
	at omero.api._IContainerDelM.loadContainerHierarchy(_IContainerDelM.java:592)
	at omero.api.IContainerPrxHelper.loadContainerHierarchy(IContainerPrxHelper.java:738)
	at omero.api.IContainerPrxHelper.loadContainerHierarchy(IContainerPrxHelper.java:710)

No logic seems to be implemented to retrieve plates in
/ components/server/src/ome/logic/PojosImpl.java.
However Plate is in the list of allowed classes in the error message (and is documented in the Sphinx documentation) which lead to confusion.

Change History (3)

comment:1 Changed 11 years ago by jburel

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

comment:2 Changed 11 years ago by jburel

Note that the method (not for plate) is already tested in Java.

comment:3 Changed 11 years ago by jburel

  • Remaining Time changed from 0.3 to 0
  • Resolution set to fixed
  • Status changed from accepted to closed
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.70390 sec.)

We're Hiring!