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
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 that the method (not for plate) is already tested in Java.