Ticket #18397: 18397.patch

File 18397.patch, 2.2 KB (added by Bjoeni, 6 years ago)
  • src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java

     
    112112            addLayers(loadLayers(r.getGpxData(), parsedProperly, fileName, tr("Markers from {0}", fileName)));
    113113        } catch (SAXException e) {
    114114            Logging.error(e);
    115             throw new IOException(tr("Parsing data for layer ''{0}'' failed", fileName), e);
     115            throw new IOException(e.getLocalizedMessage(), e);
    116116        }
    117117    }
    118118
  • src/org/openstreetmap/josm/io/GpxReader.java

     
    644644        } catch (SAXException e) {
    645645            if (tryToFinish) {
    646646                parser.tryToFinish();
    647                 if (parser.data.isEmpty())
    648                     throw e;
    649                 String message = e.getMessage();
     647                String message = e.getLocalizedMessage();
    650648                if (e instanceof SAXParseException) {
     649                    boolean dot = message.lastIndexOf('.') == message.length() - 1;
     650                    if (dot)
     651                        message = message.substring(0, message.length() - 1);
    651652                    SAXParseException spe = (SAXParseException) e;
    652653                    message += ' ' + tr("(at line {0}, column {1})", spe.getLineNumber(), spe.getColumnNumber());
     654                    if (dot)
     655                        message += '.';
    653656                }
    654                 Logging.warn(message);
     657                if (parser.data.creator != null && !parser.data.creator.trim().isEmpty()) {
     658                    message += "\n" + tr("The file was created by \"{0}\".", parser.data.creator);
     659                }
     660                SAXException ex = new SAXException(message, e);
     661                if (parser.data.isEmpty())
     662                    throw ex;
     663                Logging.warn(ex);
    655664                return false;
    656665            } else
    657666                throw e;