Remove usage of SynchronizedBatchCallback findTargetsBeneathDirectoryAsync; by design, the callback passed in there is thread safe. A previous change accidentally introduced this unnecessary synchronization.

Also move SynchronizedBatchCallback to the file with its only current usage.

--
PiperOrigin-RevId: 149809083
MOS_MIGRATED_REVID=149809083
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
index b68ef43..901ef21 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
@@ -45,7 +45,6 @@
 import com.google.devtools.build.lib.pkgcache.RecursivePackageProvider;
 import com.google.devtools.build.lib.pkgcache.TargetPatternResolverUtil;
 import com.google.devtools.build.lib.util.BatchCallback;
-import com.google.devtools.build.lib.util.SynchronizedBatchCallback;
 import com.google.devtools.build.lib.util.ThreadSafeBatchCallback;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import java.util.ArrayList;
@@ -183,6 +182,24 @@
     return target.getTargetKind();
   }
 
+  /**
+   * A {@link ThreadSafeBatchCallback} that trivially delegates to a {@link BatchCallback} in a
+   * synchronized manner.
+   */
+  private static class SynchronizedBatchCallback<T, E extends Exception>
+      implements ThreadSafeBatchCallback<T, E> {
+    private final BatchCallback<T, E> delegate;
+
+    public SynchronizedBatchCallback(BatchCallback<T, E> delegate) {
+      this.delegate = delegate;
+    }
+
+    @Override
+    public synchronized void process(Iterable<T> partialResult) throws E, InterruptedException {
+      delegate.process(partialResult);
+    }
+  }
+
   @Override
   public <E extends Exception> void findTargetsBeneathDirectory(
       final RepositoryName repository,
@@ -225,7 +242,7 @@
         directory,
         rulesOnly,
         excludedSubdirectories,
-        new SynchronizedBatchCallback<Target, E>(callback),
+        callback,
         executor);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/util/SynchronizedBatchCallback.java b/src/main/java/com/google/devtools/build/lib/util/SynchronizedBatchCallback.java
deleted file mode 100644
index ec7bd17..0000000
--- a/src/main/java/com/google/devtools/build/lib/util/SynchronizedBatchCallback.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2016 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.util;
-
-/**
- * A {@link ThreadSafeBatchCallback} that trivially delegates to a {@link BatchCallback} in a
- * synchronized manner.
- */
-public class SynchronizedBatchCallback<T, E extends Exception>
-    implements ThreadSafeBatchCallback<T, E> {
-  private final BatchCallback<T, E> delegate;
-
-  public SynchronizedBatchCallback(BatchCallback<T, E> delegate) {
-    this.delegate = delegate;
-  }
-
-  @Override
-  public synchronized void process(Iterable<T> partialResult) throws E, InterruptedException {
-    delegate.process(partialResult);
-  }
-}
-