Index: applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/EngineSound.java
===================================================================
--- applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/EngineSound.java	(revision 32518)
+++ applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/EngineSound.java	(revision 32914)
@@ -30,7 +30,7 @@
 
         AudioFormat output_format =
-            new AudioFormat(S_RATE, 16, 1, true, true);
+                new AudioFormat(S_RATE, 16, 1, true, true);
         DataLine.Info info =
-            new DataLine.Info(SourceDataLine.class, output_format);
+                new DataLine.Info(SourceDataLine.class, output_format);
 
         /* Get the data line, open it and initialise the device */
@@ -109,4 +109,5 @@
 
     protected class audio_task extends TimerTask {
+        @Override
         public void run() {
             if (output == null)
@@ -127,5 +128,5 @@
             int wavelen = (int) (S_RATE / freq);
             int bufferlen = MIN_BUFFER - (MIN_BUFFER % wavelen) +
-                wavelen;
+                    wavelen;
             int value = (int) (0x7fff * volume);
 
@@ -147,5 +148,5 @@
 
             frames_written +=
-                output.write(buffer, 0, bufferlen) / 2;
+                    output.write(buffer, 0, bufferlen) / 2;
 
             reschedule(frames_current);
@@ -158,5 +159,5 @@
          * about half into the last frame).  */
         long delay = (frames_written - frames - MIN_BUFFER / 2) *
-            1000 / S_RATE;
+                1000 / S_RATE;
         if (delay < 0)
             delay = 0;
Index: applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/FakeMapView.java
===================================================================
--- applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/FakeMapView.java	(revision 32518)
+++ applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/FakeMapView.java	(revision 32914)
@@ -43,5 +43,5 @@
         ProjectionBounds parent_bounds = parent.getProjectionBounds();
         max_east_west =
-            parent_bounds.maxEast - parent_bounds.minEast;
+                parent_bounds.maxEast - parent_bounds.minEast;
     }
 
@@ -61,11 +61,11 @@
             parent.zoomTo(new ProjectionBounds(
                     new EastNorth(
-                        parent_center.east() -
-                        max_east_west / 2,
-                        parent_center.north()),
+                            parent_center.east() -
+                            max_east_west / 2,
+                            parent_center.north()),
                     new EastNorth(
-                        parent_center.east() +
-                        max_east_west / 2,
-                        parent_center.north())));
+                            parent_center.east() +
+                            max_east_west / 2,
+                            parent_center.north())));
 
             /* Request again because NavigatableContent adds
@@ -73,7 +73,7 @@
              */
             ProjectionBounds new_bounds =
-                parent.getProjectionBounds();
+                    parent.getProjectionBounds();
             max_east_west =
-                new_bounds.maxEast - new_bounds.minEast;
+                    new_bounds.maxEast - new_bounds.minEast;
         }
 
@@ -100,8 +100,10 @@
     }
 
+    @Override
     public ProjectionBounds getProjectionBounds() {
         return view_bounds;
     }
 
+    @Override
     public Point getPoint(EastNorth p) {
         double x = p.east() - view_bounds.minEast;
@@ -113,8 +115,9 @@
     }
 
+    @Override
     public EastNorth getEastNorth(int x, int y) {
         return new EastNorth(
-            view_bounds.minEast + x * this.scale,
-            view_bounds.minNorth - y * this.scale);
+                view_bounds.minEast + x * this.scale,
+                view_bounds.minNorth - y * this.scale);
     }
 
@@ -123,8 +126,10 @@
     }
 
+    @Override
     public Graphics getGraphics() {
         return graphics;
     }
 
+    @Override
     public void repaint() {
     }
