Ticket #273 (closed defect: fixed)

Opened 11 years ago

Last modified 9 years ago

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 11 years ago by curtis

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.

comment:2 Changed 9 years ago by melissa

(In [6724]) Fixed a bunch of type detection problems. See #273.

comment:3 Changed 9 years ago by melissa

(In [6726]) A few more type checking fixes. See #273.

comment:4 Changed 9 years ago by melissa

(In [6735]) * Handful of type checking fixes. See #273.

  • Strip whitespace from CellWorX filenames.

comment:5 Changed 9 years ago 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().

comment:6 Changed 9 years ago by melissa

  • Status changed from new to closed
  • Resolution set to fixed

(In [6746]) Remainder of type checking fixes. Closes #273.

Note: See TracTickets for help on using tickets.