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

Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

Bug: Buffer size error reading LeicaReader pixels

Reported by: omero-qa Owned by: mlinkert
Priority: minor Milestone: B-F-5.1.4
Component: Bio-Formats Version: 5.1.2
Keywords: LeicaReader, modified-data Cc:
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: n.a.

Description

https://www.openmicroscopy.org/qa2/qa2/qa/feedback/11114/

java.lang.RuntimeException: Failure response on import!
Category: ::omero::grid::ImportRequest
Name: import-file-exception
Parameters: {message=Buffer too small (got 361920, expected 723840)., filename=teamdougall_3/2015-06/04/13-38-34.066/cellmask24a.lei, stacktrace=loci.formats.FormatException: Buffer too small (got 361920, expected 723840).
	at loci.formats.FormatTools.checkBufferSize(FormatTools.java:978)
	at loci.formats.FormatTools.checkPlaneParameters(FormatTools.java:934)
	at loci.formats.in.MinimalTiffReader.openBytes(MinimalTiffReader.java:281)
	at loci.formats.in.LeicaReader.openBytes(LeicaReader.java:276)
	at loci.formats.ImageReader.openBytes(ImageReader.java:453)
	at loci.formats.ChannelFiller.openBytes(ChannelFiller.java:156)
	at loci.formats.ChannelSeparator.openBytes(ChannelSeparator.java:225)
	at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:349)
	at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:349)
	at loci.formats.MinMaxCalculator.openBytes(MinMaxCalculator.java:269)
	at ome.services.blitz.repo.ManagedImportRequestI.parseDataByPlane(ManagedImportRequestI.java:747)
	at ome.services.blitz.repo.ManagedImportRequestI.parseData(ManagedImportRequestI.java:678)
	at ome.services.blitz.repo.ManagedImportRequestI.pixelData(ManagedImportRequestI.java:557)
	at ome.services.blitz.repo.ManagedImportRequestI.step(ManagedImportRequestI.java:408)
	at omero.cmd.HandleI.steps(HandleI.java:437)
	at omero.cmd.HandleI$1.doWork(HandleI.java:365)
	at omero.cmd.HandleI$1.doWork(HandleI.java:361)
	at sun.reflect.GeneratedMethodAccessor295.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:566)
	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:249)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:121)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	at com.sun.proxy.$Proxy72.doWork(Unknown Source)
	at ome.services.util.Executor$Impl.execute(Executor.java:447)
	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:488)
	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:656)
	at omero.cmd.CmdCallbackI.finished(CmdCallbackI.java:324)
	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(Unknown Source)

Change History (5)

comment:1 Changed 9 years ago by rleigh

  • Component changed from from QA to Bio-Formats

Reproduced with current develop:

% ./tools/showinf ~/images/11114/cellmask24a.lei
Checking file format [Leica]
Initializing reader
LeicaReader initializing /Users/rleigh/images/11114/cellmask24a.lei
Reading metadata blocks
Parsing metadata blocks
Handling renamed TIFF files
Handling renamed TIFF files
Handling renamed TIFF files
Handling renamed TIFF files
Populating metadata
Unknown Correction value 'IMM/CORR' will be stored as "Other"
Unknown Correction value 'U' will be stored as "Other"
Unknown Immersion value 'U' will be stored as "Other"
Unknown Immersion value 'IMM/CORR' will be stored as "Other"
Unknown Immersion value 'U' will be stored as "Other"
Unknown Correction value 'IMM/CORR' will be stored as "Other"
Unknown Correction value 'IMM/CORR' will be stored as "Other"
Unknown Correction value 'U' will be stored as "Other"
Unknown Immersion value 'U' will be stored as "Other"
Unknown Immersion value 'IMM/CORR' will be stored as "Other"
Unknown Immersion value 'U' will be stored as "Other"
Unknown Correction value 'IMM/CORR' will be stored as "Other"
Initialization took 0.115s