Index: applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/GameWindow.java
===================================================================
--- applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/GameWindow.java	(revision 32518)
+++ applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/GameWindow.java	(revision 32914)
@@ -99,4 +99,5 @@
         protected Collection<Collection<WayPoint>> trackSegs;
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             /* We should count the satellites here, see if we
@@ -128,5 +129,5 @@
             GpxData data = new GpxData();
             data.tracks.add(new ImmutableGpxTrack(trackSegs,
-                        new HashMap<String, Object>()));
+                    new HashMap<String, Object>()));
 
             ground_view.parent.getLayerManager().addLayer(
@@ -164,68 +165,68 @@
             new ImageIcon(Toolkit.getDefaultToolkit().createImage(
                     WMSRacer.class.getResource(
-                        "/images/car0-l.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/car0.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/car0-r.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/car1-l.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/car1.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/car1-r.png"))),
+                            "/images/car0-l.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/car0.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/car0-r.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/car1-l.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/car1.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/car1-r.png"))),
     };
     protected static final ImageIcon bg[] = new ImageIcon[] {
             new ImageIcon(Toolkit.getDefaultToolkit().createImage(
                     WMSRacer.class.getResource(
-                        "/images/bg0.png"))),
+                            "/images/bg0.png"))),
     };
     protected static final ImageIcon skyline[] = new ImageIcon[] {
             new ImageIcon(Toolkit.getDefaultToolkit().createImage(
                     WMSRacer.class.getResource(
-                        "/images/horizon.png"))),
+                            "/images/horizon.png"))),
     };
     protected static final ImageIcon cactus[] = new ImageIcon[] {
             new ImageIcon(Toolkit.getDefaultToolkit().createImage(
                     WMSRacer.class.getResource(
-                        "/images/cactus0.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/cactus1.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/cactus2.png"))),
+                            "/images/cactus0.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/cactus1.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/cactus2.png"))),
     };
     protected static final ImageIcon cloud[] = new ImageIcon[] {
             new ImageIcon(Toolkit.getDefaultToolkit().createImage(
                     WMSRacer.class.getResource(
-                        "/images/cloud0.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/cloud1.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/cloud2.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/cloud3.png"))),
-            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
-                    WMSRacer.class.getResource(
-                        "/images/cloud4.png"))),
+                            "/images/cloud0.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/cloud1.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/cloud2.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/cloud3.png"))),
+            new ImageIcon(Toolkit.getDefaultToolkit().createImage(
+                    WMSRacer.class.getResource(
+                            "/images/cloud4.png"))),
     };
     protected static final ImageIcon aircraft[] = new ImageIcon[] {
             new ImageIcon(Toolkit.getDefaultToolkit().createImage(
                     WMSRacer.class.getResource(
-                        "/images/aircraft0.png"))),
+                            "/images/aircraft0.png"))),
     };
     protected static final ImageIcon loading = new ImageIcon(
             Toolkit.getDefaultToolkit().createImage(
                     WMSRacer.class.getResource(
-                        "/images/loading.png")));
+                            "/images/loading.png")));
     protected static Toolkit s = Toolkit.getDefaultToolkit();
     protected int current_bg = 0;
@@ -242,5 +243,5 @@
     protected double speed = 0.0;
     protected boolean key_down[] = new boolean[] {
-        false, false, false, false, };
+            false, false, false, false, };
 
     protected void move() {
@@ -262,80 +263,80 @@
         if (key_down[2])
             speed += speed >= 0.0 ? 1.0 / (2.0 + speed) : 0.5;
-        /* Down */
-        if (key_down[3]) {
-            if (speed >= 0.5) /* Brake (TODO: sound) */
-                speed -= 0.5;
-            else if (speed >= 0.01) /* Brake (TODO: sound) */
-                speed = 0.0;
-            else /* Reverse */
-                speed -= 0.5 / (4.0 - speed);
-        }
-
-        speed *= 0.97;
-        car_engine.set_speed(speed);
-
-        if (speed > -0.1 && speed < 0.1)
-            speed = 0;
-
-        heading += wheelangle * speed;
-
-        boolean chop = false;
-        double newlat = lat + Math.cos(heading) * speed * ele * 0.2;
-        double newlon = lon + Math.sin(heading) * speed * ele * 0.2;
-        for (EastNorth pos : cacti) {
-            double alat = Math.abs(pos.north() - newlat);
-            double alon = Math.abs(pos.east() - newlon);
-            if (alat + alon < ele * 1.0) {
-                if (Math.abs(speed) < 2.0) {
-                    if (speed > 0.0)
-                        speed = -0.5;
-                    else
-                        speed = 0.3;
-                    newlat = lat;
-                    newlon = lon;
-                    break;
+            /* Down */
+            if (key_down[3]) {
+                if (speed >= 0.5) /* Brake (TODO: sound) */
+                    speed -= 0.5;
+                else if (speed >= 0.01) /* Brake (TODO: sound) */
+                    speed = 0.0;
+                else /* Reverse */
+                    speed -= 0.5 / (4.0 - speed);
+            }
+
+            speed *= 0.97;
+            car_engine.set_speed(speed);
+
+            if (speed > -0.1 && speed < 0.1)
+                speed = 0;
+
+            heading += wheelangle * speed;
+
+            boolean chop = false;
+            double newlat = lat + Math.cos(heading) * speed * ele * 0.2;
+            double newlon = lon + Math.sin(heading) * speed * ele * 0.2;
+            for (EastNorth pos : cacti) {
+                double alat = Math.abs(pos.north() - newlat);
+                double alon = Math.abs(pos.east() - newlon);
+                if (alat + alon < ele * 1.0) {
+                    if (Math.abs(speed) < 2.0) {
+                        if (speed > 0.0)
+                            speed = -0.5;
+                        else
+                            speed = 0.3;
+                        newlat = lat;
+                        newlon = lon;
+                        break;
+                    }
+
+                    chop = true;
+                    splashframe = 0;
+                    splashcactus = pos;
+                    todelete.add(pos);
                 }
-
+            }
+
+            lat = newlat;
+            lon = newlon;
+
+            /* Seed a new cactus if we're moving.
+             * TODO: hook into data layers and avoid putting the cactus on
+             * the road!
+             */
+            if (cacti_on && Math.random() * 30.0 < speed) {
+                double left_x = maxdist * (width - centre) / height;
+                double right_x = maxdist * (0 - centre) / height;
+                double x = left_x + Math.random() * (right_x - left_x);
+                double clat = lat + (maxdist - cardist) *
+                        Math.cos(heading) - x * Math.sin(heading);
+                double clon = lon + (maxdist - cardist) *
+                        Math.sin(heading) + x * Math.cos(heading);
+
+                cacti.add(new EastNorth(clon, clat));
                 chop = true;
-                splashframe = 0;
-                splashcactus = pos;
-                todelete.add(pos);
-            }
-        }
-
-        lat = newlat;
-        lon = newlon;
-
-        /* Seed a new cactus if we're moving.
-         * TODO: hook into data layers and avoid putting the cactus on
-         * the road!
-         */
-        if (cacti_on && Math.random() * 30.0 < speed) {
-            double left_x = maxdist * (width - centre) / height;
-            double right_x = maxdist * (0 - centre) / height;
-            double x = left_x + Math.random() * (right_x - left_x);
-            double clat = lat + (maxdist - cardist) *
-                Math.cos(heading) - x * Math.sin(heading);
-            double clon = lon + (maxdist - cardist) *
-                Math.sin(heading) + x * Math.cos(heading);
-
-            cacti.add(new EastNorth(clon, clat));
-            chop = true;
-        }
-
-        /* Chop down any cactus far enough that it can't
-         * be seen.  ``If a cactus falls in a forest and
-         * there is nobody around did it make a sound?''
-         */
-        if (chop) {
-            for (EastNorth pos : cacti) {
-                double alat = Math.abs(pos.north() - lat);
-                double alon = Math.abs(pos.east() - lon);
-                if (alat + alon > 2 * maxdist)
-                    todelete.add(pos);
-            }
-            cacti.removeAll(todelete);
-            todelete = new ArrayList<>();
-        }
+            }
+
+            /* Chop down any cactus far enough that it can't
+             * be seen.  ``If a cactus falls in a forest and
+             * there is nobody around did it make a sound?''
+             */
+            if (chop) {
+                for (EastNorth pos : cacti) {
+                    double alat = Math.abs(pos.north() - lat);
+                    double alon = Math.abs(pos.east() - lon);
+                    if (alat + alon > 2 * maxdist)
+                        todelete.add(pos);
+                }
+                cacti.removeAll(todelete);
+                todelete = new ArrayList<>();
+            }
     }
 
