Changeset 5680


Ignore:
Timestamp:
11/10/09 12:19:02 (10 years ago)
Author:
melissa
Message:

Prevent StringIndexOutOfBoundsException when parsing key/value pairs.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.1/components/bio-formats/src/loci/formats/in/NativeND2Reader.java

    r5577 r5680  
    8181  private Vector<Long> zs = new Vector<Long>(); 
    8282  private Vector<Long> ts = new Vector<Long>(); 
    83   private Vector<Double> tsT = new Vector<Double>(); 
     83  private Vector<Float> tsT = new Vector<Float>(); 
    8484 
    8585  private int numSeries; 
    8686 
    87   private float pixelSizeX, pixelSizeY, pixelSizeZ; 
     87  private double pixelSizeX, pixelSizeY, pixelSizeZ; 
    8888  private String voltage, mag, na, objectiveModel, immersion, correction; 
    8989 
     
    380380          core[i].sizeT = 1; 
    381381        } 
     382      } 
     383 
     384      if (getDimensionOrder().equals("T")) { 
     385        fieldIndex = 0; 
    382386      } 
    383387 
     
    523527            // timestamps are stored in ms; we want them in seconds 
    524528            double time = in.readDouble() / 1000; 
    525             tsT.add(new Double(time)); 
     529            tsT.add(new Float(time)); 
    526530            addSeriesMeta("timestamp " + plane, time); 
    527531          } 
     
    10071011    addGlobalMeta(key, value); 
    10081012    if (key.endsWith("dCalibration")) { 
    1009       pixelSizeX = Float.parseFloat(value); 
     1013      pixelSizeX = Double.parseDouble(value); 
    10101014      pixelSizeY = pixelSizeX; 
    10111015    } 
    1012     else if (key.endsWith("dZStep")) pixelSizeZ = Float.parseFloat(value); 
     1016    else if (key.endsWith("dZStep")) pixelSizeZ = Double.parseDouble(value); 
    10131017    else if (key.endsWith("Gain")) gain.add(new Float(value)); 
    10141018    else if (key.endsWith("dLampVoltage")) voltage = value; 
     
    11541158              String[] s = v[1].trim().split(" "); 
    11551159              try { 
    1156                 float time = Float.parseFloat(s[0]); 
     1160                double time = Double.parseDouble(s[0]); 
    11571161                // TODO: check for other units 
    11581162                if (s[1].equals("ms")) time /= 1000; 
     
    11661170            int last = v[0].indexOf(" ", space + 1); 
    11671171            if (last == -1) last = v[0].length(); 
    1168             pixelSizeZ = Float.parseFloat(v[0].substring(space, last)); 
     1172            pixelSizeZ = Double.parseDouble(v[0].substring(space, last)); 
    11691173          } 
    11701174          else if (v[0].equals("Line")) { 
     
    11721176            for (int q=0; q<values.length; q++) { 
    11731177              int colon = values[q].indexOf(":"); 
     1178              if (colon < 0) continue; 
    11741179              String nextKey = values[q].substring(0, colon).trim(); 
    11751180              String nextValue = values[q].substring(colon + 1).trim(); 
     
    11811186              } 
    11821187              else if (nextKey.equals("Power")) { 
    1183                 power.add(new Integer((int) Float.parseFloat(nextValue))); 
     1188                power.add(new Integer((int) Double.parseDouble(nextValue))); 
    11841189              } 
    11851190            } 
  • trunk/components/bio-formats/src/loci/formats/in/NativeND2Reader.java

    r5637 r5680  
    11761176            for (int q=0; q<values.length; q++) { 
    11771177              int colon = values[q].indexOf(":"); 
     1178              if (colon < 0) continue; 
    11781179              String nextKey = values[q].substring(0, colon).trim(); 
    11791180              String nextValue = values[q].substring(colon + 1).trim(); 
Note: See TracChangeset for help on using the changeset viewer.