Task #1993 (closed)
Opened 9 years ago
Closed 9 years ago
BUG: list output param breaks script
| Reported by: | jamoore | Owned by: | jamoore |
|---|---|---|---|
| Priority: | n.a. | Milestone: | OMERO-Beta4.2 |
| Component: | n.a. | Version: | n.a. |
| Keywords: | n.a. | Cc: | wmoore |
| Resources: | n.a. | Referenced By: | n.a. |
| References: | n.a. | Remaining Time: | 0.0d |
| Sprint: | 2010-03-05 (4) |
Description
[object #0 (::omero::RLong)
{
_val = 3691
}, object #0 (::omero::RLong)
{
_val = 3692
}]
14:28
def runAsScript(
"""
The main entry point of the script, as called by the client via the scripting service, passing the required parameters.
"""
client = scripts.client('saveImageAs.py', 'Use EMAN2 to save an image as mrc etc.',
scripts.List("imageIds").inout(), # List of image IDs.
scripts.String("extension", optional=True).inout(), # File type/extension. E.g. "mrc". If not given, will try to use extension of each image name
scripts.List("originalFileIds").out())
session = client.getSession()
# process the list of args above.
parameterMap = {}
for key in client.getInputKeys(
if client.getInput(key):
parameterMap[key] = client.getInput(key).getValue()
fileIds = saveImageAs(session, parameterMap) # might return None if failed.
print fileIds
client.setOutput("originalFileIds", omero.rtypes.rlist(fileIds))
if __name__ == "__main__":
runAsScript()
produces:
Traceback (most recent call last):
File "./script", line 240, in <module>
runAsScript()
File "./script", line 237, in runAsScript
client.setOutput("originalFileIds", omero.rtypes.rlist(fileIds))
File "/Users/will/Documents/workspace/Omero/dist/lib/python/omero/clients.py", line 718, in setOutput
self._env("setOutput", key, value)
File "/Users/will/Documents/workspace/Omero/dist/lib/python/omero/clients.py", line 693, in _env
return apply(m, (u,)+args)
File "/Users/will/Documents/workspace/Omero/dist/lib/python/omero_API_ice.py", line 1751, in setOutput
return _M_omero.api.ISession._op_setOutput.invoke(self, ((sess, key, value), _ctx))
omero.ValidationException: exception ::omero::ValidationException
{
serverStackTrace = ome.conditions.ValidationException: public abstract void ome.api.ISession.setOutput(java.lang.String,java.lang.String,java.lang.Object) is missing a required @ome.annotations.Validate annotation. This should be added to one of the implemented interfaces. Refusing to proceed...
at ome.annotations.ApiConstraintChecker.errorOnViolation(ApiConstraintChecker.java:116)
at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy72.setOutput(Unknown Source)
at sun.reflect.GeneratedMethodAccessor985.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:310)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at ome.security.basic.BasicSecurityWiring.invoke(BasicSecurityWiring.java:78)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at ome.services.blitz.fire.AopContextInitializer.invoke(AopContextInitializer.java:35)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
and after turning off consistency checks:
File "runSaveAsScript.py", line 34, in <module>
run()
File "runSaveAsScript.py", line 27, in run
returnMap = scriptService.runScript(scriptId, map)
File "/Users/will/Documents/workspace/Omero/dist/lib/python/omero_api_IScript_ice.py", line 145, in runScript
return _M_omero.api.IScript._op_runScript.invoke(self, ((id, map), _ctx))
Ice.UnknownException: exception ::Ice::UnknownException
{
unknown = java.lang.ClassCastException: java.lang.Long
at omero.RTypeSeqHelper.write(RTypeSeqHelper.java:26)
at omero.RCollection.__write(RCollection.java:250)
at omero.RList.__write(RList.java:155)
at IceInternal.BasicStream.writeInstance(BasicStream.java:1809)
at IceInternal.BasicStream.writePendingObjects(BasicStream.java:1712)
at omero.grid._InteractiveProcessorDisp.___getResults(_InteractiveProcessorDisp.java:199)
at omero.grid._InteractiveProcessorDisp.__dispatch(_InteractiveProcessorDisp.java:290)
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)
}
Change History (3)
comment:1 Changed 9 years ago by jmoore
- Status changed from new to assigned
comment:2 Changed 9 years ago by jmoore
- Cc wmoore added
comment:3 Changed 9 years ago by jmoore
- Remaining Time changed from 0.5 to 0
- Resolution set to fixed
- Status changed from assigned to closed
Note: See
TracTickets for help on using
tickets.
You may also have a look at Agilo extensions to the ticket.
(In [6265]) fix #1993 - Allowing Object.class and fixing toRType for lists and maps