Ticket #273 (closed defect: fixed)
Opened 2008-04-08T13:48:04-05:00
Last modified 2010-07-28T16:11:34-05:00
Some readers do not have sane file type checking
Reported by: | curtis | Owned by: | melissa |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | bio-formats | Severity: | serious |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
Sane file type checking means that for a given dataset, each used file on the list can be used as the base file for the dataset. That is, you can pass any of the used files to setId and the reader will identify the same dataset with the same used files list.
The following readers violate this principle:
- InCellReader
- L2DReader
- NRRDReader (BioRadReader recognizes the PIC files, but that's OK)
- PrairieReader (PerkinElmerReader steals the CFG file)
Regarding NRRD, I have moved NRRDReader before BioRadReader in the list, similar to how TiffReader appears after the custom TIFF reader types. That way, we don't need custom logic in BioRadReader to ignore PIC files that are part of an NRRD dataset. Instead, we just need NRRDReader to grab the PIC file as its own, first. (But it doesn't yet, which is why its file type checking is not sane.)
I may find problems with more formats upon further testing; if so, I'll add a comment to this ticket.
Change History
comment:1 Changed 2008-04-30T11:26:58-05:00 by curtis
comment:2 Changed 2010-07-22T19:16:03-05:00 by melissa
comment:3 Changed 2010-07-23T13:34:17-05:00 by melissa
comment:4 Changed 2010-07-27T08:06:39-05:00 by melissa
comment:5 Changed 2010-07-27T20:18:01-05:00 by melissa
(In [6741]) Several more type checking fixes, see #273.
Includes a fix for a very, very evil bug in NRRDReader that prevented more than one NRRD file from being initialized in any JVM instance. The moral of the story: *never* directly modify the ClassList returned by ImageReader.getDefaultReaderClasses().
Another tricky format is OIF. Some of the constituent files are BMPs, which the BMP reader steals. We can handle this the same way as TIFF and PIC, and put the BMP reader further down the list. Seems like readers.txt should have a "basic readers" section with those three (and maybe others) below the mixed-format readers.