What steps will reproduce the problem?
1. try to store recorded points to gpx file in onDestroy() method
2. assert recordedGeoPoints is not empty
Exception is thrown but the gpx file is created anyway.
02-21 12:38:03.576: E/OPENSTREETMAP(17361): File-Writing-Error
02-21 12:38:03.576: E/OPENSTREETMAP(17361): java.lang.IllegalArgumentException:
Records size == 0
02-21 12:38:03.576: E/OPENSTREETMAP(17361): at
org.osmdroid.contributor.util.RecordedRouteGPXFormatter.create(RecordedRouteGPXF
ormatter.java:94)
02-21 12:38:03.576: E/OPENSTREETMAP(17361): at
org.androad.osm.api.traces.GPXToFileWriter$1.run(GPXToFileWriter.java:64)
02-21 12:38:03.576: E/OPENSTREETMAP(17361): at
java.lang.Thread.run(Thread.java:1019)
used method provided below.
this method is used in AndRoad
public static void writeToFileAsync(final ArrayList<RecordedGeoPoint>
recordedGeoPoints){
new Thread(new Runnable(){
@Override
public void run() {
try {
// Ensure folder exists
final String traceFolderPath = Util.getAndRoadExternalStoragePath() + SDCARD_SAVEDTRACES_PATH;
new File(traceFolderPath).mkdirs();
// Create file and ensure that needed folders exist.
final String filename = SDF.format(new Date(System.currentTimeMillis())) + ".gpx";
final File dest = new File(traceFolderPath + filename + ".zip");
// Write Data
final OutputStream out = new BufferedOutputStream(new FileOutputStream(dest),StreamUtils.IO_BUFFER_SIZE);
final byte[] data = org.androad.osm.api.traces.util.Util.zipBytes(RecordedRouteGPXFormatter.create(recordedGeoPoints).getBytes(), filename);
out.write(data);
out.flush();
out.close();
} catch (final Exception e) {
Log.e(OSMConstants.DEBUGTAG, "File-Writing-Error", e);
}
}
}, "GPXToFileSaver-Thread").start();
}
Original issue reported on code.google.com by temporar...@gmail.com on 21 Feb 2013 at 12:18
Original issue reported on code.google.com by
temporar...@gmail.com
on 21 Feb 2013 at 12:18