Task #9070 (closed)
Opened 12 years ago
Closed 12 years ago
Bug: thumbnail figure script does not produce output on other's data
Reported by: | bpindelski | Owned by: | sbesson |
---|---|---|---|
Priority: | major | Milestone: | OMERO-4.4 |
Component: | Scripting | Version: | n.a. |
Keywords: | n.a. | Cc: | ux@…, jamoore |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | n.a. |
Sprint: | 2012-06-19 (17) |
Description
Logged in as user-1/private-1. Using any figure script on other's data produces an image that user-1 can view.
Exception: thumbnail figure script. The output image is blank.
see 4.4 Testing Screenshots/Blazej?/12-06-04/insight-thumbnailfigure.mov
Change History (6)
comment:1 Changed 12 years ago by jburel
- Sprint changed from 2012-06-05 (16) to 2012-06-19 (17)
comment:2 Changed 12 years ago by sbesson
If member of private group user-2 successfully runs Thumbnail Figure script on his own image/dataset, private group owner user-1 can then successfully run Thumbnail Figure script on user-2's image/dataset (no blank output).
Origin of the bug seems to be related to the way thumbnails are retrieved in script.
comment:3 Changed 12 years ago by jburel
Sebastien could you track that down?
comment:4 Changed 12 years ago by sbesson
If thumbnails have not been generated the data owner, they can not be accessed by another user.
In thumbnailPerms.py, if self.getThumbnail(owner_client.sf, privateImageId) is called before calling self.getThumbnail(client_share1.sf, privateImageId)`
thumbnailStore.setPixelsId(pId) t = thumbnailStore.getThumbnail(rint(16),rint(16))
fails with
Traceback (most recent call last): File "/Users/sebastien/code/openmicroscopy/components/tools/OmeroPy/test/integration/thumbnailPerms.py", line 124, in testThumbs self.getThumbnail(owner_client.sf, privateImageId) File "/Users/sebastien/code/openmicroscopy/components/tools/OmeroPy/test/integration/thumbnailPerms.py", line 231, in getThumbnail t = thumbnailStore.getThumbnail(rint(16),rint(16)) File "/Users/sebastien/code/openmicroscopy/components/tools/OmeroPy/target/omero_api_ThumbnailStore_ice.py", line 119, in getThumbnail return _M_omero.api.ThumbnailStore._op_getThumbnail.invoke(self, ((sizeX, sizeY), _ctx)) ResourceError: exception ::omero::ResourceError { serverStackTrace = ome.conditions.ResourceError: The user id:3603 may not be the owner id:3604. The owner has not viewed the Pixels set id:5101 and thumbnail metadata is missing. at ome.services.ThumbnailCtx.getMetadata(ThumbnailCtx.java:435) at ome.services.ThumbnailBean.getThumbnail(ThumbnailBean.java:995) 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 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 ome.tools.hibernate.SessionHandler.doStateful(SessionHandler.java:182) at ome.tools.hibernate.SessionHandler.invoke(SessionHandler.java:166) 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 $Proxy93.getThumbnail(Unknown Source) 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 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 $Proxy93.getThumbnail(Unknown Source) 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 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:137) at ome.services.blitz.impl.ThumbnailStoreI.getThumbnail_async(ThumbnailStoreI.java:130) 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 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 $Proxy94.getThumbnail_async(Unknown Source) at omero.api._ThumbnailStoreTie.getThumbnail_async(_ThumbnailStoreTie.java:120) at omero.api._ThumbnailStoreDisp.___getThumbnail(_ThumbnailStoreDisp.java:311) at omero.api._ThumbnailStoreDisp.__dispatch(_ThumbnailStoreDisp.java:668) 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.ResourceError message = The user id:3603 may not be the owner id:3604. The owner has not viewed the Pixels set id:5101 and thumbnail metadata is missing. }
and
s = thumbnailStore.getThumbnailByLongestSideSet(rint(16), pixelsIds)
returns dictionary with empty value {5102L: ''} which is the source of the blank figure in thumbnail script.
comment:5 Changed 12 years ago by jmoore
- Cc jmoore added
comment:6 Changed 12 years ago by sbesson
- Resolution set to fixed
- Status changed from new to closed
Current workaround: when creating an image, create thumbnails as well.
Moved from sprint 2012-06-05 (16)