Opened 17 years ago
Closed 16 years ago
#1448 closed defect (fixed)
[PATCH] x2, import of incomplete NMEA sentences causes exception
Reported by: | FauxFaux | Owned by: | framm |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | StringIndexOutOfBoundsException; NMEA log import | Cc: |
Description
Many simplistic NMEA loggers just stop writing whenever is convenient, not bothering to put a complete sentence into the log file.
For example, a recent log of mine ended with:
$GPRMC,123456.12,A,1234.5678,N,00
...which is obviously incomplete, and invalid.
This produces the "An unexpected exception has occoured." dialog, with something like the following trace:
java.lang.StringIndexOutOfBoundsException: String index out of range: 3 at java.lang.String.substring(String.java:1935) at org.openstreetmap.josm.io.NmeaReader.parseLatLon(NmeaReader.java:179) at org.openstreetmap.josm.io.NmeaReader.<init>(NmeaReader.java:150) at org.openstreetmap.josm.actions.OpenAction.openFileAsNmea(OpenAction.java:111) at org.openstreetmap.josm.actions.OpenAction.openFile(OpenAction.java:60) at org.openstreetmap.josm.actions.OpenAction.actionPerformed(OpenAction.java:49) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6134) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5899) at java.awt.Container.processEvent(Container.java:2023) at java.awt.Component.dispatchEventImpl(Component.java:4501) at java.awt.Container.dispatchEventImpl(Container.java:2081) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895) at java.awt.Container.dispatchEventImpl(Container.java:2067) at java.awt.Window.dispatchEventImpl(Window.java:2458) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Perhaps ignoring errors that occour in the last sentence of a file would be sensible?
Attachments (1)
Change History (6)
by , 17 years ago
Attachment: | nmea_exception.patch added |
---|
comment:1 by , 17 years ago
Could you adapt your patch slightly?
a) Ignore all errors in the NMEA file
b) When there have been errors, print an message dialog at the end of the import telling the number of errors.
comment:2 by , 16 years ago
Summary: | Incomplete NMEA sentences cause scary exception messages. → [PATCH] Incomplete NMEA sentences cause scary exception messages. |
---|
comment:3 by , 16 years ago
Keywords: | StringIndexOutOfBoundsException NMEA log import added; nmea removed |
---|---|
Summary: | [PATCH] Incomplete NMEA sentences cause scary exception messages. → [PATCH] import of incomplete NMEA sentences causes exception |
closed ticket #1659 as another, more recent duplicate of this ticket
comment:4 by , 16 years ago
Summary: | [PATCH] import of incomplete NMEA sentences causes exception → [PATCH] x2, import of incomplete NMEA sentences causes exception |
---|
Simple mplementation (with hard-to-follow logic)