Index: /trunk/.classpath
===================================================================
--- /trunk/.classpath	(revision 9204)
+++ /trunk/.classpath	(revision 9205)
@@ -27,4 +27,5 @@
 	<classpathentry kind="lib" path="test/lib/fest/debug-1.0.jar"/>
 	<classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
+	<classpathentry kind="lib" path="tools/findbugs/annotations.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
Index: /trunk/build.xml
===================================================================
--- /trunk/build.xml	(revision 9204)
+++ /trunk/build.xml	(revision 9205)
@@ -301,4 +301,5 @@
         <pathelement path="dist/josm-custom.jar"/>
         <pathelement path="${groovy.jar}"/>
+        <pathelement path="tools/findbugs/annotations.jar"/>
     </path>
     <macrodef name="init-test-preferences">
Index: /trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/Main.java	(revision 9204)
+++ /trunk/src/org/openstreetmap/josm/Main.java	(revision 9205)
@@ -556,4 +556,5 @@
         main = this;
         isOpenjdk = System.getProperty("java.vm.name").toUpperCase(Locale.ENGLISH).indexOf("OPENJDK") != -1;
+        fileWatcher.start();
 
         new InitializationTask(tr("Executing platform startup hook")) {
Index: /trunk/src/org/openstreetmap/josm/io/FileWatcher.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/FileWatcher.java	(revision 9204)
+++ /trunk/src/org/openstreetmap/josm/io/FileWatcher.java	(revision 9205)
@@ -31,4 +31,5 @@
 
     private WatchService watcher;
+    private Thread thread;
 
     private final Map<Path, StyleSource> styleMap = new HashMap<>();
@@ -41,12 +42,21 @@
         try {
             watcher = FileSystems.getDefault().newWatchService();
-            new Thread(new Runnable() {
+            thread = new Thread(new Runnable() {
                 @Override
                 public void run() {
                     processEvents();
                 }
-            }, "File Watcher").start();
+            }, "File Watcher");
         } catch (IOException e) {
             Main.error(e);
+        }
+    }
+
+    /**
+     * Starts the File Watcher thread.
+     */
+    public final void start() {
+        if (!thread.isAlive()) {
+            thread.start();
         }
     }
Index: /trunk/test/performance/org/openstreetmap/josm/PerformanceTestUtils.java
===================================================================
--- /trunk/test/performance/org/openstreetmap/josm/PerformanceTestUtils.java	(revision 9204)
+++ /trunk/test/performance/org/openstreetmap/josm/PerformanceTestUtils.java	(revision 9205)
@@ -1,4 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -37,4 +39,5 @@
      * @return A {@link PerformanceTestTimer} object of which you can call {@link PerformanceTestTimer#done()} when done.
      */
+    @SuppressFBWarnings(value = "DM_GC", justification = "Performance test code")
     public static PerformanceTestTimer startTimer(String name) {
         System.gc();
Index: /trunk/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java	(revision 9204)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java	(revision 9205)
@@ -36,5 +36,5 @@
         @Override
         public synchronized int getInteger(String key, int def) {
-            if (key == "edit.initial-move-delay") {
+            if ("edit.initial-move-delay".equals(key)) {
                 return 0;
             } else {