Reading core metadata
filename = /Users/rleigh/images/11114/cellmask24a.lei
Used files:
	/Users/rleigh/images/11114/cellmask24a.lei
	/Users/rleigh/images/11114/micro GFP.tif
	/Users/rleigh/images/11114/Experiment_001.lif - Series028.tif
Series count = 2
Reading IFDs
Populating metadata
Series #0 :
	Image count = 1
	RGB = false (1)
	Interleaved = false
	Indexed = true (false color)
	Width = 696
	Height = 520
	SizeZ = 1
	SizeT = 1
	SizeC = 1
	Thumbnail size = 128 x 95
	Endianness = intel (little)
	Dimension order = XYCZT (certain)
	Pixel type = uint8
	Valid bits per pixel = 8
	Metadata complete = true
	Thumbnail series = false
	-----
	Plane #0 <=> Z 0, C 0, T 0

Reading IFDs
Populating metadata
Series #1 :
	Image count = 1
	RGB = false (1)
	Interleaved = false
	Indexed = true (false color, 8-bit LUT: 3 x 256)
	Width = 1024
	Height = 1024
	SizeZ = 1
	SizeT = 1
	SizeC = 1
	Thumbnail size = 128 x 128
	Endianness = intel (little)
	Dimension order = XYCZT (certain)
	Pixel type = uint8
	Valid bits per pixel = 8
	Metadata complete = true
	Thumbnail series = false
	-----
	Plane #0 <=> Z 0, C 0, T 0


Reading series #0 pixel data (0-0)
Reading IFDs
Populating metadata
Exception in thread "main" loci.formats.FormatException: Buffer too small (got 361920, expected 723840).
	at loci.formats.FormatTools.checkBufferSize(FormatTools.java:978)
	at loci.formats.FormatTools.checkPlaneParameters(FormatTools.java:934)
	at loci.formats.in.MinimalTiffReader.openBytes(MinimalTiffReader.java:281)
	at loci.formats.in.LeicaReader.openBytes(LeicaReader.java:276)
	at loci.formats.FormatReader.openBytes(FormatReader.java:920)
	at loci.formats.ImageReader.openBytes(ImageReader.java:437)
	at loci.formats.ReaderWrapper.openBytes(ReaderWrapper.java:335)
	at loci.formats.gui.BufferedImageReader.openImage(BufferedImageReader.java:86)
	at loci.formats.tools.ImageInfo.readPixels(ImageInfo.java:798)
	at loci.formats.tools.ImageInfo.testRead(ImageInfo.java:1025)
	at loci.formats.tools.ImageInfo.main(ImageInfo.java:1100)

comment:2 Changed 9 years ago by mlinkert

  • Milestone changed from Unscheduled to 5.1.4

Moving to 5.1.4 for triage. I would guess that the pixel type is being set incorrectly.

comment:3 Changed 9 years ago by mlinkert

  • Keywords LeicaReader modified-data added
  • Resolution set to fixed
  • Status changed from new to closed

PR opened: https://github.com/openmicroscopy/bioformats/pull/1940

This is less our fault and more to do with the fact that it looks like one of the TIFFs was modified and/or re-exported separately and with a different pixel type.

comment:4 Changed 9 years ago by Melissa Linkert <melissa@…>

  • Remaining Time set to 0

(In [7447ffe25871dd086505ea27ef12a4c38b9e3396/bioformats.git] on branch develop) Leica .lei: set ixel type and endianness using the TIFFs

If a TIFF for a particular series was modified/re-exported with a
different pixel type or endianness, then it won't match the values
stored in the .lei file. This defers to pixel type and endianness
setting for each series to the first corresponding TIFF file.

Fixes #12910.

comment:5 Changed 9 years ago by jamoore

  • Milestone changed from 5.1.4 to B-F-5.1.4

Splitting 5.1.4 due to milestone decoupling

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

We're Hiring!