Ticket #1618: bompatch.diff

File bompatch.diff, 1.7 KB (added by h-a-l-9000@…, 17 years ago)
  • E:/Programmierumgebungen/Projekte/JOSM/src/org/openstreetmap/josm/actions/OpenAction.java

     
    66import java.awt.event.ActionEvent;
    77import java.awt.event.InputEvent;
    88import java.awt.event.KeyEvent;
     9import java.io.InputStream;
    910import java.io.File;
    1011import java.io.FileInputStream;
    1112import java.io.FileNotFoundException;
     
    8586                String fn = file.getName();
    8687                if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn)) {
    8788                        GpxReader r = null;
     89                        InputStream is;
    8890                        if (file.getName().endsWith(".gpx.gz")) {
    89                                 r = new GpxReader(new GZIPInputStream(new FileInputStream(file)), file.getAbsoluteFile().getParentFile());
     91                                is = new GZIPInputStream(new FileInputStream(file));
    9092                        } else {
    91                                 r = new GpxReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile());
     93                                is = new FileInputStream(file);
    9294                        }
     95                        // Workaround for SAX BOM bug
     96                        // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6206835
     97                        if(!((is.read()==0xef)&&(is.read()==0xbb)&&(is.read()==0xbf))) {
     98                                is.close();
     99                                if (file.getName().endsWith(".gpx.gz")) {
     100                                        is = new GZIPInputStream(new FileInputStream(file));
     101                                } else {
     102                                        is = new FileInputStream(file);
     103                                }
     104                        }
     105                        r = new GpxReader(is,file.getAbsoluteFile().getParentFile());
    93106                        r.data.storageFile = file;
    94107                        GpxLayer gpxLayer = new GpxLayer(r.data, fn);
    95108                        Main.main.addLayer(gpxLayer);