Running Tracker – Nike+iPod software


Running Tracker 2.2.1

Posted in Release by RunningTracker on the 18 July 2012

Thank you all for your feedbacks! I was told yesterday that there was a database connection problem in Running Tracker 2.2.0. Here is the fix!

For your information, a new feature is available since Running Tracker 2.2.0. You can now mark workouts as “competition”. These workouts will be bold in the list of workouts:


Download
If you feel that Running Tracker is a nice software for your Nike+ device, please consider making a small donation to the project. The donation doesn’t need to be big, any amount is very welcome. Please remember that the donations (even the small ones) are a way of telling me that you enjoy using the software and that you’d like to see other updates released in the future.




 

Download Running Tracker 2.2.1 it here: http://runningtracker.tuxfamily.org/index.php?title=Download

7 Responses to 'Running Tracker 2.2.1'

Subscribe to comments with RSS or TrackBack to 'Running Tracker 2.2.1'.


  1. on 24 July 2012 at 9:19 AM

    [...] Running Tracker is now working with the new Nike+ version! See the new post: http://runningtracker.tuxfamily.org/blog/2012/07/18/running-tracker-2-2-1/ 4 [...]


  2. on 24 July 2012 at 9:20 AM

    [...] Running Tracker is now working with the new Nike+ version! See the new post: http://runningtracker.tuxfamily.org/blog/2012/07/18/running-tracker-2-2-1/ 0 [...]


  3. on 24 July 2012 at 9:20 AM

    [...] Running Tracker is now working with the new Nike+ version! See the new post: http://runningtracker.tuxfamily.org/blog/2012/07/18/running-tracker-2-2-1/ 6 [...]

  4. Rick s said,

    on 14 August 2012 at 11:54 PM

    not working for me, check connection on preferences works but when i try to synchronise i get the below import error.

    Import error

    Message:
    java.util.concurrent.ExecutionException: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 2 column 10
    Level:
    SEVERE
    Stack Trace:
    com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 2 column 10
    java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
    java.util.concurrent.FutureTask.get(Unknown Source)
    javax.swing.SwingWorker.get(Unknown Source)
    org.runningtracker.ui.views.workouts.WorkoutsView$9.propertyChange(WorkoutsView.java:995)
    java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    javax.swing.SwingWorker$SwingWorkerPropertyChangeSupport.firePropertyChange(Unknown Source)
    javax.swing.SwingWorker$SwingWorkerPropertyChangeSupport$1.run(Unknown Source)
    javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
    sun.swing.AccumulativeRunnable.run(Unknown Source)
    javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
    javax.swing.Timer.fireActionPerformed(Unknown Source)
    javax.swing.Timer$DoPostEvent.run(Unknown Source)
    java.awt.event.InvocationEvent.dispatch(Unknown Source)
    java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    java.awt.EventQueue.access$000(Unknown Source)
    java.awt.EventQueue$1.run(Unknown Source)
    java.awt.EventQueue$1.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    java.awt.EventQueue.dispatchEvent(Unknown Source)
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    java.awt.EventDispatchThread.run(Unknown Source)
    java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 2 column 10
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
    com.google.gson.Gson.fromJson(Gson.java:795)
    com.google.gson.Gson.fromJson(Gson.java:761)
    com.google.gson.Gson.fromJson(Gson.java:710)
    com.google.gson.Gson.fromJson(Gson.java:682)
    org.runningtracker.engine.NikePlusWebsiteEngine.importWorkout(NikePlusWebsiteEngine.java:297)
    org.runningtracker.ui.views.workouts.tasks.ImportWorkoutsFromWebsiteTask.doInBackground(ImportWorkoutsFromWebsiteTask.java:129)
    org.runningtracker.ui.views.workouts.tasks.ImportWorkoutsFromWebsiteTask.doInBackground(ImportWorkoutsFromWebsiteTask.java:48)
    javax.swing.SwingWorker$1.call(Unknown Source)
    java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    java.util.concurrent.FutureTask.run(Unknown Source)
    javax.swing.SwingWorker.run(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)
    Expected BEGIN_OBJECT but was STRING at line 2 column 10
    com.google.gson.stream.JsonReader.expect(JsonReader.java:339)
    com.google.gson.stream.JsonReader.beginObject(JsonReader.java:322)
    com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:165)
    com.google.gson.Gson.fromJson(Gson.java:795)
    com.google.gson.Gson.fromJson(Gson.java:761)
    com.google.gson.Gson.fromJson(Gson.java:710)
    com.google.gson.Gson.fromJson(Gson.java:682)
    org.runningtracker.engine.NikePlusWebsiteEngine.importWorkout(NikePlusWebsiteEngine.java:297)
    org.runningtracker.ui.views.workouts.tasks.ImportWorkoutsFromWebsiteTask.doInBackground(ImportWorkoutsFromWebsiteTask.java:129)
    org.runningtracker.ui.views.workouts.tasks.ImportWorkoutsFromWebsiteTask.doInBackground(ImportWorkoutsFromWebsiteTask.java:48)
    javax.swing.SwingWorker$1.call(Unknown Source)
    java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    java.util.concurrent.FutureTask.run(Unknown Source)
    javax.swing.SwingWorker.run(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)

  5. Anthony said,

    on 16 August 2012 at 5:54 AM

    I’m also having issues. The check connection works, but I get an exception error message when trying to actually download any run data.

    For the record I also tried manually deleting the old run data (removed ~/.runningtracker directory under linux), but I still got the same error.

    I’m using Ubuntu 10.04 if it helps, although I’ve also tried it under OSX Snow Leopard. I just now tried a fresh install on Windows XP install and got the same exception.
    Anthony.

    Import error

    Message:
    java.util.concurrent.ExecutionException: java.lang.NullPointerException
    Level:
    SEVERE
    Stack Trace:
    java.lang.NullPointerException
    java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
    java.util.concurrent.FutureTask.get(FutureTask.java:111)
    javax.swing.SwingWorker.get(SwingWorker.java:596)
    org.runningtracker.ui.views.workouts.WorkoutsView$9.propertyChange(WorkoutsView.java:995)
    java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:298)
    java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:291)
    javax.swing.SwingWorker$SwingWorkerPropertyChangeSupport.firePropertyChange(SwingWorker.java:899)
    javax.swing.SwingWorker$SwingWorkerPropertyChangeSupport$1.run(SwingWorker.java:904)
    javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:877)
    sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
    javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:887)
    javax.swing.Timer.fireActionPerformed(Timer.java:313)
    javax.swing.Timer$DoPostEvent.run(Timer.java:244)
    java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
    java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
    java.awt.EventQueue.access$000(EventQueue.java:96)
    java.awt.EventQueue$1.run(EventQueue.java:608)
    java.awt.EventQueue$1.run(EventQueue.java:606)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
    java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
    null
    org.runningtracker.engine.NikePlusCom.importWorkout(NikePlusCom.java:144)
    org.runningtracker.engine.NikePlusCom.importNikePlusDocument(NikePlusCom.java:339)
    org.runningtracker.engine.NikePlusWebsiteEngine.importWorkout(NikePlusWebsiteEngine.java:301)
    org.runningtracker.ui.views.workouts.tasks.ImportWorkoutsFromWebsiteTask.doInBackground(ImportWorkoutsFromWebsiteTask.java:129)
    org.runningtracker.ui.views.workouts.tasks.ImportWorkoutsFromWebsiteTask.doInBackground(ImportWorkoutsFromWebsiteTask.java:48)
    javax.swing.SwingWorker$1.call(SwingWorker.java:291)
    java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    java.util.concurrent.FutureTask.run(FutureTask.java:166)
    javax.swing.SwingWorker.run(SwingWorker.java:330)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    java.lang.Thread.run(Thread.java:679)


  6. on 20 August 2012 at 3:41 PM

    @Rick @Anthony:
    Thanks for your feedback. I’m working on this issue. I will release the next version as soon as possible.


  7. on 29 August 2012 at 1:18 PM

Leave a Reply