Changeset 6098


Ignore:
Timestamp:
04/07/10 14:36:15 (10 years ago)
Author:
melissa
Message:
  • Allow the comment delimiter to be changed in IniParser.
  • Fixed a whole bunch of FV1000 bugs.
Location:
trunk/components
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/bio-formats/src/loci/formats/in/FV1000Reader.java

    r6097 r6098  
    310310    super.initFile(id); 
    311311 
     312    parser.setCommentDelimiter(null); 
     313 
    312314    isOIB = checkSuffix(id, OIB_SUFFIX); 
    313315 
     
    419421      } 
    420422    } 
     423 
     424    if (filenames.size() == 0) addPtyFiles(); 
    421425 
    422426    for (int i=0; i<NUM_DIMENSIONS; i++) { 
     
    591595        } 
    592596        if (!mappedOIF) { 
    593           file = new Location(tiffPath, file).getAbsolutePath(); 
    594597          if (isOIB) { 
    595             file = file.substring(file.indexOf(File.separator)); 
    596           } 
     598            file = tiffPath + File.separator + file; 
     599          } 
     600          else file = new Location(tiffPath, file).getAbsolutePath(); 
    597601        } 
    598602        tiffs.add(ii, file); 
     
    762766      LOGGER.debug("Could not read thumbnail", e); 
    763767    } 
     768    catch (FormatException e) { 
     769      LOGGER.debug("Could not read thumbnail", e); 
     770    } 
    764771 
    765772    // initialize lookup table 
     
    769776    int count = (int) Math.min(getSizeC(), lutNames.size()); 
    770777    for (int c=0; c<count; c++) { 
     778      Exception exc = null; 
    771779      try { 
    772780        RandomAccessInputStream stream = getFile(lutNames.get(c)); 
     
    780788        } 
    781789      } 
    782       catch (IOException e) { 
    783         LOGGER.debug("Could not read LUT", e); 
     790      catch (IOException e) { exc = e; } 
     791      catch (FormatException e) { exc = e; } 
     792      if (exc != null) { 
     793        LOGGER.debug("Could not read LUT", exc); 
    784794        lut = null; 
    785795        break; 
     
    977987  { 
    978988    int[] coordinates = getZCTCoords(plane); 
    979     IniList roiFile = getIniFile(filename); 
     989    IniList roiFile = null; 
     990    try { 
     991      roiFile = getIniFile(filename); 
     992    } 
     993    catch (FormatException e) { 
     994      LOGGER.debug("Could not parse ROI file {}", filename, e); 
     995      return nextROI; 
     996    } 
    980997 
    981998    boolean validROI = false; 
     
    12461263 
    12471264        if (key.startsWith("Stream")) { 
     1265          value = sanitizeFile(value, ""); 
    12481266          if (checkSuffix(value, OIF_SUFFIX)) oifName = value; 
    1249           value = sanitizeFile(value, ""); 
    12501267          if (directoryKey != null && value.startsWith(directoryValue)) { 
    12511268            oibMapping.put(value, "Root Entry" + File.separator + 
     
    12781295  private String sanitizeFile(String file, String path) { 
    12791296    String f = sanitizeValue(file); 
    1280     if (!isOIB && path.equals("")) return f; 
     1297    if (path.equals("")) return f; 
    12811298    return path + File.separator + f; 
    12821299  } 
     
    12971314  { 
    12981315    if (isOIB) { 
    1299       if (!name.startsWith(File.separator)) { 
    1300         name = File.separator + name; 
    1301       } 
    13021316      name = name.replace('\\', File.separatorChar); 
    13031317      name = name.replace('/', File.separatorChar); 
    1304       return poi.getDocumentStream(oibMapping.get(name)); 
     1318      String realName = oibMapping.get(name); 
     1319      if (realName == null) { 
     1320        throw new FormatException("File " + name + " not found."); 
     1321      } 
     1322      return poi.getDocumentStream(realName); 
    13051323    } 
    13061324    else return new RandomAccessInputStream(name); 
  • trunk/components/common/src/loci/common/IniParser.java

    r6050 r6098  
    4040public class IniParser { 
    4141 
     42  private String commentDelimiter = "#"; 
     43 
    4244  // -- IniParser API methods -- 
     45 
     46  /** 
     47   * Set the String that identifies a comment.  Defaults to "#". 
     48   */ 
     49  public void setCommentDelimiter(String delimiter) { 
     50    commentDelimiter = delimiter; 
     51  } 
    4352 
    4453  /** Parses the INI-style configuration data from the given resource. */ 
     
    149158 
    150159      // strip comments 
    151       int hash = line.indexOf("#"); 
    152       if (hash >= 0) line = line.substring(0, hash); 
     160      if (commentDelimiter != null) { 
     161        int comment = line.indexOf(commentDelimiter); 
     162        if (comment >= 0) line = line.substring(0, comment); 
     163      } 
    153164 
    154165      // kill whitespace 
  • trunk/components/forks/poi/src/loci/poi/poifs/storage/RawDataBlockList.java

    r5059 r6098  
    6060            } 
    6161            blocks.add(block); 
     62            if (size + stream.getFilePointer() > stream.length()) { 
     63              break; 
     64            } 
    6265            stream.skipBytes(size); 
    6366        } 
Note: See TracChangeset for help on using the changeset viewer.