@@ -379,11 +380,11 @@
         double right_x = maxdist * (0 - centre) / height;
         double e_lat[] = new double[] {
-            lat + (maxdist - cardist) * cos - left_x * sin,
-            lat + (maxdist - cardist) * cos - right_x * sin,
-            lat - cardist * cos, };
+                lat + (maxdist - cardist) * cos - left_x * sin,
+                lat + (maxdist - cardist) * cos - right_x * sin,
+                lat - cardist * cos, };
         double e_lon[] = new double[] {
-            lon + (maxdist - cardist) * sin + left_x * cos,
-            lon + (maxdist - cardist) * sin + right_x * cos,
-            lon - cardist * sin, };
+                lon + (maxdist - cardist) * sin + left_x * cos,
+                lon + (maxdist - cardist) * sin + right_x * cos,
+                lon - cardist * sin, };
         ground_view.setProjectionBounds(new ProjectionBounds(
                 new EastNorth(min3(e_lon), min3(e_lat)),
@@ -403,5 +404,5 @@
                             e_lon[0], e_lat[0])));
         }
-        */
+         */
         /* Request the image from ground layer */
         ground.paint(ground_view.graphics, ground_view, null);
@@ -450,5 +451,5 @@
             int t = 0;
             int x = (int) (300 + Math.random() * (sw - 500 -
-                        aircraft[t].getIconWidth()));
+                    aircraft[t].getIconWidth()));
             sky.drawImage(aircraft[t].getImage(), x, 0, this);
         }
@@ -474,5 +475,5 @@
     }
 
-    protected class sprite_pos implements Comparable<sprite_pos> {
+    protected static class sprite_pos implements Comparable<sprite_pos> {
         double dist;
 
@@ -483,4 +484,5 @@
         }
 
+        @Override
         public int compareTo(sprite_pos x) {
             return (int) ((x.dist - this.dist) * 1000000.0);
@@ -559,5 +561,5 @@
 
             int type = (((int) (splashcactus.north() *
-                            10000000.0) & 31) % 3);
+                    10000000.0) & 31) % 3);
             int sx = cactus[type].getIconWidth();
             int sy = cactus[type].getIconHeight();
@@ -629,4 +631,5 @@
      */
     protected Timer timer;
+    @Override
     public void actionPerformed(ActionEvent e) {
         move();
Index: applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/WMSRacer.java
===================================================================
--- applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/WMSRacer.java	(revision 32518)
+++ applications/editors/josm/plugins/wms-turbo-challenge2/src/wmsturbochallenge/WMSRacer.java	(revision 32914)
@@ -39,5 +39,5 @@
      * an entry in the new layer's context menus in layerAdded
      * but there doesn't seem to be any way to do that :( */
-    protected class DriveAction extends JosmAction {
+    protected static class DriveAction extends JosmAction {
         public MapFrame frame = null;
         public Layer currentLayer = null;
