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 #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

Roger: this is another bug related to https://github.com/openmicroscopy/openmicroscopy/pull/1136 Can we either exclude or fix ASAP?

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.

Last edited 11 years ago by mtbcarroll (previous) (diff)

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.

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

We're Hiring!