Modify

Opened 11 years ago

Closed 11 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)

nmea_exception.patch (1.9 KB) - added by FauxFaux 11 years ago.
Simple mplementation (with hard-to-follow logic)

Download all attachments as: .zip

Change History (6)

Changed 11 years ago by FauxFaux

Attachment: nmea_exception.patch added

Simple mplementation (with hard-to-follow logic)

comment:1 Changed 11 years ago by anonymous

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 Changed 11 years ago by anonymous

Summary: Incomplete NMEA sentences cause scary exception messages.[PATCH] Incomplete NMEA sentences cause scary exception messages.

comment:3 Changed 11 years ago by Hasienda

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 Changed 11 years ago by Hasienda

Summary: [PATCH] import of incomplete NMEA sentences causes exception[PATCH] x2, import of incomplete NMEA sentences causes exception

#1630 has another error, but same topic

#1648 has a patch and a more systematic (good!) approach on listing and resolving all/a lot of possible errors regarding NMEA log import

comment:5 Changed 11 years ago by stoecker

Resolution: fixed
Status: newclosed

Applied in r1167.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain framm.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.