Modify

Opened 5 years ago

Closed 4 years ago

#1448 closed defect (fixed)

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

Reported by: FauxFaux Owned by: framm
Priority: major 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 5 years ago.
Simple mplementation (with hard-to-follow logic)

Download all attachments as: .zip

Change History (6)

Changed 5 years ago by FauxFaux

Simple mplementation (with hard-to-follow logic)

comment:1 Changed 5 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 5 years ago by anonymous

  • Summary changed from Incomplete NMEA sentences cause scary exception messages. to [PATCH] Incomplete NMEA sentences cause scary exception messages.

comment:3 Changed 4 years ago by Hasienda

  • Keywords StringIndexOutOfBoundsException NMEA log import added; nmea removed
  • Summary changed from [PATCH] Incomplete NMEA sentences cause scary exception messages. to [PATCH] import of incomplete NMEA sentences causes exception

closed ticket #1659 as another, more recent duplicate of this ticket

comment:4 Changed 4 years ago by Hasienda

  • Summary changed from [PATCH] import of incomplete NMEA sentences causes exception to [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 4 years ago by stoecker

  • Resolution set to fixed
  • Status changed from new to closed

Applied in r1167.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed .
as The resolution will be set. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


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

 
Note: See TracTickets for help on using tickets.