Changeset 15593 in josm for trunk


Ignore:
Timestamp:
2019-12-15T10:57:07+01:00 (4 years ago)
Author:
GerdP
Message:

fix #18397: Provide more helpful error message when loading an invalid gpx file
patch by Bjoeni

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java

    r15560 r15593  
    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    }
  • trunk/src/org/openstreetmap/josm/io/GpxReader.java

    r15588 r15593  
    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());
    653                 }
    654                 Logging.warn(message);
     654                    if (dot)
     655                        message += '.';
     656                }
     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
Note: See TracChangeset for help on using the changeset viewer.