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

Opened 7 years ago

Closed 6 years ago

Last modified 6 years ago

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 7 years ago by jamoore

  • Component changed from from QA to Bio-Formats
  • Description modified (diff)
  • Keywords TiffReader added

comment:2 Changed 6 years ago by mlinkert

  • Keywords our-fault added
  • Milestone changed from Unscheduled to 5.1.0

comment:3 Changed 6 years ago by mlinkert

  • Keywords their-fault added; our-fault removed
  • Resolution set to fixed
  • Status changed from new to closed

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.

comment:4 Changed 6 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.

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

We're Hiring!