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

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

BUG:Export as OME-Tiff other user's data

Reported by: omero-qa Owned by: jamoore
Priority: critical Milestone: OMERO-4.4
Component: Services Version: n.a.
Keywords: n.a. Cc: ajpatterson@…, cxallan, jamoore
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: n.a.

Description

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

Comment: Exporting image beloging to another user in read annotate group.

java.lang.Exception: org.openmicroscopy.shoola.env.data.DSAccessException: Cannot export the image as an OME-TIFF
	at org.openmicroscopy.shoola.env.data.OMEROGateway.exportImageAsOMEObject(OMEROGateway.java:6885)
	at org.openmicroscopy.shoola.env.data.OmeroImageServiceImpl.exportImageAsOMEFormat(OmeroImageServiceImpl.java:1501)
	at org.openmicroscopy.shoola.env.data.views.calls.ExportLoader$1.doCall(ExportLoader.java:87)
	at org.openmicroscopy.shoola.env.data.views.BatchCall.doStep(BatchCall.java:144)
	at org.openmicroscopy.shoola.util.concur.tasks.CompositeTask.doStep(CompositeTask.java:226)
	at org.openmicroscopy.shoola.env.data.views.CompositeBatchCall.doStep(CompositeBatchCall.java:126)
	at org.openmicroscopy.shoola.util.concur.tasks.ExecCommand.exec(ExecCommand.java:165)
	at org.openmicroscopy.shoola.util.concur.tasks.ExecCommand.run(ExecCommand.java:276)
	at org.openmicroscopy.shoola.util.concur.tasks.AsyncProcessor$Runner.run(AsyncProcessor.java:91)
	at java.lang.Thread.run(Thread.java:680)
Caused by: org.openmicroscopy.shoola.env.data.DSAccessException: Cannot export the image as an OME-formats 
	at org.openmicroscopy.shoola.env.data.OMEROGateway.exportImageAsOMEObject(OMEROGateway.java:6873)
	... 9 more
Caused by: omero.InternalException
    serverStackTrace = "ome.conditions.InternalException:  Wrapped Exception: (java.lang.NullPointerException):
                        null
                        	at ome.tools.hibernate.ProxyCleanupFilter.filter(ProxyCleanupFilter.java:115)
                        	at ome.services.blitz.impl.OmeroMetadata.initialize(OmeroMetadata.java:271)
                        	at ome.services.blitz.impl.ExporterI$2.doWork(ExporterI.java:346)
                        	at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)
                        	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.services.util.Executor$Impl$Interceptor.invoke(Executor.java:498)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at ome.security.basic.EventHandler.invoke(EventHandler.java:165)
                        	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:236)
                        	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 $Proxy65.doWork(Unknown Source)
                        	at ome.services.util.Executor$Impl.execute(Executor.java:402)
                        	at ome.services.util.Executor$Impl.execute(Executor.java:346)
                        	at ome.services.blitz.impl.ExporterI.do_tiff(ExporterI.java:342)
                        	at ome.services.blitz.impl.ExporterI.generateTiff_async(ExporterI.java:212)
                        	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 $Proxy113.generateTiff_async(Unknown Source)
                        	at omero.api._ExporterTie.generateTiff_async(_ExporterTie.java:71)
                        	at omero.api._ExporterDisp.___generateTiff(_ExporterDisp.java:175)
                        	at omero.api._ExporterDisp.__dispatch(_ExporterDisp.java:248)
                        	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.InternalException"
    message = " Wrapped Exception: (java.lang.NullPointerException):
               null"
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	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._ExporterDelM.generateTiff(_ExporterDelM.java:79)
	at omero.api.ExporterPrxHelper.generateTiff(ExporterPrxHelper.java:117)
	at omero.api.ExporterPrxHelper.generateTiff(ExporterPrxHelper.java:89)
	at org.openmicroscopy.shoola.env.data.OMEROGateway.exportImageAsOMEObject(OMEROGateway.java:6859)
	... 9 more

	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.showErrorDialog(UserNotifierImpl.java:190)
	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:288)
	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:258)
	at org.openmicroscopy.shoola.env.ui.ActivityComponent.showException(ActivityComponent.java:416)
	at org.openmicroscopy.shoola.env.ui.ActivityComponent.actionPerformed(ActivityComponent.java:915)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
	at java.awt.Component.processMouseEvent(Component.java:6375)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6140)
	at java.awt.Container.processEvent(Container.java:2083)
	at java.awt.Component.dispatchEventImpl(Component.java:4737)
	at java.awt.Container.dispatchEventImpl(Container.java:2141)
	at java.awt.Component.dispatchEvent(Component.java:4565)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4619)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4280)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4210)
	at java.awt.Container.dispatchEventImpl(Container.java:2127)
	at java.awt.Window.dispatchEventImpl(Window.java:2482)
	at java.awt.Component.dispatchEvent(Component.java:4565)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:684)
	at java.awt.EventQueue.access$000(EventQueue.java:85)
	at java.awt.EventQueue$1.run(EventQueue.java:643)
	at java.awt.EventQueue$1.run(EventQueue.java:641)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:657)
	at java.awt.EventQueue$2.run(EventQueue.java:655)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:654)
	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)

