Changeset 6349


Ignore:
Timestamp:
05/20/10 11:13:45 (9 years ago)
Author:
melissa
Message:

Fixed various bugs exposed by test suite.

Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/4.2/components/bio-formats/src/loci/formats/codec/MJPBCodec.java

    r5353 r6349  
    105105        int sod = in.readInt() + extra; 
    106106 
    107         if (quantOffset != 0) { 
     107        if (quantOffset != 0 && quantOffset + fp < in.length()) { 
    108108          in.seek(fp + quantOffset); 
    109109          in.skipBytes(3); 
     
    120120        } 
    121121 
    122         if (huffmanOffset != 0) { 
     122        if (huffmanOffset != 0 && huffmanOffset + fp < in.length()) { 
    123123          in.seek(fp + huffmanOffset); 
    124124          in.skipBytes(3); 
  • branches/4.2/components/bio-formats/src/loci/formats/codec/TargaRLECodec.java

    r5829 r6349  
    8484      } 
    8585    } 
    86     s.close(); 
    8786    in.seek(fp + nread); 
    8887    return output.toByteArray(); 
  • branches/4.2/components/bio-formats/src/loci/formats/in/NativeND2Reader.java

    r6230 r6349  
    10891089        } 
    10901090 
    1091         store.setRectangleX(points[0], r, 0); 
    1092         store.setRectangleY(points[1], r, 0); 
    1093         store.setRectangleWidth(points[2] - points[0], r, 0); 
    1094         store.setRectangleHeight(points[3] - points[1], r, 0); 
     1091        store.setRectangleX(points[0], r, 1); 
     1092        store.setRectangleY(points[1], r, 1); 
     1093        store.setRectangleWidth(points[2] - points[0], r, 1); 
     1094        store.setRectangleHeight(points[3] - points[1], r, 1); 
    10951095      } 
    10961096      else if (type.equals("HorizontalLine") || type.equals("VerticalLine")) { 
  • branches/4.2/components/bio-formats/src/loci/formats/in/NativeQTReader.java

    r6230 r6349  
    618618  /** Cut off header bytes from a resource fork file. */ 
    619619  private void stripHeader() throws IOException { 
    620     in.findString("moov"); 
    621     in.seek(in.getFilePointer() - 4); 
     620    in.seek(0); 
     621    while (!in.readString(4).equals("moov")) { 
     622      in.seek(in.getFilePointer() - 2); 
     623    } 
     624    in.seek(in.getFilePointer() - 8); 
    622625  } 
    623626 
  • branches/4.2/components/bio-formats/src/loci/formats/in/OpenlabReader.java

    r6334 r6349  
    546546      core[i].metadataComplete = true; 
    547547    } 
     548 
     549    for (int s=0; s<getSeriesCount(); s++) { 
     550      setSeries(s); 
     551      parseImageNames(s); 
     552    } 
    548553    setSeries(0); 
    549  
    550     for (int s=0; s<getSeriesCount(); s++) { 
    551       parseImageNames(s); 
    552     } 
    553554 
    554555    MetadataStore store = makeFilterMetadata(); 
     
    704705        } 
    705706      } 
     707    } 
     708 
     709    if (core[s].rgb && uniqueC.size() <= 1) { 
     710      core[s].dimensionOrder = core[s].dimensionOrder.replaceAll("C", ""); 
     711      core[s].dimensionOrder = "XYC" + core[s].dimensionOrder.substring(2); 
    706712    } 
    707713 
  • branches/4.2/components/bio-formats/src/loci/formats/in/ScanrReader.java

    r6317 r6349  
    156156      metadataFiles.clear(); 
    157157      wellLabels.clear(); 
     158      wellCount = 0; 
    158159    } 
    159160  } 
     
    182183  protected void initFile(String id) throws FormatException, IOException { 
    183184    super.initFile(id); 
     185    if (metadataFiles.size() > 0) { 
     186      // this dataset has already been initialized 
     187      return; 
     188    } 
    184189 
    185190    // make sure we have the .xml file 
  • branches/4.2/components/test-suite/src/loci/tests/testng/ConfigurationTree.java

    r6026 r6349  
    227227  // - Convenience methods for accessing specific key values - 
    228228 
     229  public boolean noStitching() { 
     230    String noStitch = getValue("no_stitch"); 
     231    return noStitch != null && noStitch.equals("true"); 
     232  } 
     233 
    229234  public int getNumSeries() { return toInt(getValue("total_series")); } 
    230235 
  • branches/4.2/components/test-suite/src/loci/tests/testng/FormatReaderTest.java

    r6329 r6349  
    136136   */ 
    137137  public void testBufferedImageDimensions() { 
    138     if (!initFile()) return; 
    139138    String testName = "testBufferedImageDimensions"; 
     139    if (!initFile()) result(testName, false, "initFile"); 
    140140    boolean success = true; 
    141141    String msg = null; 
     
    192192   */ 
    193193  public void testByteArrayDimensions() { 
    194     if (!initFile()) return; 
    195194    String testName = "testByteArrayDimensions"; 
     195    if (!initFile()) result(testName, false, "initFile"); 
    196196    boolean success = true; 
    197197    String msg = null; 
     
    230230   */ 
    231231  public void testThumbnailImageDimensions() { 
    232     if (!initFile()) return; 
    233232    String testName = "testThumbnailImageDimensions"; 
     233    if (!initFile()) result(testName, false, "initFile"); 
    234234    boolean success = true; 
    235235    String msg = null; 
     
    290290   */ 
    291291  public void testThumbnailByteArrayDimensions() { 
    292     if (!initFile()) return; 
    293292    String testName = "testThumbnailByteArrayDimensions"; 
     293    if (!initFile()) result(testName, false, "initFile"); 
    294294    boolean success = true; 
    295295    String msg = null; 
     
    322322   */ 
    323323  public void testImageCount() { 
    324     if (!initFile()) return; 
    325324    String testName = "testImageCount"; 
     325    if (!initFile()) result(testName, false, "initFile"); 
    326326    boolean success = true; 
    327327    String msg = null; 
     
    349349   */ 
    350350  public void testOMEXML() { 
    351     if (!initFile()) return; 
    352351    String testName = "testOMEXML"; 
     352    if (!initFile()) result(testName, false, "initFile"); 
    353353    String msg = null; 
    354354    try { 
     
    413413   */ 
    414414  public void testSaneOMEXML() { 
    415     if (!initFile()) return; 
    416415    String testName = "testSaneOMEXML"; 
     416    if (!initFile()) result(testName, false, "initFile"); 
    417417    String msg = null; 
    418418    try { 
     
    472472   */ 
    473473  public void testConsistent() { 
    474     if (!initFile()) return; 
    475474    if (config == null) throw new SkipException("No config tree"); 
    476475    String testName = "testConsistent"; 
     476    if (!initFile()) result(testName, false, "initFile"); 
    477477    boolean success = true; 
    478478    String msg = null; 
     
    598598   */ 
    599599  public void testPerformance() { 
    600     if (!initFile()) return; 
    601600    if (config == null) throw new SkipException("No config tree"); 
    602601    String testName = "testPerformance"; 
     602    if (!initFile()) result(testName, false, "initFile"); 
    603603    boolean success = true; 
    604604    String msg = null; 
     
    625625        } 
    626626        long t2 = System.currentTimeMillis(); 
     627        System.gc(); 
    627628        long m2 = r.totalMemory() - r.freeMemory(); 
    628629        double actualTime = (double) (t2 - t1) / totalPlanes; 
     
    665666      else { 
    666667        Arrays.sort(base); 
    667         IFormatReader r = new FileStitcher(); 
     668        IFormatReader r = 
     669          config.noStitching() ? new ImageReader() : new FileStitcher(); 
    668670        for (int i=0; i<base.length && success; i++) { 
    669671          r.setId(base[i]); 
     
    694696   */ 
    695697  public void testValidXML() { 
    696     if (!initFile()) return; 
    697698    String testName = "testValidXML"; 
     699    if (!initFile()) result(testName, false, "initFile"); 
    698700    boolean success = true; 
    699701    try { 
     
    714716   */ 
    715717  public void testPixelsHashes() { 
    716     if (!initFile()) return; 
    717718    if (config == null) throw new SkipException("No config tree"); 
    718719    String testName = "testPixelsHashes"; 
     720    if (!initFile()) result(testName, false, "initFile"); 
    719721    boolean success = true; 
    720722    String msg = null; 
     
    745747   */ 
    746748  public void testIsThisType() { 
    747     if (!initFile()) return; 
    748749    String testName = "testIsThisType"; 
     750    if (!initFile()) result(testName, false, "initFile"); 
    749751    boolean success = true; 
    750752    String msg = null; 
     
    817819   */ 
    818820  public void writeConfigFile() { 
     821    reader = new BufferedImageReader(); 
     822    setupReader(); 
    819823    if (!initFile()) return; 
    820824    String file = reader.getCurrentFile(); 
     
    849853        line.append("]"); 
    850854      } 
     855      line.append(" no_stitch=true"); 
    851856 
    852857      // evaluate performance 
     
    900905  // -- Helper methods -- 
    901906 
     907  /** Sets up the current IFormatReader. */ 
     908  private void setupReader() { 
     909    reader.setNormalized(true); 
     910    reader.setOriginalMetadataPopulated(true); 
     911    reader.setMetadataFiltered(true); 
     912    MetadataStore store = null; 
     913    try { 
     914      store = omexmlService.createOMEXMLMetadata(); 
     915    } 
     916    catch (ServiceException e) { 
     917      LOGGER.warn("Could not parse OME-XML", e); 
     918    } 
     919    reader.setMetadataStore(store); 
     920  } 
     921 
    902922  /** Initializes the reader and configuration tree. */ 
    903923  private boolean initFile() { 
    904924    if (skip) throw new SkipException(SKIP_MESSAGE); 
    905     if (reader == null) { 
    906       reader = new BufferedImageReader(new FileStitcher()); 
    907       reader.setNormalized(true); 
    908       reader.setOriginalMetadataPopulated(true); 
    909       reader.setMetadataFiltered(true); 
    910       MetadataStore store = null; 
    911       try { 
    912         store = omexmlService.createOMEXMLMetadata(); 
    913       } 
    914       catch (ServiceException e) { 
    915         LOGGER.warn("Could not parse OME-XML", e); 
    916       } 
    917       reader.setMetadataStore(store); 
    918     } 
     925    reader = new BufferedImageReader(new FileStitcher()); 
     926    setupReader(); 
    919927    if (id.equals(reader.getCurrentFile())) return true; // already initialized 
    920928 
     
    930938    LOGGER.info("Initializing {}: ", id); 
    931939    try { 
     940      // initialize configuration tree 
     941      if (config != null) config.setId(id); 
     942      if (config != null && config.noStitching()) { 
     943        reader = new BufferedImageReader(); 
     944        setupReader(); 
     945      } 
     946 
    932947      reader.setId(id); 
    933948      // remove used files 
     
    947962        LOGGER.error("Used files list does not include base file"); 
    948963      } 
    949  
    950       // initialize configuration tree 
    951       if (config != null) config.setId(id); 
    952964    } 
    953965    catch (Throwable t) { 
  • trunk/components/bio-formats/src/loci/formats/codec/MJPBCodec.java

    r5353 r6349  
    105105        int sod = in.readInt() + extra; 
    106106 
    107         if (quantOffset != 0) { 
     107        if (quantOffset != 0 && quantOffset + fp < in.length()) { 
    108108          in.seek(fp + quantOffset); 
    109109          in.skipBytes(3); 
     
    120120        } 
    121121 
    122         if (huffmanOffset != 0) { 
     122        if (huffmanOffset != 0 && huffmanOffset + fp < in.length()) { 
    123123          in.seek(fp + huffmanOffset); 
    124124          in.skipBytes(3); 
  • trunk/components/bio-formats/src/loci/formats/codec/TargaRLECodec.java

    r5829 r6349  
    8484      } 
    8585    } 
    86     s.close(); 
    8786    in.seek(fp + nread); 
    8887    return output.toByteArray(); 
  • trunk/components/bio-formats/src/loci/formats/in/NativeND2Reader.java

    r6230 r6349  
    10891089        } 
    10901090 
    1091         store.setRectangleX(points[0], r, 0); 
    1092         store.setRectangleY(points[1], r, 0); 
    1093         store.setRectangleWidth(points[2] - points[0], r, 0); 
    1094         store.setRectangleHeight(points[3] - points[1], r, 0); 
     1091        store.setRectangleX(points[0], r, 1); 
     1092        store.setRectangleY(points[1], r, 1); 
     1093        store.setRectangleWidth(points[2] - points[0], r, 1); 
     1094        store.setRectangleHeight(points[3] - points[1], r, 1); 
    10951095      } 
    10961096      else if (type.equals("HorizontalLine") || type.equals("VerticalLine")) { 
  • trunk/components/bio-formats/src/loci/formats/in/NativeQTReader.java

    r6230 r6349  
    618618  /** Cut off header bytes from a resource fork file. */ 
    619619  private void stripHeader() throws IOException { 
    620     in.findString("moov"); 
    621     in.seek(in.getFilePointer() - 4); 
     620    in.seek(0); 
     621    while (!in.readString(4).equals("moov")) { 
     622      in.seek(in.getFilePointer() - 2); 
     623    } 
     624    in.seek(in.getFilePointer() - 8); 
    622625  } 
    623626 
  • trunk/components/bio-formats/src/loci/formats/in/OpenlabReader.java

    r6334 r6349  
    546546      core[i].metadataComplete = true; 
    547547    } 
     548 
     549    for (int s=0; s<getSeriesCount(); s++) { 
     550      setSeries(s); 
     551      parseImageNames(s); 
     552    } 
    548553    setSeries(0); 
    549  
    550     for (int s=0; s<getSeriesCount(); s++) { 
    551       parseImageNames(s); 
    552     } 
    553554 
    554555    MetadataStore store = makeFilterMetadata(); 
     
    704705        } 
    705706      } 
     707    } 
     708 
     709    if (core[s].rgb && uniqueC.size() <= 1) { 
     710      core[s].dimensionOrder = core[s].dimensionOrder.replaceAll("C", ""); 
     711      core[s].dimensionOrder = "XYC" + core[s].dimensionOrder.substring(2); 
    706712    } 
    707713 
  • trunk/components/bio-formats/src/loci/formats/in/ScanrReader.java

    r6317 r6349  
    156156      metadataFiles.clear(); 
    157157      wellLabels.clear(); 
     158      wellCount = 0; 
    158159    } 
    159160  } 
     
    182183  protected void initFile(String id) throws FormatException, IOException { 
    183184    super.initFile(id); 
     185    if (metadataFiles.size() > 0) { 
     186      // this dataset has already been initialized 
     187      return; 
     188    } 
    184189 
    185190    // make sure we have the .xml file 
  • trunk/components/test-suite/src/loci/tests/testng/ConfigurationTree.java

    r6026 r6349  
    227227  // - Convenience methods for accessing specific key values - 
    228228 
     229  public boolean noStitching() { 
     230    String noStitch = getValue("no_stitch"); 
     231    return noStitch != null && noStitch.equals("true"); 
     232  } 
     233 
    229234  public int getNumSeries() { return toInt(getValue("total_series")); } 
    230235 
  • trunk/components/test-suite/src/loci/tests/testng/FormatReaderTest.java

    r6329 r6349  
    136136   */ 
    137137  public void testBufferedImageDimensions() { 
    138     if (!initFile()) return; 
    139138    String testName = "testBufferedImageDimensions"; 
     139    if (!initFile()) result(testName, false, "initFile"); 
    140140    boolean success = true; 
    141141    String msg = null; 
     
    192192   */ 
    193193  public void testByteArrayDimensions() { 
    194     if (!initFile()) return; 
    195194    String testName = "testByteArrayDimensions"; 
     195    if (!initFile()) result(testName, false, "initFile"); 
    196196    boolean success = true; 
    197197    String msg = null; 
     
    230230   */ 
    231231  public void testThumbnailImageDimensions() { 
    232     if (!initFile()) return; 
    233232    String testName = "testThumbnailImageDimensions"; 
     233    if (!initFile()) result(testName, false, "initFile"); 
    234234    boolean success = true; 
    235235    String msg = null; 
     
    290290   */ 
    291291  public void testThumbnailByteArrayDimensions() { 
    292     if (!initFile()) return; 
    293292    String testName = "testThumbnailByteArrayDimensions"; 
     293    if (!initFile()) result(testName, false, "initFile"); 
    294294    boolean success = true; 
    295295    String msg = null; 
     
    322322   */ 
    323323  public void testImageCount() { 
    324     if (!initFile()) return; 
    325324    String testName = "testImageCount"; 
     325    if (!initFile()) result(testName, false, "initFile"); 
    326326    boolean success = true; 
    327327    String msg = null; 
     
    349349   */ 
    350350  public void testOMEXML() { 
    351     if (!initFile()) return; 
    352351    String testName = "testOMEXML"; 
     352    if (!initFile()) result(testName, false, "initFile"); 
    353353    String msg = null; 
    354354    try { 
     
    413413   */ 
    414414  public void testSaneOMEXML() { 
    415     if (!initFile()) return; 
    416415    String testName = "testSaneOMEXML"; 
     416    if (!initFile()) result(testName, false, "initFile"); 
    417417    String msg = null; 
    418418    try { 
     
    472472   */ 
    473473  public void testConsistent() { 
    474     if (!initFile()) return; 
    475474    if (config == null) throw new SkipException("No config tree"); 
    476475    String testName = "testConsistent"; 
     476    if (!initFile()) result(testName, false, "initFile"); 
    477477    boolean success = true; 
    478478    String msg = null; 
     
    598598   */ 
    599599  public void testPerformance() { 
    600     if (!initFile()) return; 
    601600    if (config == null) throw new SkipException("No config tree"); 
    602601    String testName = "testPerformance"; 
     602    if (!initFile()) result(testName, false, "initFile"); 
    603603    boolean success = true; 
    604604    String msg = null; 
     
    625625        } 
    626626        long t2 = System.currentTimeMillis(); 
     627        System.gc(); 
    627628        long m2 = r.totalMemory() - r.freeMemory(); 
    628629        double actualTime = (double) (t2 - t1) / totalPlanes; 
     
    665666      else { 
    666667        Arrays.sort(base); 
    667         IFormatReader r = new FileStitcher(); 
     668        IFormatReader r = 
     669          config.noStitching() ? new ImageReader() : new FileStitcher(); 
    668670        for (int i=0; i<base.length && success; i++) { 
    669671          r.setId(base[i]); 
     
    694696   */ 
    695697  public void testValidXML() { 
    696     if (!initFile()) return; 
    697698    String testName = "testValidXML"; 
     699    if (!initFile()) result(testName, false, "initFile"); 
    698700    boolean success = true; 
    699701    try { 
     
    714716   */ 
    715717  public void testPixelsHashes() { 
    716     if (!initFile()) return; 
    717718    if (config == null) throw new SkipException("No config tree"); 
    718719    String testName = "testPixelsHashes"; 
     720    if (!initFile()) result(testName, false, "initFile"); 
    719721    boolean success = true; 
    720722    String msg = null; 
     
    745747   */ 
    746748  public void testIsThisType() { 
    747     if (!initFile()) return; 
    748749    String testName = "testIsThisType"; 
     750    if (!initFile()) result(testName, false, "initFile"); 
    749751    boolean success = true; 
    750752    String msg = null; 
     
    817819   */ 
    818820  public void writeConfigFile() { 
     821    reader = new BufferedImageReader(); 
     822    setupReader(); 
    819823    if (!initFile()) return; 
    820824    String file = reader.getCurrentFile(); 
     
    849853        line.append("]"); 
    850854      } 
     855      line.append(" no_stitch=true"); 
    851856 
    852857      // evaluate performance 
     
    900905  // -- Helper methods -- 
    901906 
     907  /** Sets up the current IFormatReader. */ 
     908  private void setupReader() { 
     909    reader.setNormalized(true); 
     910    reader.setOriginalMetadataPopulated(true); 
     911    reader.setMetadataFiltered(true); 
     912    MetadataStore store = null; 
     913    try { 
     914      store = omexmlService.createOMEXMLMetadata(); 
     915    } 
     916    catch (ServiceException e) { 
     917      LOGGER.warn("Could not parse OME-XML", e); 
     918    } 
     919    reader.setMetadataStore(store); 
     920  } 
     921 
    902922  /** Initializes the reader and configuration tree. */ 
    903923  private boolean initFile() { 
Note: See TracChangeset for help on using the changeset viewer.