Task #12583 (closed)
Bug: TIFF StripByteCounts value parsed incorrectly
Reported by: | omero-qa | Owned by: | mlinkert |
---|---|---|---|
Priority: | minor | Milestone: | 5.1.0 |
Component: | Bio-Formats | Version: | 5.0.5 |
Keywords: | TiffReader, their-fault | Cc: | yohan.jarosz@… |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | 0.0d |
Sprint: | n.a. |
Description (last modified by jamoore)
https://www.openmicroscopy.org/qa2/qa/feedback/9563/
Exception occurs while importing this file due to the StripByteCounts? tag being parsed incorrectly. The byte count for a strip should be 32640 (see output of tiffdump), but it's currently reported as -312550. Likely the tag type is not being respected.
java.lang.RuntimeException: Failure response on import! Category: ::omero::grid::ImportRequest Name: import-request-failure Parameters: {message=, stacktrace=java.lang.NegativeArraySizeException at loci.formats.tiff.TiffParser.getTile(TiffParser.java:688) at loci.formats.tiff.TiffParser.getSamples(TiffParser.java:923) at loci.formats.tiff.TiffParser.getSamples(TiffParser.java:745) at loci.formats.in.MinimalTiffReader.openBytes(MinimalTiffReader.java:288) at loci.formats.DelegateReader.openBytes(DelegateReader.java:205) at loci.formats.ImageReader.openBytes(ImageReader.java:431) at loci.formats.ChannelFiller.openBytes(ChannelFiller.java:193) at loci.formats.ChannelFiller.openBytes(ChannelFiller.java:185) at loci.formats.ChannelSeparator.openBytes(ChannelSeparator.java:193) at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:325) at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:325) at loci.formats.MinMaxCalculator.openBytes(MinMaxCalculator.java:269) at ome.services.blitz.repo.ManagedImportRequestI.parseDataByPlane(ManagedImportRequestI.java:730) at ome.services.blitz.repo.ManagedImportRequestI.parseData(ManagedImportRequestI.java:661) at ome.services.blitz.repo.ManagedImportRequestI.pixelData(ManagedImportRequestI.java:531) at ome.services.blitz.repo.ManagedImportRequestI.step(ManagedImportRequestI.java:381) at omero.cmd.HandleI.steps(HandleI.java:436) at omero.cmd.HandleI$1.doWork(HandleI.java:365) at omero.cmd.HandleI$1.doWork(HandleI.java:361) at sun.reflect.GeneratedMethodAccessor277.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) 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:576) 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 com.sun.proxy.$Proxy69.doWork(Unknown Source) at ome.services.util.Executor$Impl.execute(Executor.java:457) at omero.cmd.HandleI.run(HandleI.java:359) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at ome.services.util.Executor$Impl$1.call(Executor.java:498) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) } at ome.formats.importer.ImportLibrary$ImportCallback.onFinished(ImportLibrary.java:627) at omero.cmd.CmdCallbackI.finished(CmdCallbackI.java:301) at omero.cmd._CmdCallbackDisp.___finished(_CmdCallbackDisp.java:118) at omero.cmd._CmdCallbackDisp.__dispatch(_CmdCallbackDisp.java:145) at IceInternal.Incoming.invoke(Incoming.java:222) at Ice.ConnectionI.invokeAll(ConnectionI.java:2482) at Ice.ConnectionI.dispatch(ConnectionI.java:1258) at Ice.ConnectionI.message(ConnectionI.java:1213) at IceInternal.ThreadPool.run(ThreadPool.java:321) at IceInternal.ThreadPool.access$300(ThreadPool.java:12) at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:693) at java.lang.Thread.run(Thread.java:695)
Change History (4)
comment:1 Changed 10 years ago by jamoore
- Component changed from from QA to Bio-Formats
- Description modified (diff)
- Keywords TiffReader added
comment:2 Changed 9 years ago by mlinkert
- Keywords our-fault added
- Milestone changed from Unscheduled to 5.1.0
comment:3 Changed 9 years ago by mlinkert
- Keywords their-fault added; our-fault removed
- Resolution set to fixed
- Status changed from new to closed
comment:4 Changed 9 years ago by Melissa Linkert <melissa@…>
- Remaining Time set to 0
(In [d896dfa79c44c5ecb4252dd5d321649216b7b962/bioformats.git] on branch develop) TIFF: attempt to correct incorrectly stored StripByteCounts? values
If an entry in the StripByteCounts? array is negative, this logs the
original value and attempts to set it to the previous entry in the
array.
Fixes #12583.
PR opened: https://github.com/openmicroscopy/bioformats/pull/1423
This works around the last entry in the StripByteCounts? field being incorrectly recorded in the file, so changing the fault keyword as well.