Fixed a bug in BT747_2.X.1813_full for j2se

flebel's picture

Hello!
When I ran run_j2se.sh and tried to "Tag from file" a JPEG file and a GPX file that came from gpsbabel, I kept getting many of the following exception every second. Even after 5 minutes, BT747 never managed to tag my files and was eating all of my CPU cycles.

Problem in trackpoint info:EXTENSIONS
java.lang.IllegalArgumentException: No enum const class bt747.j2se_view.GPXLogConvert$infoType.EXTENSIONS
at java.lang.Enum.valueOf(Enum.java:214)
at bt747.j2se_view.GPXLogConvert$infoType.valueOf(Unknown Source)
at bt747.j2se_view.GPXLogConvert.convertNodeToGPSRecord(Unknown Source)
at bt747.j2se_view.GPXLogConvert.parseFile(Unknown Source)
at gps.log.in.MultiLogConvert.toGPSFile(Unknown Source)
at bt747.model.Controller.doConvertLogToTracksAndWayPoints(Unknown Source)
at bt747.j2se_view.J2SEAppController.convertLogToTrackAndWayPoints(Unknown Source)
at bt747.j2se_view.J2SEAppController$4.run(Unknown Source)

My fix was to add EXTENSIONS to the infoType enum. I haven't attached a patch since my fix may just temporary patch a deeper bug.

Also, it would be helpful to add proguard's jar in the lib directory and add instructions to the README file explaining which target one shall specify when building with ant.

Nevertheless, thank you for this great program!
Francois

mdeweerd's picture

Hi Flebel Thanks for the

Hi Flebel

Thanks for the feedback regarding the bug and having taken the trouble to setup the build environment to solve it.

 

  • 'extensions' is a valid GPX tag in the GPX standard, so adding it to the list is a good thing and I should have done it;
  • Even if 'extensions' was not recognised, it should not result in an indefinite loop.  I tried using some small sample files and conversion did finish quite quickly.  The missing 'Extensions' was captured and reported.
    Currently the most plausible explication is that you had a lot of these exceptions thereby slowing down the conversion.  To make sure, I could test your file in my debug environment;
  • => I added Extensions to the list just like you did yourself;
  • I have updated the 'build.xml' to not use proguard when the proguard 'jar' is missing.
    To limit the upload/download time, I've not put certain files in the 'zip' - proguard is one of them as using it can be skipped in the configuration, which is now done automatically;
    SVN has almost everything (it does not have the automated upload method and my 'local.properties' containing passwords, local paths, and keystore references);
  • Feel free to write the extra text for the documentation/readme/... .  I've written about 98% of BT747's source - considering that there was not so much participation from other coders, the developer's readme is not very developed.  Maybe it is a chicken and egg problem.
    I have updated 'dev/README.txt' a bit and added some comments at the head of the 'build.xml'.

BT747 2.X.1815 is now available.

flebel's picture

Hello, No problem! Your

Hello,
No problem!

Your explication makes sense as my GPX file has 13000 records.

The notes you've added to the readme describes exactly what information I had to dig for in order to build the project with ant. I've tried BT747 2.X.1815 and it works perfectly with my GPX file, thanks!

By the way, there is a typo in revision 1815 at the last changed line
of dev/README.txt: 'local.properties'e

Regards,
Francois