Fix bad locking.

When synchronizing on a field, it should be final to avoid locking on different
objects.
Missing synchronization on use of mRunning caught by Error Prone's @GuardedBy
checker.
Bug: 27723540

Change-Id: I9d7c9e37f8ef5f7f49707bfdf607a6b73b9654d8
diff --git a/packages/DocumentsUI/src/com/android/documentsui/services/FileOperationService.java b/packages/DocumentsUI/src/com/android/documentsui/services/FileOperationService.java
index 871e135..5b2394e 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/services/FileOperationService.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/services/FileOperationService.java
@@ -95,7 +95,7 @@
     private NotificationManager mNotificationManager;
 
     @GuardedBy("mRunning")
-    private Map<String, JobRecord> mRunning = new HashMap<>();
+    private final Map<String, JobRecord> mRunning = new HashMap<>();
 
     private int mLastServiceId;
 
@@ -176,7 +176,9 @@
         if (DEBUG) Log.d(
                 TAG, "Scheduling job " + job.id + " to run in " + delay + " milliseconds.");
         ScheduledFuture<?> future = executor.schedule(job, delay, TimeUnit.MILLISECONDS);
-        mRunning.put(jobId, new JobRecord(job, future));
+        synchronized (mRunning) {
+            mRunning.put(jobId, new JobRecord(job, future));
+        }
     }
 
     /**