Task #10844 (closed)
Opened 11 years ago
Closed 11 years ago
BUG: Error after export as ome-tiff
Reported by: | pwalczysko | Owned by: | rleigh |
---|---|---|---|
Priority: | blocker | Milestone: | 5.0.0-beta1 |
Component: | Export | Version: | n.a. |
Keywords: | export big FS | Cc: | ux@…, fs@… |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | n.a. |
Sprint: | FS demo 4.4 |
Description (last modified by pwalczysko)
Using Batch image export script on develop, Gretzky.
In Web as well as in Insight.
Workflow:
- Gretzky: user-4 / read-only / Dataset : Petr big...
- choose 2 or more images, one or more of which are big and a part of a MIF (multi-image file)
- run "Batch image export" script on these images, selecting "ome-tiff" as output format
- you will end up with error - no output is created
- see the error below
The bug is there in case the images you have chosen are a part of the same MIF, as well as when the images belong to different MIFs - no difference in the result.
Found out during testing of https://github.com/ome/scripts/pull/30#issuecomment-17526839.
WARNING:omero.gateway:InternalException on <class 'omero.gateway.OmeroGatewaySafeCallWrapper'> to <86:24:41:e3:-51f141ba:13e7811cad3:-7cb2omero.api.Exporter> generateTiff((<ServiceOptsDict: {'omero.session.uuid': '7135aec0-ce92-456e-9be3-3fc047c68241', 'omero.client.uuid': 'bd13d346-5f38-450b-8eb1-4d891dbdf028'}>,), {}) Traceback (most recent call last): File "/home/omero/slave/workspace/OMERO-merge-develop/src/dist/lib/python/omero/gateway/__init__.py", line 3481, in __call__ return self.f(*args, **kwargs) File "/home/omero/slave/workspace/OMERO-merge-develop/src/dist/lib/python/omero_api_Exporter_ice.py", line 93, in generateTiff return _M_omero.api.Exporter._op_generateTiff.invoke(self, ((), _ctx)) InternalException: exception ::omero::InternalException { serverStackTrace = loci.formats.FormatException: Metadata object has null root; call IMetadata.createRoot() first at loci.formats.MetadataTools.verifyMinimumPopulated(MetadataTools.java:331) at loci.formats.FormatWriter.checkParams(FormatWriter.java:375) at loci.formats.out.TiffWriter.saveBytes(TiffWriter.java:174) at loci.formats.out.OMETiffWriter.saveBytes(OMETiffWriter.java:201) at loci.formats.out.OMETiffWriter.saveBytes(OMETiffWriter.java:187) at loci.formats.FormatWriter.saveBytes(FormatWriter.java:136) at ome.services.blitz.impl.ExporterI$2.doWork(ExporterI.java:413) at sun.reflect.GeneratedMethodAccessor254.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.services.util.Executor$Impl$Interceptor.invoke(Executor.java:518) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 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 $Proxy66.doWork(Unknown Source) at ome.services.util.Executor$Impl.execute(Executor.java:416) at ome.services.util.Executor$Impl.execute(Executor.java:360) at ome.services.blitz.impl.ExporterI.do_tiff(ExporterI.java:343) at ome.services.blitz.impl.ExporterI.generateTiff_async(ExporterI.java:213) 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: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 $Proxy114.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 = loci.formats.FormatException message = Metadata object has null root; call IMetadata.createRoot() first } Traceback (most recent call last): File "./script", line 527, in <module> runScript() File "./script", line 513, in runScript fileAnnotation, message = batchImageExport(conn, scriptParams) File "./script", line 357, in batchImageExport saveAsOmeTiff(conn, img, folder_name) File "./script", line 171, in saveAsOmeTiff fileSize, block_gen = image.exportOmeTiff(bufsize=65536) File "/home/omero/slave/workspace/OMERO-merge-develop/src/dist/lib/python/omero/gateway/__init__.py", line 6790, in exportOmeTiff size = e.generateTiff(self._conn.SERVICE_OPTS) File "/home/omero/slave/workspace/OMERO-merge-develop/src/dist/lib/python/omero/gateway/__init__.py", line 3484, in __call__ return self.handle_exception(e, *args, **kwargs) File "/home/omero/slave/workspace/OMERO-merge-develop/src/dist/lib/python/omero/gateway/__init__.py", line 3481, in __call__ return self.f(*args, **kwargs) File "/home/omero/slave/workspace/OMERO-merge-develop/src/dist/lib/python/omero_api_Exporter_ice.py", line 93, in generateTiff return _M_omero.api.Exporter._op_generateTiff.invoke(self, ((), _ctx)) omero.InternalException: exception ::omero::InternalException { serverStackTrace = loci.formats.FormatException: Metadata object has null root; call IMetadata.createRoot() first at loci.formats.MetadataTools.verifyMinimumPopulated(MetadataTools.java:331) at loci.formats.FormatWriter.checkParams(FormatWriter.java:375) at loci.formats.out.TiffWriter.saveBytes(TiffWriter.java:174) at loci.formats.out.OMETiffWriter.saveBytes(OMETiffWriter.java:201) at loci.formats.out.OMETiffWriter.saveBytes(OMETiffWriter.java:187) at loci.formats.FormatWriter.saveBytes(FormatWriter.java:136) at ome.services.blitz.impl.ExporterI$2.doWork(ExporterI.java:413) at sun.reflect.GeneratedMethodAccessor254.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.services.util.Executor$Impl$Interceptor.invoke(Executor.java:518) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 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 $Proxy66.doWork(Unknown Source) at ome.services.util.Executor$Impl.execute(Executor.java:416) at ome.services.util.Executor$Impl.execute(Executor.java:360) at ome.services.blitz.impl.ExporterI.do_tiff(ExporterI.java:343) at ome.services.blitz.impl.ExporterI.generateTiff_async(ExporterI.java:213) 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: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 $Proxy114.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 = loci.formats.FormatException message = Metadata object has null root; call IMetadata.createRoot() first }
Change History (18)
comment:1 Changed 11 years ago by pwalczysko
- Keywords FS added
comment:2 Changed 11 years ago by pwalczysko
- Description modified (diff)
- Summary changed from BUG: Error after export as one-tiff to BUG: Error after export as ome-tiff
comment:3 Changed 11 years ago by jamoore
- Owner set to rleigh
- Sprint changed from FS demo 4.x to FS demo 4.1
comment:4 Changed 11 years ago by pwalczysko
In fact, all the exports as one-tiff fail at present, be it big images or small ones, be it part of MIF or not. The bug is the same as noted above. I think JM is working on that in https://trac.openmicroscopy.org.uk/ome/ticket/10848.
comment:5 Changed 11 years ago by pwalczysko
Retested on Gretzky, build number
Web is fine on all accounts - no problem with big images, multiple big images, multiple big images as part of MIF, when the Batch image export is run with "OIME-TIFF" option.
When selecting several images, big and small, which belong to a MIF, then in Web, it creates one-tiffs from the non-big images out of the selected images, the big ones are ignored (as expected).
Insight has a bug - after Batch image export is run on a MIF with a big image in it (svs), with multiple images being selected, the script runs okay to the end. A file is created and attached to the first image of the set.
The name of the created .zip file is "-1". When trying to download it, got following error:
(java.lang.Exception: java.lang.IllegalArgumentException: File ID not valid at org.openmicroscopy.shoola.env.data.OmeroMetadataServiceImpl.downloadFile(OmeroMetadataServiceImpl.java:1355) at org.openmicroscopy.shoola.env.data.views.calls.FilesLoader$2.doCall(FilesLoader.java:119) 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) at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.showErrorDialog(UserNotifierImpl.java:189) at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:287) at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:257) at org.openmicroscopy.shoola.env.ui.ActivityComponent.showException(ActivityComponent.java:415) at org.openmicroscopy.shoola.env.ui.ActivityComponent.actionPerformed(ActivityComponent.java:928) 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:6382) at javax.swing.JComponent.processMouseEvent(JComponent.java:3275) at java.awt.Component.processEvent(Component.java:6147) at java.awt.Container.processEvent(Container.java:2083) at java.awt.Component.dispatchEventImpl(Component.java:4744) at java.awt.Container.dispatchEventImpl(Container.java:2141) at java.awt.Component.dispatchEvent(Component.java:4572) 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:2489) at java.awt.Component.dispatchEvent(Component.java:4572) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:704) at java.awt.EventQueue.access$400(EventQueue.java:82) at java.awt.EventQueue$2.run(EventQueue.java:663) at java.awt.EventQueue$2.run(EventQueue.java:661) 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$3.run(EventQueue.java:677) at java.awt.EventQueue$3.run(EventQueue.java:675) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:674) 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)
comment:6 Changed 11 years ago by jburel
- Component changed from Export to Insight
- Owner changed from rleigh to jburel
Looks more like an insight issue.
comment:7 Changed 11 years ago by jburel
- Sprint changed from FS demo 4.1 to FS demo 4.2
Did you test on howe?
comment:8 Changed 11 years ago by pwalczysko
On howe:
- select 3 svs images from one MIF (two of them big, one small) and run Batch image export on them with "OME-TIFF" option - script runs fine, output fine (the file produced has the name of the image, not "-1" like on Gretzky). Navigation to the attached file fine, viewing fine, download fine - just the small image export was performed, the big images were ignored. All works as expected.
comment:9 Changed 11 years ago by jburel
- Sprint changed from FS demo 4.2 to FS demo 4.x
comment:10 Changed 11 years ago by jburel
- Sprint changed from FS demo 4.x to FS Demo 4.3
comment:11 Changed 11 years ago by mtbcarroll
- Owner changed from jburel to mtbcarroll
- Status changed from new to accepted
comment:12 Changed 11 years ago by mtbcarroll
With a current develop merge build, the zip files I make from other batch export, e.g., JPEG, are all named Batch_Image_Export.zip, but with OME-TIFF so far all I can get is Metadata object has null root from both Insight and web, with or without big images or MIFs involved.
comment:13 Changed 11 years ago by jburel
Seems like a deeper problem due to recent change in store and BF.
comment:14 Changed 11 years ago by mtbcarroll
- Component changed from Insight to Export
- Owner changed from mtbcarroll to rleigh
Ah, recent changes? I'm not seeing anything obviously absurd in ExporterI or FormatWriter but this is deeply enough into stuff I don't know that I'm not going to be fixing this before the demo tomorrow. Roger, do you have any idea what's going on?
comment:15 Changed 11 years ago by jburel
- Sprint changed from FS Demo 4.3 to FS demo 4.4
Moved from sprint FS Demo 4.3
comment:16 Changed 11 years ago by jamoore
Definitely still see this in a build today:
$ touch export.fake $ bin/omero import export.fake (ome1)jamoore@blue:/opt/ome2/dist$ bin/omero export --file /tmp/export.ome.tiff Image:4801 InternalException: Metadata object has null root; call IMetadata.createRoot() first
Roger: can you please take a look ASAP.
comment:17 Changed 11 years ago by rleigh
This should be fixed on my metadataroot-null branch. This ensures that pixelsList in OMEROMetadataStoreClient is never null.
comment:18 Changed 11 years ago by jamoore
- Resolution set to fixed
- Status changed from accepted to closed
PR merged.
Roger: this is another bug related to https://github.com/openmicroscopy/openmicroscopy/pull/1136 Can we either exclude or fix ASAP?