Changeset 1035 in josm for trunk/src/org


Ignore:
Timestamp:
2008-10-09T09:43:59+02:00 (16 years ago)
Author:
stoecker
Message:

workaround for Java SAX parser bug. Closes #1618. Thanks to h-a-l-9000 _ arcor.de

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/OpenAction.java

    r1023 r1035  
    77import java.awt.event.InputEvent;
    88import java.awt.event.KeyEvent;
     9import java.io.InputStream;
    910import java.io.File;
    1011import java.io.FileInputStream;
     
    8889                if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn)) {
    8990                        GpxReader r = null;
     91                        InputStream is;
    9092                        if (file.getName().endsWith(".gpx.gz")) {
    91                                 r = new GpxReader(new GZIPInputStream(new FileInputStream(file)), file.getAbsoluteFile().getParentFile());
     93                                is = new GZIPInputStream(new FileInputStream(file));
    9294                        } else {
    93                                 r = new GpxReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile());
     95                                is = new FileInputStream(file);
    9496                        }
     97                        // Workaround for SAX BOM bug
     98                        // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6206835
     99                        if(!((is.read()==0xef)&&(is.read()==0xbb)&&(is.read()==0xbf))) {
     100                                is.close();
     101                                if (file.getName().endsWith(".gpx.gz")) {
     102                                        is = new GZIPInputStream(new FileInputStream(file));
     103                                } else {
     104                                        is = new FileInputStream(file);
     105                                }
     106                        }
     107                        r = new GpxReader(is,file.getAbsoluteFile().getParentFile());
    95108                        r.data.storageFile = file;
    96109                        GpxLayer gpxLayer = new GpxLayer(r.data, fn);
Note: See TracChangeset for help on using the changeset viewer.