Change History (6)

comment:1 Changed 12 years ago by jburel

  • Component changed from from QA to Insight
  • Milestone changed from Unscheduled to OMERO-Beta4.4
  • Priority changed from minor to major

comment:2 Changed 12 years ago by jburel

  • Cc cxallan jmoore added
  • Component changed from Insight to Services
  • Priority changed from major to critical

No longer possible to export as ome-tiff. Under OmeroJava, tests in integration/Exporter now failed.

comment:3 Changed 12 years ago by jburel

  • Owner jburel deleted

comment:4 Changed 12 years ago by jmoore

  • Owner set to jmoore
  • Remaining Time set to 0.25
  • Status changed from new to accepted

comment:5 Changed 12 years ago by jmoore

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

Fixed and pushing:

commit 0f5d15827bf2777472cc83b6d79040f92eb76b65
Author: jmoore <josh@glencoesoftware.com>
Date:   Thu May 17 14:18:31 2012 +0200

    Fix OmeroMetadata's use of ProxyCleanupFilter (Fix #8794)
    
    The missing BasicACLVoter was causing NPEs on cleanup.
    Here we assume that if the "acl" field is null, then
    no post processing is needed. This is valid in this
    case since the permissions of the object will not
    be exported.

diff --git a/components/server/src/ome/tools/hibernate/ProxyCleanupFilter.java b/components/server/src/ome/tools/hibernate/ProxyCleanupFilter.java
index 8052bda..19097c2 100644
--- a/components/server/src/ome/tools/hibernate/ProxyCleanupFilter.java
+++ b/components/server/src/ome/tools/hibernate/ProxyCleanupFilter.java
@@ -112,7 +112,12 @@ public class ProxyCleanupFilter extends ContextFilter {
         } else {
 
             if (f instanceof IObject) {
-                acl.postProcess((IObject) f);
+                if (acl != null) {
+                    // When acl is null, assume this is for internal use
+                    // and therefore the object will not be passed out.
+                    // See ticket:8794 and OmeroMetadata.java
+                    acl.postProcess((IObject) f);
+                }
             }
 
             // Also for security reasons, we're now checking ownership

One test is still failing, but I'll leave that for someone else. See testExportAsOMETIFFDowngrade

java.lang.IllegalArgumentException
sun.net.www.ParseUtil.decode(ParseUtil.java:185)
sun.net.www.protocol.file.Handler.openConnection(Handler.java:63)
sun.net.www.protocol.file.Handler.openConnection(Handler.java:55)
java.net.URL.openConnection(URL.java:945)
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

comment:6 Changed 12 years ago by jmoore <josh@…>

(In [fdc54e079b54cea886eb01bb1c72087ac5a516fe/ome.git] on branch develop) Fix OmeroMetadata?'s use of ProxyCleanupFilter? (Fix #8794)

The missing BasicACLVoter was causing NPEs on cleanup.
Here we assume that if the "acl" field is null, then
no post processing is needed. This is valid in this
case since the permissions of the object will not
be exported.

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

We're Hiring!