Changeset 3986


Ignore:
Timestamp:
04/25/08 18:59:08 (12 years ago)
Author:
curtis
Message:

Fix threading problem with POI formats.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/POITools.java

    r3705 r3986  
    4747    "http://loci.wisc.edu/ome/formats.html"; 
    4848 
    49   // -- Static fields -- 
    50  
    51   private static boolean noPOI = false; 
    52   private static ReflectedUniverse r = createReflectedUniverse(); 
    53  
    54   private static ReflectedUniverse createReflectedUniverse() { 
    55     r = null; 
    56     try { 
    57       r = new ReflectedUniverse(); 
    58       r.exec("import org.apache.poi.poifs.filesystem.POIFSFileSystem"); 
    59       r.exec("import org.apache.poi.poifs.filesystem.DirectoryEntry"); 
    60       r.exec("import org.apache.poi.poifs.filesystem.DocumentEntry"); 
    61       r.exec("import org.apache.poi.poifs.filesystem.DocumentInputStream"); 
    62       r.exec("import org.apache.poi.util.RandomAccessStream"); 
    63       r.exec("import java.util.Iterator"); 
    64     } 
    65     catch (ReflectException exc) { 
    66       noPOI = true; 
    67       exc.printStackTrace(); 
    68     } 
    69     return r; 
    70   } 
    71  
    7249  // -- Fields -- 
     50 
     51  private boolean noPOI = false; 
     52  private ReflectedUniverse r; 
    7353 
    7454  private String id; 
     
    158138 
    159139  private void initialize(String file) throws FormatException, IOException { 
    160     if (noPOI) throw new FormatException(NO_POI_MSG); 
     140    try { 
     141      r = new ReflectedUniverse(); 
     142      r.exec("import org.apache.poi.poifs.filesystem.POIFSFileSystem"); 
     143      r.exec("import org.apache.poi.poifs.filesystem.DirectoryEntry"); 
     144      r.exec("import org.apache.poi.poifs.filesystem.DocumentEntry"); 
     145      r.exec("import org.apache.poi.poifs.filesystem.DocumentInputStream"); 
     146      r.exec("import org.apache.poi.util.RandomAccessStream"); 
     147      r.exec("import java.util.Iterator"); 
     148    } 
     149    catch (ReflectException exc) { 
     150      throw new FormatException(NO_POI_MSG, exc); 
     151    } 
    161152 
    162153    RandomAccessStream s = new RandomAccessStream(file); 
Note: See TracChangeset for help on using the changeset viewer.