aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2015-03-05 14:47:37 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-03-05 18:31:47 +0000
commit07dba941e21619830adcbcae10c5942cf3343f26 (patch)
treec0e7b1250bf547b20398a0c3a437864b7b915383 /src/main/java/com/google
parenta34d5071784ff51f68714b61f4100c35f1e4db3a (diff)
Some cleanup changes.
-- MOS_MIGRATED_REVID=87821306
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/MapBasedActionGraph.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/Root.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/cache/Digest.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BuildView.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/PrerequisiteArtifacts.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/WorkspaceStatusAction.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/PerLabelOptions.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/RunUnderConverter.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/graph/CollectingVisitor.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/graph/DFS.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/graph/Digraph.java38
-rw-r--r--src/main/java/com/google/devtools/build/lib/graph/Matrix.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/graph/Node.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Attribute.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/EnumFilterConverter.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/License.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/NonconfigurableAttributeMapper.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Package.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/RuleClass.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/pkgcache/SrcTargetUtil.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/profiler/Profiler.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/output/GraphOutputFormatter.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeParser.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/GenericBuildInfoPropertiesTranslator.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFilesCollector.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestLogHelper.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestXmlOutputParser.java77
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/TestSummaryPrinter.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java42
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/server/RPCService.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/server/ServerResponse.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/shell/Command.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/AbstractLabelCycleReporter.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ActionArtifactCycleReporter.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitor.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/AbstractFunction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Argument.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Environment.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Lexer.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/ListComprehension.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/MixedModeFunction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Parameter.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkFunction.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/CompactStringIndexer.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/Pair.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/PersistentMap.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/RegexFilter.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/ResourceUsage.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/StringUtil.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/StringUtilities.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/Path.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java30
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/ReadonlyFileSystem.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/UnionFileSystem.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/UnixGlob.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/webstatusserver/IndexPageHandler.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/webstatusserver/StaticResourceHandler.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/webstatusserver/TestStatusHandler.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusBuildLog.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusServerModule.java7
134 files changed, 356 insertions, 418 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java
index 34aadc4a33..f88f1377c7 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java
@@ -146,7 +146,7 @@ public final class ActionExecutionStatusReporter {
actions.add(Pair.of(entry.getValue().second, entry.getKey()));
}
}
- if (actions.size() == 0) {
+ if (actions.isEmpty()) {
return;
}
Collections.sort(actions, Pair.<Long, ActionMetadata>compareByFirst());
@@ -183,7 +183,7 @@ public final class ActionExecutionStatusReporter {
long currentTime = clock.nanoTime();
// A tree is just as fast as HashSet for small data sets.
- Set<String> statuses = new TreeSet<String>();
+ Set<String> statuses = new TreeSet<>();
for (Map.Entry<ActionMetadata, Pair<String, Long>> entry : statusMap.entrySet()) {
statuses.add(entry.getValue().first);
}
@@ -200,7 +200,7 @@ public final class ActionExecutionStatusReporter {
public void showCurrentlyExecutingActions(String progressPercentageMessage) {
// Defensive copy to ensure thread safety.
Map<ActionMetadata, Pair<String, Long>> statusMap = new HashMap<>(actionStatus);
- if (statusMap.size() > 0) {
+ if (!statusMap.isEmpty()) {
eventHandler.handle(
Event.progress(progressPercentageMessage + getExecutionStatusMessage(statusMap)));
}
@@ -213,8 +213,8 @@ public final class ActionExecutionStatusReporter {
void warnAboutCurrentlyExecutingActions() {
// Defensive copy to ensure thread safety.
Map<ActionMetadata, Pair<String, Long>> statusMap = new HashMap<>(actionStatus);
- if (statusMap.size() == 0) {
- // There are no tasks in the queue so there is nothing to report.
+ if (statusMap.isEmpty()) {
+ // There are no tasks in the queue so there is nothing to report.
eventHandler.handle(Event.warn("There are no active jobs - stopping the build"));
return;
}
@@ -225,7 +225,7 @@ public final class ActionExecutionStatusReporter {
iterator.remove();
}
}
- if (statusMap.size() > 0) {
+ if (!statusMap.isEmpty()) {
eventHandler.handle(Event.warn(getExecutionStatusMessage(statusMap)
+ "\nBuild will be stopped after these tasks terminate"));
} else {
diff --git a/src/main/java/com/google/devtools/build/lib/actions/MapBasedActionGraph.java b/src/main/java/com/google/devtools/build/lib/actions/MapBasedActionGraph.java
index 2788f2f307..d36c6afd55 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/MapBasedActionGraph.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/MapBasedActionGraph.java
@@ -24,9 +24,8 @@ import javax.annotation.concurrent.ThreadSafe;
*/
@ThreadSafe
public final class MapBasedActionGraph implements MutableActionGraph {
-
private final ConcurrentMultimapWithHeadElement<Artifact, Action> generatingActionMap =
- new ConcurrentMultimapWithHeadElement<Artifact, Action>();
+ new ConcurrentMultimapWithHeadElement<>();
@Override
@Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java b/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java
index db6ed118f6..8e6220c143 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java
@@ -279,7 +279,7 @@ public class ResourceManager {
*/
public synchronized boolean inUse() {
return usedCpu != 0.0 || usedRam != 0.0 || usedIo != 0.0 || usedLocalTestCount != 0
- || requestList.size() > 0;
+ || !requestList.isEmpty();
}
@@ -374,7 +374,7 @@ public class ResourceManager {
if (usedIo < epsilon) {
usedIo = 0;
}
- if (requestList.size() > 0) {
+ if (!requestList.isEmpty()) {
processWaitingThreads();
return true;
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Root.java b/src/main/java/com/google/devtools/build/lib/actions/Root.java
index 284b85f0a4..55619eb368 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Root.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Root.java
@@ -158,6 +158,6 @@ public final class Root implements Comparable<Root>, Serializable {
@Override
public String toString() {
- return path.toString() + (isSourceRoot() ? "[source]" : "[derived]");
+ return path + (isSourceRoot() ? "[source]" : "[derived]");
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java b/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java
index 24eb42ead0..a4406d7e43 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCache.java
@@ -288,7 +288,7 @@ public class CompactPersistentActionCache implements ActionCache {
try {
content = decode(indexer, entry.getValue()).toString();
} catch (IOException e) {
- content = e.toString() + "\n";
+ content = e + "\n";
}
builder.append("-> ").append(indexer.getStringForIndex(entry.getKey())).append("\n")
.append(content).append(" packed_len = ").append(entry.getValue().length).append("\n");
@@ -302,7 +302,7 @@ public class CompactPersistentActionCache implements ActionCache {
@Override
public synchronized void dump(PrintStream out) {
out.println("String indexer content:\n");
- out.println(indexer.toString());
+ out.println(indexer);
out.println("Action cache (" + map.size() + " records):\n");
for (Map.Entry<Integer, byte[]> entry: map.entrySet()) {
if (entry.getKey() == VALIDATION_KEY) { continue; }
@@ -310,7 +310,7 @@ public class CompactPersistentActionCache implements ActionCache {
try {
content = CompactPersistentActionCache.decode(indexer, entry.getValue()).toString();
} catch (IOException e) {
- content = e.toString() + "\n";
+ content = e + "\n";
}
out.println(entry.getKey() + ", " + indexer.getStringForIndex(entry.getKey()) + ":\n"
+ content + "\n packed_len = " + entry.getValue().length + "\n");
diff --git a/src/main/java/com/google/devtools/build/lib/actions/cache/Digest.java b/src/main/java/com/google/devtools/build/lib/actions/cache/Digest.java
index f278507ddf..5c9cc16b3c 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/cache/Digest.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/cache/Digest.java
@@ -49,7 +49,7 @@ public class Digest {
@VisibleForTesting
Digest(byte[] digest) {
Preconditions.checkState(digest.length == MD5_SIZE);
- this.digest = Arrays.copyOf(digest, digest.length);
+ this.digest = digest.clone();
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
index e574978951..0650a1223d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
@@ -106,6 +106,6 @@ public abstract class AbstractConfiguredTarget
@Override
public ImmutableCollection<String> getKeys() {
- return ImmutableList.<String>builder().add("label").add("files").build();
+ return ImmutableList.of("label", "files");
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
index 2e4c251935..37f06c3bd4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
@@ -137,10 +137,10 @@ public final class AnalysisUtils {
*/
public static <T extends TransitiveInfoProvider> void checkProvider(Class<T> clazz) {
if (!clazz.isInterface()) {
- Preconditions.checkArgument(Modifier.isFinal(clazz.getModifiers()),
- clazz.getName() + " has to be final");
+ Preconditions.checkArgument(
+ Modifier.isFinal(clazz.getModifiers()), "%s has to be final", clazz.getName());
Preconditions.checkArgument(clazz.isAnnotationPresent(Immutable.class),
- clazz.getName() + " has to be tagged with @Immutable");
+ "%s has to be tagged with @Immutable", clazz.getName());
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index a84bb94c19..5bf199de5d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -420,13 +420,8 @@ public class BuildView {
try {
ConfiguredTarget ct = getConfiguredTarget(label, ctg.getConfiguration());
keys.add(Preconditions.checkNotNull(ct.getProvider(ConfigMatchingProvider.class)));
- } catch (NoSuchPackageException e) {
- // All lookups should succeed because we should not be looking up any targets in error.
- throw new IllegalStateException(e);
- } catch (NoSuchTargetException e) {
- // All lookups should succeed because we should not be looking up any targets in error.
- throw new IllegalStateException(e);
- } catch (NoSuchConfiguredTargetException e) {
+ } catch (
+ NoSuchPackageException | NoSuchTargetException | NoSuchConfiguredTargetException e) {
// All lookups should succeed because we should not be looking up any targets in error.
throw new IllegalStateException(e);
}
@@ -781,7 +776,7 @@ public class BuildView {
for (ExtraArtifactSet set : builder.build()) {
boolean filterMatches = filter == null || filter.isIncluded(set.getLabel().toString());
if (filterMatches) {
- Iterables.addAll(artifactsToBuild, set.getArtifacts());
+ artifactsToBuild.addAll(set.getArtifacts());
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
index bc45ba35cd..921e4e7164 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
@@ -247,9 +247,7 @@ public class CachingAnalysisEnvironment implements AnalysisEnvironment {
public void registerAction(Action... actions) {
Preconditions.checkState(enabled);
if (allowRegisteringActions) {
- for (Action action : actions) {
- this.actions.add(action);
- }
+ Collections.addAll(this.actions, actions);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
index 416d92e1f3..abc9c22f04 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
@@ -122,7 +122,7 @@ public final class CommandHelper {
}
} else {
// Map all depArtifacts to the respective label using the multimaps.
- Iterables.addAll(mapGet(tempLabelMap, label), files);
+ mapGet(tempLabelMap, label).addAll(files);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
index d265533669..92687d6e65 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java
@@ -255,7 +255,7 @@ public final class ConfiguredTargetFactory {
names.add(fragment.getSimpleName());
}
result.append("all of [");
- result.append(Joiner.on(",").join(names));
+ Joiner.on(",").appendTo(result, names);
result.append("], but these were all disabled");
return result.toString();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
index 64cddb1b7f..b7bd55e3f3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
@@ -148,7 +148,7 @@ public abstract class DependencyResolver {
Preconditions.checkNotNull(config);
visitTargetVisibility(node, outgoingEdges.get(null));
Rule rule = ((OutputFile) target).getGeneratingRule();
- outgoingEdges.get(null).add(new Dependency(rule.getLabel(), config));
+ outgoingEdges.put(null, new Dependency(rule.getLabel(), config));
} else if (target instanceof InputFile) {
visitTargetVisibility(node, outgoingEdges.get(null));
} else if (target instanceof EnvironmentGroup) {
@@ -508,8 +508,9 @@ public abstract class DependencyResolver {
Iterable<BuildConfiguration> toConfigurations = config.evaluateTransition(
rule, attribute, toTarget);
for (BuildConfiguration toConfiguration : toConfigurations) {
- outgoingEdges.get(entry.getKey()).add(new Dependency(
- label, toConfiguration, requiredAspects(aspect, attribute, toTarget)));
+ outgoingEdges.put(
+ entry.getKey(),
+ new Dependency(label, toConfiguration, requiredAspects(aspect, attribute, toTarget)));
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java b/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
index 8feb28ee14..ae70699c13 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
@@ -110,7 +110,7 @@ public class LocationExpander {
}
if (attrValue.charAt(start + scannedLength) != ' ') {
- result.append(attrValue.substring(restart, start + scannedLength));
+ result.append(attrValue, restart, start + scannedLength);
restart = start + scannedLength;
continue;
}
@@ -149,7 +149,7 @@ public class LocationExpander {
return attrValue;
}
- result.append(attrValue.substring(restart, start));
+ result.append(attrValue, restart, start);
if (multiple) {
Collections.sort(paths);
Joiner.on(' ').appendTo(result, paths);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PrerequisiteArtifacts.java b/src/main/java/com/google/devtools/build/lib/analysis/PrerequisiteArtifacts.java
index 60c78d5760..7594f4bbf2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PrerequisiteArtifacts.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PrerequisiteArtifacts.java
@@ -71,7 +71,7 @@ public final class PrerequisiteArtifacts {
}
private PrerequisiteArtifacts filter(Predicate<String> fileType, boolean errorsForNonMatching) {
- ImmutableList.Builder<Artifact> filtered = new ImmutableList.Builder<Artifact>();
+ ImmutableList.Builder<Artifact> filtered = new ImmutableList.Builder<>();
for (Artifact artifact : artifacts) {
if (fileType.apply(artifact.getFilename())) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 1bbcd72db7..eef371b475 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -1313,8 +1313,7 @@ public final class RuleContext extends TargetContext
boolean allowedWithWarning = attribute.getAllowedRuleClassesWarningPredicate()
.apply(ruleClass);
reportBadPrerequisite(attribute, prerequisiteTarget.getTargetKind(), prerequisiteLabel,
- "expected " + attribute.getAllowedRuleClassesPredicate().toString(),
- allowedWithWarning);
+ "expected " + attribute.getAllowedRuleClassesPredicate(), allowedWithWarning);
}
} else if (prerequisiteTarget instanceof FileTarget) {
if (!attribute.getAllowedFileTypesPredicate()
@@ -1335,7 +1334,7 @@ public final class RuleContext extends TargetContext
} else {
// The file exists but has a bad extension
reportBadPrerequisite(attribute, "file", prerequisiteLabel,
- "expected " + attribute.getAllowedFileTypesPredicate().toString(), false);
+ "expected " + attribute.getAllowedFileTypesPredicate(), false);
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
index aa7f429d61..a790e72b3e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
@@ -108,7 +108,7 @@ public class RunfilesSupport {
Preconditions.checkState(!runfiles.isEmpty());
Map<PathFragment, Artifact> symlinks = getRunfilesSymlinks();
- if (executable != null && !symlinks.values().contains(executable)) {
+ if (executable != null && !symlinks.containsValue(executable)) {
throw new IllegalStateException("main program " + executable + " not included in runfiles");
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/WorkspaceStatusAction.java b/src/main/java/com/google/devtools/build/lib/analysis/WorkspaceStatusAction.java
index 5b3bd27569..986b085f65 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/WorkspaceStatusAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/WorkspaceStatusAction.java
@@ -16,7 +16,6 @@ package com.google.devtools.build.lib.analysis;
import com.google.common.base.Splitter;
import com.google.common.base.Supplier;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.ActionOwner;
@@ -130,10 +129,10 @@ public abstract class WorkspaceStatusAction extends AbstractAction {
*/
public static Map<String, String> parseValues(Path file) throws IOException {
HashMap<String, String> result = new HashMap<>();
- Splitter lineSplitter = Splitter.on(" ").limit(2);
- for (String line : Splitter.on("\n").split(
- new String(FileSystemUtils.readContentAsLatin1(file)))) {
- List<String> items = ImmutableList.copyOf(lineSplitter.split(line));
+ Splitter lineSplitter = Splitter.on(' ').limit(2);
+ for (String line :
+ Splitter.on('\n').split(new String(FileSystemUtils.readContentAsLatin1(file)))) {
+ List<String> items = lineSplitter.splitToList(line);
if (items.size() != 2) {
continue;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index daac95e5ce..724b1a7d7d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -54,7 +54,7 @@ import com.google.protobuf.GeneratedMessage.GeneratedExtension;
import java.nio.charset.Charset;
import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -688,9 +688,7 @@ public class SpawnAction extends AbstractAction {
this.executableArgs = Lists.newArrayList();
executableArgs.add("-Xverify:none");
executableArgs.addAll(jvmArgs);
- for (String arg : launchArgs) {
- executableArgs.add(arg);
- }
+ Collections.addAll(executableArgs, launchArgs);
inputsBuilder.add(deployJar);
this.isShellCommand = false;
return this;
@@ -774,7 +772,7 @@ public class SpawnAction extends AbstractAction {
*/
public Builder addExecutableArguments(String... arguments) {
Preconditions.checkState(executableArgs != null);
- executableArgs.addAll(Arrays.asList(arguments));
+ Collections.addAll(executableArgs, arguments);
return this;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index 5fac33d7a4..967074a9db 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -18,7 +18,6 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
-import com.google.common.base.Predicates;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -1074,12 +1073,12 @@ public final class BuildConfiguration implements Serializable {
private String buildMnemonic() {
// See explanation at getShortName().
String platformSuffix = (options.platformSuffix != null) ? options.platformSuffix : "";
- ArrayList<String> nameParts = new ArrayList<String>();
+ ArrayList<String> nameParts = new ArrayList<>();
for (Fragment fragment : fragments.values()) {
nameParts.add(fragment.getOutputDirectoryName());
}
nameParts.add(getCompilationMode() + platformSuffix);
- return Joiner.on('-').join(Iterables.filter(nameParts, Predicates.notNull()));
+ return Joiner.on('-').skipNulls().join(nameParts);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
index afe408f628..8b44f65470 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
@@ -174,7 +174,7 @@ public final class BuildOptions implements Cloneable, Serializable {
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
for (FragmentOptions options : fragmentOptionsMap.values()) {
- stringBuilder.append(options.toString());
+ stringBuilder.append(options);
}
return stringBuilder.toString();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java b/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java
index 207d49aebb..7d92bcedd7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/DefaultsPackage.java
@@ -99,7 +99,7 @@ public final class DefaultsPackage {
}
private String labelsToString(Set<Label> labels) {
- StringBuffer result = new StringBuffer();
+ StringBuilder result = new StringBuilder();
for (Label label : labels) {
if (result.length() != 0) {
result.append(", ");
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/PerLabelOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/PerLabelOptions.java
index 1e921e596b..66da673624 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/PerLabelOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/PerLabelOptions.java
@@ -61,7 +61,7 @@ public class PerLabelOptions implements Serializable {
String optionsPiece = input.substring(atIndex + 1);
List<String> optionsList = new ArrayList<>();
for (String option : optionsPiece.split("(?<!\\\\),")) { // Split on ',' but not on '\,'
- if (option != null && !option.trim().equals("")) {
+ if (option != null && !option.trim().isEmpty()) {
optionsList.add(option.replace("\\,", ","));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/RunUnderConverter.java b/src/main/java/com/google/devtools/build/lib/analysis/config/RunUnderConverter.java
index 1f7b660694..8da1fbbaa2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/RunUnderConverter.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/RunUnderConverter.java
@@ -60,7 +60,7 @@ public class RunUnderConverter implements Converter<RunUnder> {
public RunUnderLabel(String input, Label runUnderLabel, List<String> runUnderList) {
this.input = input;
this.runUnderLabel = runUnderLabel;
- this.runUnderList = new ArrayList<String>(runUnderList.subList(1, runUnderList.size()));
+ this.runUnderList = new ArrayList<>(runUnderList.subList(1, runUnderList.size()));
}
@Override public String getValue() { return input; }
@@ -97,7 +97,7 @@ public class RunUnderConverter implements Converter<RunUnder> {
public RunUnderCommand(String input, String runUnderCommand, List<String> runUnderList) {
this.input = input;
this.runUnderCommand = runUnderCommand;
- this.runUnderList = new ArrayList<String>(runUnderList.subList(1, runUnderList.size()));
+ this.runUnderList = new ArrayList<>(runUnderList.subList(1, runUnderList.size()));
}
@Override public String getValue() { return input; }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryFunction.java
index 906c38b323..632aa0d4d3 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryFunction.java
@@ -130,7 +130,7 @@ public abstract class RepositoryFunction implements SkyFunction {
Transience.PERSISTENT);
}
Preconditions.checkState(ruleClassName == null || rule.getRuleClass().equals(ruleClassName),
- "Got " + rule + ", was expecting a " + ruleClassName);
+ "Got %s, was expecting a %s", rule, ruleClassName);
return rule;
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java
index db33897f73..8454e5cffa 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java
@@ -32,9 +32,7 @@ public class BazelJavaBuildInfoFactory extends JavaBuildInfoFactory {
.put("build.timestamp", "%BUILD_TIMESTAMP%")
.build();
- private static final Map<String, String> NONVOLATILE_KEYS = ImmutableMap
- .<String, String>builder()
- .build();
+ private static final Map<String, String> NONVOLATILE_KEYS = ImmutableMap.of();
private static final Map<String, String> REDACTED_KEYS = ImmutableMap
.<String, String>builder()
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
index 38e663311b..ec020b033b 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
@@ -30,7 +30,7 @@ public enum Order {
private Order(NestedSetExpander<?> expander, NestedSetFactory factory) {
this.expander = expander;
this.factory = factory;
- this.emptySet = new EmptyNestedSet<Object>(this);
+ this.emptySet = new EmptyNestedSet<>(this);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/graph/CollectingVisitor.java b/src/main/java/com/google/devtools/build/lib/graph/CollectingVisitor.java
index caeb07ba7a..88311ecc0f 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/CollectingVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/graph/CollectingVisitor.java
@@ -22,8 +22,7 @@ import java.util.List;
* they were visited, and allows them to be accessed as a list.
*/
public class CollectingVisitor<T> extends AbstractGraphVisitor<T> {
-
- private final List<Node<T>> order = new ArrayList<Node<T>>();
+ private final List<Node<T>> order = new ArrayList<>();
@Override
public void visitNode(Node<T> node) {
diff --git a/src/main/java/com/google/devtools/build/lib/graph/DFS.java b/src/main/java/com/google/devtools/build/lib/graph/DFS.java
index 37cd30eab6..66d10739a0 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/DFS.java
+++ b/src/main/java/com/google/devtools/build/lib/graph/DFS.java
@@ -51,7 +51,7 @@ public class DFS<T> {
private final boolean transpose;
- private final Set<Node<T>> marked = new HashSet<Node<T>>();
+ private final Set<Node<T>> marked = new HashSet<>();
/**
* Constructs a DFS instance for searching over the enclosing Digraph
diff --git a/src/main/java/com/google/devtools/build/lib/graph/Digraph.java b/src/main/java/com/google/devtools/build/lib/graph/Digraph.java
index 92e973a2e7..b1ff09a469 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/Digraph.java
+++ b/src/main/java/com/google/devtools/build/lib/graph/Digraph.java
@@ -289,7 +289,7 @@ public final class Digraph<T> implements Cloneable {
* any "root".
*/
public Set<Node<T>> getRoots() {
- Set<Node<T>> roots = new HashSet<Node<T>>();
+ Set<Node<T>> roots = new HashSet<>();
for (Node<T> node: nodes.values()) {
if (!node.hasPredecessors()) {
roots.add(node);
@@ -302,7 +302,7 @@ public final class Digraph<T> implements Cloneable {
* @return the set of leaf nodes: those with no successors.
*/
public Set<Node<T>> getLeaves() {
- Set<Node<T>> leaves = new HashSet<Node<T>>();
+ Set<Node<T>> leaves = new HashSet<>();
for (Node<T> node: nodes.values()) {
if (!node.hasSuccessors()) {
leaves.add(node);
@@ -407,8 +407,7 @@ public final class Digraph<T> implements Cloneable {
final Object WHITE = null; // i.e. not present in nodeToColor, the default.
final Object GREY = new Object();
final Object BLACK = new Object();
- final Map<Node<T>, Object> nodeToColor =
- new HashMap<Node<T>, Object>(); // empty => all white
+ final Map<Node<T>, Object> nodeToColor = new HashMap<>(); // empty => all white
class CycleDetector { /* defining a class gives us lexical scope */
boolean visit(Node<T> node) {
@@ -459,7 +458,7 @@ public final class Digraph<T> implements Cloneable {
* one strongly-connected component of the graph.
*/
public Collection<Set<Node<T>>> getStronglyConnectedComponents() {
- final List<Set<Node<T>>> sccs = new ArrayList<Set<Node<T>>>();
+ final List<Set<Node<T>>> sccs = new ArrayList<>();
NodeSetReceiver<T> r = new NodeSetReceiver<T>() {
@Override
public void accept(Set<Node<T>> scc) {
@@ -491,8 +490,7 @@ public final class Digraph<T> implements Cloneable {
createImageUnderPartition(Collection<Set<Node<T>>> partition) {
// Build mapping function: each node label is mapped to its equiv class:
- Map<T, Set<Node<T>>> labelToImage =
- new HashMap<T, Set<Node<T>>>();
+ Map<T, Set<Node<T>>> labelToImage = new HashMap<>();
for (Set<Node<T>> set: partition) {
// It's important to use immutable sets of node labels when sets are keys
// in a map; see ImmutableSet class for explanation.
@@ -516,8 +514,7 @@ public final class Digraph<T> implements Cloneable {
*/
public <IMAGE> Digraph<IMAGE>
createImageUnderMapping(Map<T, IMAGE> map) {
-
- Digraph<IMAGE> imageGraph = new Digraph<IMAGE>();
+ Digraph<IMAGE> imageGraph = new Digraph<>();
for (Node<T> fromNode: nodes.values()) {
T fromLabel = fromNode.getLabel();
@@ -568,16 +565,15 @@ public final class Digraph<T> implements Cloneable {
return Collections.singletonList(fromNode);
}
- Map<Node<T>, Node<T>> pathPredecessor =
- new HashMap<Node<T>, Node<T>>();
+ Map<Node<T>, Node<T>> pathPredecessor = new HashMap<>();
- Set<Node<T>> marked = new HashSet<Node<T>>();
+ Set<Node<T>> marked = new HashSet<>();
- LinkedList<Node<T>> queue = new LinkedList<Node<T>>();
+ LinkedList<Node<T>> queue = new LinkedList<>();
queue.addLast(fromNode);
marked.add(fromNode);
- while (queue.size() > 0) {
+ while (!queue.isEmpty()) {
Node<T> u = queue.removeFirst();
for (Node<T> v: u.getSuccessors()) {
if (marked.add(v)) {
@@ -903,13 +899,16 @@ public final class Digraph<T> implements Cloneable {
*/
private class SccVisitor<T> {
// Nodes already assigned to a strongly connected component.
- private final Set<Node<T>> assigned = new HashSet<Node<T>>();
+ private final Set<Node<T>> assigned = new HashSet<>();
+
// The order each node was visited in.
- private final Map<Node<T>, Integer> preorder = new HashMap<Node<T>, Integer>();
+ private final Map<Node<T>, Integer> preorder = new HashMap<>();
+
// Stack of all nodes visited whose SCC has not yet been determined. When an SCC is found,
// that SCC is an initial segment of this stack, and is popped off. Every time a new node is
// visited, it is put on this stack.
- private final List<Node<T>> stack = new ArrayList<Node<T>>();
+ private final List<Node<T>> stack = new ArrayList<>();
+
// Stack of visited indices for the first-visited nodes in each of their known-so-far
// strongly connected components. A node pushes its index on when it is visited. If any of
// its successors have already been visited and are not in an already-found strongly connected
@@ -922,7 +921,8 @@ public final class Digraph<T> implements Cloneable {
// still the current node's index, then it was the first element visited of the current strongly
// connected component. So all nodes on {@code stack} down to the current node are in its
// strongly connected component. And the node's index is popped from preorderStack.
- private final List<Integer> preorderStack = new ArrayList<Integer>();
+ private final List<Integer> preorderStack = new ArrayList<>();
+
// Index of node being visited.
private int counter = 0;
@@ -956,7 +956,7 @@ public final class Digraph<T> implements Cloneable {
// nodes that were part of a cycle with this node. So this node is the first-visited
// element in its strongly connected component, and we collect the component.
preorderStack.remove(preorderStack.size() - 1);
- Set<Node<T>> scc = new HashSet<Node<T>>();
+ Set<Node<T>> scc = new HashSet<>();
Node<T> compNode;
do {
compNode = stack.remove(stack.size() - 1);
diff --git a/src/main/java/com/google/devtools/build/lib/graph/Matrix.java b/src/main/java/com/google/devtools/build/lib/graph/Matrix.java
index 225d3d2604..338fcac911 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/Matrix.java
+++ b/src/main/java/com/google/devtools/build/lib/graph/Matrix.java
@@ -41,7 +41,7 @@ final class Matrix<T> {
public Matrix(Set<T> labels) {
this.N = labels.size();
this.values = new ArrayList<T>(N);
- this.indices = new HashMap<T, Integer>();
+ this.indices = new HashMap<>();
this.m = new boolean[N][N];
for (T label: labels) {
diff --git a/src/main/java/com/google/devtools/build/lib/graph/Node.java b/src/main/java/com/google/devtools/build/lib/graph/Node.java
index 9db2a4c3e7..d271ca0f78 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/Node.java
+++ b/src/main/java/com/google/devtools/build/lib/graph/Node.java
@@ -163,8 +163,7 @@ public final class Node<T> {
int previousSize = set.size();
if (previousSize == 1) {
// SingletonList -> ArrayList
- Collection<Node<T>> newSet =
- new ArrayList<Node<T>>(ARRAYLIST_THRESHOLD);
+ Collection<Node<T>> newSet = new ArrayList<>(ARRAYLIST_THRESHOLD);
newSet.addAll(set);
newSet.add(value);
return updateField(predecessorSet, newSet);
@@ -174,9 +173,8 @@ public final class Node<T> {
return true;
} else if (previousSize == ARRAYLIST_THRESHOLD) {
// ArrayList -> HashSet
- Collection<Node<T>> newSet =
- new HashSet<Node<T>>(INITIAL_HASHSET_CAPACITY);
- newSet.addAll(set);
+ Collection<Node<T>> newSet = new HashSet<>(INITIAL_HASHSET_CAPACITY);
+ newSet.addAll(set);
newSet.add(value);
return updateField(predecessorSet, newSet);
} else {
@@ -219,8 +217,7 @@ public final class Node<T> {
} else if (previousSize == 1 + ARRAYLIST_THRESHOLD) {
// -> ArrayList
- Collection<Node<T>> newSet =
- new ArrayList<Node<T>>(ARRAYLIST_THRESHOLD);
+ Collection<Node<T>> newSet = new ArrayList<>(ARRAYLIST_THRESHOLD);
newSet.addAll(set);
return updateField(predecessorSet, newSet);
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java b/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java
index 22c02b50ab..c0dda812ab 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java
@@ -18,8 +18,8 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
@@ -64,7 +64,7 @@ public final class AnalysisIssues extends Exception {
} else {
List<Object> args = new ArrayList<>();
args.add(attribute);
- args.addAll(Arrays.asList(arguments));
+ Collections.addAll(args, arguments);
return String.format("ERROR in '%s': " + messageTemplate, args.toArray());
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index 9a8ae61a03..0616d791f6 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -287,8 +287,8 @@ public final class Attribute implements Comparable<Attribute> {
}
private Builder<TYPE> setPropertyFlag(PropertyFlag flag, String propertyName) {
- Preconditions.checkState(!propertyFlags.contains(flag),
- propertyName + " flag is already set");
+ Preconditions.checkState(
+ !propertyFlags.contains(flag), "%s flag is already set", propertyName);
propertyFlags.add(flag);
return this;
}
@@ -320,8 +320,7 @@ public final class Attribute implements Comparable<Attribute> {
* Only applicable for list type attributes.
*/
public Builder<TYPE> nonEmpty() {
- Preconditions.checkNotNull(type.getListElementType(),
- "attribute '" + name + "' must be a list");
+ Preconditions.checkNotNull(type.getListElementType(), "attribute '%s' must be a list", name);
return setPropertyFlag(PropertyFlag.NON_EMPTY, "non_empty");
}
@@ -330,7 +329,7 @@ public final class Attribute implements Comparable<Attribute> {
*/
public Builder<TYPE> singleArtifact() {
Preconditions.checkState((type == Type.LABEL) || (type == Type.LABEL_LIST),
- "attribute '" + name + "' must be a label-valued type");
+ "attribute '%s' must be a label-valued type", name);
return setPropertyFlag(PropertyFlag.SINGLE_ARTIFACT, "single_artifact");
}
@@ -358,8 +357,7 @@ public final class Attribute implements Comparable<Attribute> {
* Mark the built attribute as order-independent.
*/
public Builder<TYPE> orderIndependent() {
- Preconditions.checkNotNull(type.getListElementType(),
- "attribute '" + name + "' must be a list");
+ Preconditions.checkNotNull(type.getListElementType(), "attribute '%s' must be a list", name);
return setPropertyFlag(PropertyFlag.ORDER_INDEPENDENT, "order-independent");
}
@@ -468,7 +466,7 @@ public final class Attribute implements Comparable<Attribute> {
* Returns true if a late-bound value has been set. Useful only for Skylark.
*/
public boolean hasLateBoundValue() {
- return value != null && value instanceof LateBoundDefault;
+ return value instanceof LateBoundDefault;
}
/**
@@ -1024,9 +1022,10 @@ public final class Attribute implements Comparable<Attribute> {
|| type == Type.LABEL || type == Type.LABEL_LIST
|| type == Type.NODEP_LABEL || type == Type.NODEP_LABEL_LIST,
"Configuration transitions can only be specified for label or label list attributes");
- Preconditions.checkArgument(isLateBound(name) == (defaultValue instanceof LateBoundDefault),
- "late bound attributes require a default value that is late bound (and vice versa): "
- + name);
+ Preconditions.checkArgument(
+ isLateBound(name) == (defaultValue instanceof LateBoundDefault),
+ "late bound attributes require a default value that is late bound (and vice versa): %s",
+ name);
if (isLateBound(name)) {
LateBoundDefault<?> lateBoundDefault = (LateBoundDefault<?>) defaultValue;
Preconditions.checkArgument((configurator == null),
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java b/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java
index be7584aa28..35248f2b37 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AttributeContainer.java
@@ -78,7 +78,7 @@ public class AttributeContainer {
public boolean isAttributeValueExplicitlySpecified(String attributeName) {
Integer idx = ruleClass.getAttributeIndex(attributeName);
- return idx != null ? attributeValueExplicitlySpecified.get(idx) : false;
+ return idx != null && attributeValueExplicitlySpecified.get(idx);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/EnumFilterConverter.java b/src/main/java/com/google/devtools/build/lib/packages/EnumFilterConverter.java
index 31242e35fe..50ebae2d4b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/EnumFilterConverter.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/EnumFilterConverter.java
@@ -59,7 +59,7 @@ class EnumFilterConverter<E extends Enum<E>> implements Converter<Set<E>> {
*/
@Override
public Set<E> convert(String input) throws OptionsParsingException {
- if (input.equals("")) {
+ if (input.isEmpty()) {
return Collections.emptySet();
}
EnumSet<E> includedSet = EnumSet.noneOf(typeClass);
diff --git a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
index 9f72fd0460..22aee8e648 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
@@ -361,7 +361,7 @@ public abstract class ImplicitOutputsFunction {
return formatBuilder.append(PERCENT_ESCAPER.escape(template)).toString();
}
- int end = template.indexOf("}", start + 2);
+ int end = template.indexOf('}', start + 2);
if (end < 0) {
return formatBuilder.append(PERCENT_ESCAPER.escape(template)).toString();
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/License.java b/src/main/java/com/google/devtools/build/lib/packages/License.java
index fe63c9c2e0..f4e554e2ff 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/License.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/License.java
@@ -124,7 +124,7 @@ public final class License {
Set<DistributionType> result = EnumSet.noneOf(DistributionType.class);
for (String distStr : distStrings) {
try {
- DistributionType dist = Enum.valueOf(DistributionType.class, distStr.toUpperCase());
+ DistributionType dist = DistributionType.valueOf(distStr.toUpperCase());
result.add(dist);
} catch (IllegalArgumentException e) {
throw new LicenseParsingException("Invalid distribution type '" + distStr + "'");
@@ -300,7 +300,7 @@ public final class License {
if (exceptions.isEmpty()) {
return licenseTypes.toString().toLowerCase();
} else {
- return licenseTypes.toString().toLowerCase() + " with exceptions " + exceptions.toString();
+ return licenseTypes.toString().toLowerCase() + " with exceptions " + exceptions;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java b/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java
index 6c0d8499b1..dea6602348 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/MakeEnvironment.java
@@ -134,7 +134,7 @@ public class MakeEnvironment {
}
LinkedList<Binding> bindings = env.get(varname);
if (bindings == null) {
- bindings = new LinkedList<Binding>();
+ bindings = new LinkedList<>();
env.put(varname, bindings);
}
// push new bindings onto head of list (=> most recent binding is
diff --git a/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java b/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java
index fa180faaa2..4e8482424a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java
@@ -48,7 +48,7 @@ public class NoSuchTargetException extends NoSuchThingException {
super(message, nspe);
this.label = label;
this.target = target;
- this.packageLoadedSuccessfully = nspe != null ? false : true;
+ this.packageLoadedSuccessfully = nspe == null;
}
@Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/packages/NonconfigurableAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/packages/NonconfigurableAttributeMapper.java
index d54c847318..03d778bafd 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/NonconfigurableAttributeMapper.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/NonconfigurableAttributeMapper.java
@@ -44,7 +44,7 @@ public class NonconfigurableAttributeMapper extends AbstractAttributeMapper {
@Override
public <T> T get(String attributeName, Type<T> type) {
Preconditions.checkState(!getAttributeDefinition(attributeName).isConfigurable(),
- "Attribute '" + attributeName + "' is potentially configurable - not allowed here");
+ "Attribute '%s' is potentially configurable - not allowed here", attributeName);
return super.get(attributeName, type);
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index caf1578e65..186b9d949f 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1184,7 +1184,7 @@ public class Package implements Serializable {
void setVisibilityAndLicense(InputFile inputFile, RuleVisibility visibility, License license) {
String filename = inputFile.getName();
Target cacheInstance = targets.get(filename);
- if (cacheInstance == null || !(cacheInstance instanceof InputFile)) {
+ if (!(cacheInstance instanceof InputFile)) {
throw new IllegalArgumentException("Can't set visibility for nonexistent FileTarget "
+ filename + " in package " + pkg.getName() + ".");
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java
index 5eca0f43c9..cd407b6a49 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java
@@ -73,8 +73,7 @@ public class PackageDeserializer {
throws PackageDeserializationException {
Object value = deserializeAttributeValue(expectedType, attrPb);
return new ParsedAttributeValue(
- attrPb.hasExplicitlySpecified() ? attrPb.getExplicitlySpecified() : false,
- value,
+ attrPb.hasExplicitlySpecified() && attrPb.getExplicitlySpecified(), value,
deserializeLocation(attrPb.getParseableLocation()));
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index 0cfdf0adef..fba39572bd 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -972,8 +972,8 @@ public final class PackageFactory {
String error = LabelValidator.validatePackageName(
packageId.getPackageFragment().getPathString());
if (error != null) {
- throw new BuildFileNotFoundException(packageId.toString(),
- "illegal package name: '" + packageId.toString() + "' (" + error + ")");
+ throw new BuildFileNotFoundException(
+ packageId.toString(), "illegal package name: '" + packageId + "' (" + error + ")");
}
ParserInputSource inputSource = maybeGetParserInputSource(buildFile, eventHandler);
if (inputSource == null) {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java b/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java
index 20524aa411..cf7ff714a4 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java
@@ -135,7 +135,7 @@ public abstract class PackageSpecification {
@Override
public String toString() {
- return prefix.equals(new PathFragment("")) ? "..." : prefix.toString() + "/...";
+ return prefix.equals(new PathFragment("")) ? "..." : prefix + "/...";
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index b7da520982..23f1c97f59 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -240,7 +240,7 @@ public final class RuleClass {
@Override
public void checkName(String name) {
Preconditions.checkArgument(
- (name.contains("$") && !TargetUtils.isTestRuleName(name)) || name.equals(""));
+ (name.contains("$") && !TargetUtils.isTestRuleName(name)) || name.isEmpty());
}
@Override
@@ -274,8 +274,9 @@ public final class RuleClass {
NORMAL {
@Override
public void checkName(String name) {
- Preconditions.checkArgument(!TargetUtils.isTestRuleName(name)
- && RULE_NAME_PATTERN.matcher(name).matches(), "Invalid rule name: " + name);
+ Preconditions.checkArgument(
+ !TargetUtils.isTestRuleName(name) && RULE_NAME_PATTERN.matcher(name).matches(),
+ "Invalid rule name: %s", name);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
index 3710eebf39..fb0cee9520 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
@@ -191,7 +191,7 @@ public final class TargetUtils {
* <p>In practice this is the part before the "_", if any, otherwise the entire rule class name.
*/
public static String getRuleLanguage(String ruleClass) {
- int index = ruleClass.lastIndexOf("_");
+ int index = ruleClass.lastIndexOf('_');
// Chop off "_binary" or "_test".
return index != -1 ? ruleClass.substring(0, index) : ruleClass;
}
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/SrcTargetUtil.java b/src/main/java/com/google/devtools/build/lib/pkgcache/SrcTargetUtil.java
index 85d967e033..89969f6773 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/SrcTargetUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/SrcTargetUtil.java
@@ -94,9 +94,7 @@ public final class SrcTargetUtil {
public static List<FileTarget> getHdrTargets(EventHandler eventHandler, Rule rule,
TargetProvider provider)
throws NoSuchTargetException, NoSuchPackageException, InterruptedException {
- ImmutableSet<String> srcAndHdrAttributes = ImmutableSet.<String>builder()
- .addAll(HEADER_ATTRIBUTES)
- .build();
+ ImmutableSet<String> srcAndHdrAttributes = ImmutableSet.copyOf(HEADER_ATTRIBUTES);
return getTargets(eventHandler, rule, srcAndHdrAttributes, Sets.newHashSet(rule), provider);
}
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java b/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java
index 4ce3a9309e..8bd57a8262 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/ProfileInfo.java
@@ -92,7 +92,7 @@ public class ProfileInfo {
VarInt.putVarLong(stats[i].totalTime, sink);
}
}
- content = sink.position() > 0 ? Arrays.copyOfRange(sink.array(), 0, sink.position()) : null;
+ content = sink.position() > 0 ? Arrays.copyOf(sink.array(), sink.position()) : null;
}
boolean isEmpty() { return content == null; }
@@ -308,7 +308,9 @@ public class ProfileInfo {
// Created map usually will end up with thousands of entries, so we
// preinitialize it to the 10000.
Map<K, Task[]> taskMap = Maps.newHashMapWithExpectedSize(10000);
- if (taskList.size() == 0) { return taskMap; }
+ if (taskList.isEmpty()) {
+ return taskMap;
+ }
Task[] taskArray = taskList.toArray(new Task[taskList.size()]);
Arrays.sort(taskArray, this);
K key = getKey(taskArray[0]);
@@ -393,7 +395,7 @@ public class ProfileInfo {
* task statistic. This method is sufficient to initialize data for dumping.
*/
public void calculateStats() {
- if (allTasksById.size() == 0) {
+ if (allTasksById.isEmpty()) {
return;
}
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
index d59284880f..60b9fa254d 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
@@ -268,7 +268,7 @@ public final class Profiler {
"Current task stack for thread " + Thread.currentThread().getName() + ":\n");
List<TaskData> list = get();
for (int i = list.size() - 1; i >= 0; i--) {
- builder.append(list.get(i).toString());
+ builder.append(list.get(i));
builder.append("\n");
}
return builder.toString();
@@ -337,7 +337,7 @@ public final class Profiler {
this.size = size;
for (int i = 0; i < SHARDS; i++) {
- priorityQueues[i] = new PriorityQueue<SlowTask>(size + 1);
+ priorityQueues[i] = new PriorityQueue<>(size + 1);
}
}
@@ -692,7 +692,7 @@ public final class Profiler {
*/
private void logTask(long startTime, long duration, ProfilerTask type, Object object) {
Preconditions.checkNotNull(object);
- Preconditions.checkState(startTime > 0, "startTime was " + startTime);
+ Preconditions.checkState(startTime > 0, "startTime was %s", startTime);
if (duration < 0) {
// See note in Clock#nanoTime, which is used by Profiler#nanoTimeMaybe.
duration = 0;
diff --git a/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java b/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
index b72e3aac52..15534e60e8 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java
@@ -281,9 +281,7 @@ final class LabelVisitor {
this.maxDepth = maxDepth;
this.errorObserver = new TargetEdgeErrorObserver();
ImmutableList.Builder<TargetEdgeObserver> builder = ImmutableList.builder();
- for (TargetEdgeObserver observer : observers) {
- builder.add(observer);
- }
+ builder.add(observers);
builder.add(errorObserver);
this.observers = builder.build();
this.keepGoing = keepGoing;
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/GraphOutputFormatter.java b/src/main/java/com/google/devtools/build/lib/query2/output/GraphOutputFormatter.java
index 5ded5e2266..c51fc81e90 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/output/GraphOutputFormatter.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/output/GraphOutputFormatter.java
@@ -91,7 +91,7 @@ class GraphOutputFormatter extends OutputFormatter {
public String serialize(Node<Set<Node<Target>>> node) {
int actualLimit = graphNodeStringLimit - RESERVED_LABEL_CHARS;
boolean firstItem = true;
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
int count = 0;
for (Node<Target> eqNode : node.getLabel()) {
String labelString = eqNode.getLabel().getLabel().toString();
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java b/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java
index e7cd9083cc..7ce4c94716 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/output/OutputFormatter.java
@@ -284,9 +284,9 @@ public abstract class OutputFormatter implements Serializable {
}
private void outputRule(Rule rule, PrintStream out) {
- out.println(String.format("# %s", rule.getLocation()));
- out.println(String.format("%s(", rule.getRuleClass()));
- out.println(String.format(" name = \"%s\",", rule.getName()));
+ out.printf("# %s%n", rule.getLocation());
+ out.printf("%s(%n", rule.getRuleClass());
+ out.printf(" name = \"%s\",%n", rule.getName());
for (Attribute attr : rule.getAttributes()) {
Pair<Iterable<Object>, AttributeValueSource> values = getAttributeValues(rule, attr);
@@ -297,7 +297,7 @@ public abstract class OutputFormatter implements Serializable {
continue; // Don't print default values.
}
Object value = Iterables.getOnlyElement(values.first);
- out.print(String.format(" %s = ", attr.getName()));
+ out.printf(" %s = ", attr.getName());
if (value instanceof Label) {
value = value.toString();
} else if (value instanceof List<?> && EvalUtils.isImmutable(value)) {
@@ -307,7 +307,7 @@ public abstract class OutputFormatter implements Serializable {
EvalUtils.prettyPrintValue(value, out);
out.println(",");
}
- out.println(String.format(")\n"));
+ out.printf(")\n%n");
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java b/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java
index c01c90e465..287ad0b923 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java
@@ -184,7 +184,7 @@ class XmlOutputFormatter extends OutputFormatter implements OutputFormatter.Unor
elem.setAttribute("name", target.getLabel().toString());
String location = target.getLocation().print();
if (!xmlLineNumbers) {
- int firstColon = location.indexOf(":");
+ int firstColon = location.indexOf(':');
if (firstColon != -1) {
location = location.substring(0, firstColon);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
index 885fe8a88f..c2034ab36d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
@@ -387,7 +387,7 @@ public final class SkylarkRuleContext {
@SkylarkCallable(doc = "Splits a shell command to a list of tokens.", hidden = true)
public List<String> tokenize(String optionString) throws FuncallException {
- List<String> options = new ArrayList<String>();
+ List<String> options = new ArrayList<>();
try {
ShellUtils.tokenize(options, optionString);
} catch (TokenizationException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java
index fa74a3ac55..50864716ad 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java
@@ -317,9 +317,9 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory {
}
} else {
if (!linkstaticAttribute && appearsToHaveNoObjectFiles(ruleContext.attributes())) {
- Artifact element = ccCompilationOutputs.getObjectFiles(false).isEmpty()
- ? ccCompilationOutputs.getObjectFiles(true).get(0)
- : ccCompilationOutputs.getObjectFiles(false).get(0);
+ Artifact element = Iterables.getFirst(
+ ccCompilationOutputs.getObjectFiles(false),
+ ccCompilationOutputs.getObjectFiles(true).get(0));
ruleContext.attributeWarning("srcs",
"this library appears at first glance to have no object files, "
+ "but on closer inspection it does have something to link, e.g. "
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
index a32d7710d1..25d01b989b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
@@ -33,6 +33,7 @@ import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -839,12 +840,7 @@ public class CcToolchainFeatures implements Serializable {
* @return whether a currently enabled feature implies the given feature.
*/
private boolean isImpliedByEnabledFeature(Feature feature) {
- for (Feature implies : impliedBy.get(feature)) {
- if (enabled.contains(implies)) {
- return true;
- }
- }
- return false;
+ return !Collections.disjoint(impliedBy.get(feature), enabled);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeParser.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeParser.java
index 0b60b453ae..a164663063 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeParser.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeParser.java
@@ -87,7 +87,7 @@ public class IncludeParser implements SkyValue {
* are provided
*/
public Rule(String type, String pattern, String findRoot, String findFilter) {
- this(type, pattern, findRoot.replace("\\", "$"), Pattern.compile(findFilter));
+ this(type, pattern, findRoot.replace('\\', '$'), Pattern.compile(findFilter));
Preconditions.checkArgument((this.type == Type.PATH) || (this.type == Type.FILE));
}
@@ -365,7 +365,7 @@ public class IncludeParser implements SkyValue {
@Override
public String toString() {
- return kind.toString() + ":" + pathFragment.getPathString();
+ return kind + ":" + pathFragment.getPathString();
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java
index 9c00efd64a..65d89b9861 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java
@@ -105,9 +105,7 @@ public interface IncludeScanner {
List<PathFragment> quoteIncludeDirs = scannable.getQuoteIncludeDirs();
List<String> cmdlineIncludes = scannable.getCmdlineIncludes();
- for (PathFragment pathFragment : scannable.getSystemIncludeDirs()) {
- includeDirs.add(pathFragment);
- }
+ includeDirs.addAll(scannable.getSystemIncludeDirs());
// Add the system include paths to the list of include paths.
for (PathFragment pathFragment : action.getBuiltInIncludeDirectories()) {
@@ -149,7 +147,6 @@ public interface IncludeScanner {
// Collect inputs and output
List<Artifact> inputs = new ArrayList<>();
- IncludeProblems includeProblems = new IncludeProblems();
for (Artifact included : includes) {
if (FileSystemUtils.startsWithAny(included.getPath(), absoluteBuiltInIncludeDirs)) {
// Skip include files found in absolute include directories. This currently only applies
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java
index 24120ce44f..63503caa0a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java
@@ -83,7 +83,7 @@ public abstract class LinkerInputs {
@Override
public String toString() {
- return "SimpleLinkerInput(" + artifact.toString() + ")";
+ return "SimpleLinkerInput(" + artifact + ")";
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java
index f3b302f13e..d653c9ac63 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java
@@ -76,7 +76,7 @@ public final class ActionListener implements RuleConfiguredTargetFactory {
extraActions.add(spec);
}
}
- if (extraActions.size() == 0) {
+ if (extraActions.isEmpty()) {
ruleContext.attributeWarning("extra_actions",
"No extra_action is specified for this version of blaze.");
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java
index 38e4a4b9dd..8b52ccfdc0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java
@@ -95,7 +95,7 @@ public final class ExtraActionSpec implements TransitiveInfoProvider {
owner, outputTemplate));
}
// extra_action has no output, we need to create some dummy output to keep the build up-to-date.
- if (extraActionOutputs.size() == 0) {
+ if (extraActionOutputs.isEmpty()) {
createDummyOutput = true;
extraActionOutputs.add(getExtraActionOutputArtifact(owningRule, actionToShadow,
owner, "$(ACTION_ID).dummy"));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/GenericBuildInfoPropertiesTranslator.java b/src/main/java/com/google/devtools/build/lib/rules/java/GenericBuildInfoPropertiesTranslator.java
index df6a325437..edbe79bde5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/GenericBuildInfoPropertiesTranslator.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/GenericBuildInfoPropertiesTranslator.java
@@ -60,7 +60,7 @@ public class GenericBuildInfoPropertiesTranslator implements
private String translateValue(String valueDescription, Map<String, String> buildInfo) {
String[] split = valueDescription.split("%");
- StringBuffer result = new StringBuffer();
+ StringBuilder result = new StringBuilder();
boolean isInsideKey = false;
for (String key : split) {
if (isInsideKey) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java
index 442b85bcf9..5a9239d2e1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java
@@ -82,7 +82,7 @@ public abstract class JavaBuildInfoFactory implements BuildInfoFactory {
createVolatileTranslator(),
true,
false);
- List<Action> actions = new ArrayList<Action>(3);
+ List<Action> actions = new ArrayList<>(3);
actions.add(redactedInfo);
actions.add(nonvolatileInfo);
actions.add(volatileInfo);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
index 006a5df5eb..74627f3b0a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
@@ -750,7 +750,7 @@ public class JavaCompileAction extends AbstractAction {
// aggregation code below should go away.
List<String> jcopts = new ArrayList<>(javacOpts);
JavaConfiguration javaConfiguration = configuration.getFragment(JavaConfiguration.class);
- if (javaConfiguration.getJavaWarns().size() > 0) {
+ if (!javaConfiguration.getJavaWarns().isEmpty()) {
jcopts.add("-Xlint:" + Joiner.on(',').join(javaConfiguration.getJavaWarns()));
}
if (!bootclasspathEntries.isEmpty()) {
@@ -950,12 +950,12 @@ public class JavaCompileAction extends AbstractAction {
* Accumulates the given jar artifacts as being provided by direct dependencies.
*/
public Builder addDirectJars(Collection<Artifact> directJars) {
- Iterables.addAll(this.directJars, directJars);
+ this.directJars.addAll(directJars);
return this;
}
public Builder addCompileTimeDependencyArtifacts(Collection<Artifact> dependencyArtifacts) {
- Iterables.addAll(this.compileTimeDependencyArtifacts, dependencyArtifacts);
+ this.compileTimeDependencyArtifacts.addAll(dependencyArtifacts);
return this;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFilesCollector.java b/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFilesCollector.java
index e62a3b86af..2860751a18 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFilesCollector.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFilesCollector.java
@@ -15,7 +15,6 @@ package com.google.devtools.build.lib.rules.test;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
@@ -203,7 +202,7 @@ public final class InstrumentedFilesCollector {
for (String attr : getSourceAttributes()) {
if (ruleContext.getRule().isAttrDefined(attr, Type.LABEL_LIST) ||
ruleContext.getRule().isAttrDefined(attr, Type.LABEL)) {
- Iterables.addAll(prerequisites, ruleContext.getPrerequisites(attr, Mode.DONT_CHECK));
+ prerequisites.addAll(ruleContext.getPrerequisites(attr, Mode.DONT_CHECK));
}
}
return prerequisites;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestLogHelper.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestLogHelper.java
index 462c24ce6c..4690af6924 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestLogHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestLogHelper.java
@@ -66,11 +66,8 @@ public class TestLogHelper {
ByteStreams.copy(input, filteringOutputStream);
if (!filteringOutputStream.foundHeader()) {
- InputStream inputAgain = testOutput.getInputStream();
- try {
+ try (InputStream inputAgain = testOutput.getInputStream()) {
ByteStreams.copy(inputAgain, out);
- } finally {
- inputAgain.close();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
index 4905e15293..103ba62624 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
@@ -375,11 +375,8 @@ public abstract class TestStrategy implements TestActionContext {
Thread.currentThread().interrupt();
}
if (!headerFilter.foundHeader()) {
- InputStream input = testLogPath.getInputStream();
- try {
+ try (InputStream input = testLogPath.getInputStream()) {
ByteStreams.copy(input, outErr.getOutputStream());
- } finally {
- input.close();
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestXmlOutputParser.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestXmlOutputParser.java
index 8d660ec467..b911004edf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestXmlOutputParser.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestXmlOutputParser.java
@@ -230,24 +230,29 @@ class TestXmlOutputParser {
// they can be too big to fit in the memory. We add failure and error
// elements to the output without a message, so that there is a
// difference between passed and failed test cases.
- if (childElementName.equals("testsuite")) {
- builder.addChild(parseTestSuite(parser, childElementName));
- } else if (childElementName.equals("testcase")) {
- builder.addChild(parseTestCase(parser));
- } else if (childElementName.equals("failure")) {
- failures += 1;
- skipCompleteElement(parser);
- } else if (childElementName.equals("error")) {
- errors += 1;
- skipCompleteElement(parser);
- } else if (childElementName.equals("testdecorator")) {
- builder.addChild(parseTestDecorator(parser));
- } else {
-
- // Unknown element encountered. Since the schema of the input file
- // is a bit hazy, just skip it and go merrily on our way. Ignorance
- // is bliss.
- skipCompleteElement(parser);
+ switch (childElementName) {
+ case "testsuite":
+ builder.addChild(parseTestSuite(parser, childElementName));
+ break;
+ case "testcase":
+ builder.addChild(parseTestCase(parser));
+ break;
+ case "failure":
+ failures += 1;
+ skipCompleteElement(parser);
+ break;
+ case "error":
+ errors += 1;
+ skipCompleteElement(parser);
+ break;
+ case "testdecorator":
+ builder.addChild(parseTestDecorator(parser));
+ break;
+ default:
+ // Unknown element encountered. Since the schema of the input file
+ // is a bit hazy, just skip it and go merrily on our way. Ignorance
+ // is bliss.
+ skipCompleteElement(parser);
}
break;
@@ -296,20 +301,28 @@ class TestXmlOutputParser {
String name = parser.getAttributeLocalName(i).intern();
String value = parser.getAttributeValue(i);
- if (name.equals("name")) {
- builder.setName(value);
- } else if (name.equals("classname")) {
- builder.setClassName(value);
- } else if (name.equals("time")) {
- builder.setRunDurationMillis(parseTime(value));
- } else if (name.equals("result")) {
- builder.setResult(value);
- } else if (name.equals("status")) {
- if (value.equals("notrun")) {
- builder.setRun(false);
- } else if (value.equals("run")) {
- builder.setRun(true);
- }
+ switch (name) {
+ case "name":
+ builder.setName(value);
+ break;
+ case "classname":
+ builder.setClassName(value);
+ break;
+ case "time":
+ builder.setRunDurationMillis(parseTime(value));
+ break;
+ case "result":
+ builder.setResult(value);
+ break;
+ case "status":
+ if (value.equals("notrun")) {
+ builder.setRun(false);
+ } else if (value.equals("run")) {
+ builder.setRun(true);
+ }
+ break;
+ default:
+ // fall through
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
index e55ad2f244..9b9b48a0b5 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
@@ -253,7 +253,7 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
terminal.textRed();
terminal.textBold();
}
- terminal.writeString(event.getKind().toString() + ": ");
+ terminal.writeString(event.getKind() + ": ");
if (useColor) {
terminal.resetTerminal();
}
@@ -281,7 +281,7 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
if (useColor) {
terminal.textGreen();
}
- terminal.writeString(event.getKind().toString() + ": ");
+ terminal.writeString(event.getKind() + ": ");
terminal.resetTerminal();
writeTimestampAndLocation(event);
terminal.writeString(event.getMessage());
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java b/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java
index 75c7fe2e75..3e4405e995 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java
@@ -189,7 +189,7 @@ public class TestSummary implements Comparable<TestSummary> {
allCases.put(detail.getClassName() + "." + detail.getName(), detail);
}
- summary.failedTestCases = new ArrayList<TestCase>(allCases.values());
+ summary.failedTestCases = new ArrayList<>(allCases.values());
return this;
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/TestSummaryPrinter.java b/src/main/java/com/google/devtools/build/lib/runtime/TestSummaryPrinter.java
index 91c1488054..7ddabbcd48 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/TestSummaryPrinter.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/TestSummaryPrinter.java
@@ -231,8 +231,8 @@ public class TestSummaryPrinter {
double sumOfSquares = 0.0;
for (Long l : summary.getTestTimes()) {
long value = l.longValue();
- min = value < min ? value : min;
- max = value > max ? value : max;
+ min = Math.min(value, min);
+ max = Math.max(value, max);
sum += value;
sumOfSquares += ((double) value) * (double) value;
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java
index 178872ce27..5be4f9009a 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java
@@ -89,8 +89,8 @@ public final class CleanCommand implements BlazeCommand {
cleanOptions.expunge_async = cleanOptions.cleanStyle.equals("expunge_async");
cleanOptions.expunge = cleanOptions.cleanStyle.equals("expunge");
- if (cleanOptions.expunge == false && cleanOptions.expunge_async == false &&
- !cleanOptions.cleanStyle.isEmpty()) {
+ if (!cleanOptions.expunge && !cleanOptions.expunge_async
+ && !cleanOptions.cleanStyle.isEmpty()) {
runtime.getReporter().handle(Event.error(
null, "Invalid clean_style value '" + cleanOptions.cleanStyle + "'"));
return ExitCode.COMMAND_LINE_ERROR;
@@ -110,10 +110,7 @@ public final class CleanCommand implements BlazeCommand {
} catch (IOException e) {
runtime.getReporter().handle(Event.error(e.getMessage()));
return ExitCode.LOCAL_ENVIRONMENTAL_ERROR;
- } catch (CommandException e) {
- runtime.getReporter().handle(Event.error(e.getMessage()));
- return ExitCode.RUN_FAILURE;
- } catch (ExecException e) {
+ } catch (CommandException | ExecException e) {
runtime.getReporter().handle(Event.error(e.getMessage()));
return ExitCode.RUN_FAILURE;
} catch (InterruptedException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
index 6333c79e31..2d0e720b17 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
@@ -424,7 +424,7 @@ public class InfoCommand implements BlazeCommand {
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PrintWriter writer = new PrintWriter(outputStream);
- writer.print(value.toString() + "\n");
+ writer.print(value + "\n");
writer.flush();
return outputStream.toByteArray();
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java
index 7b91dc7fa3..08cb072a9b 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java
@@ -17,6 +17,7 @@ import com.google.common.base.Function;
import com.google.common.base.Functions;
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
+import com.google.common.collect.Multimaps;
import com.google.common.collect.Ordering;
import com.google.common.collect.TreeMultimap;
import com.google.devtools.build.lib.actions.MiddlemanAction;
@@ -54,6 +55,7 @@ import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.EnumMap;
import java.util.EnumSet;
import java.util.List;
@@ -195,7 +197,7 @@ public final class ProfileCommand implements BlazeCommand {
for (ProfilePhaseStatistics stat : statistics) {
String title = stat.getTitle();
- if (!title.equals("")) {
+ if (!title.isEmpty()) {
out.println("\n=== " + title.toUpperCase() + " ===\n");
}
out.print(stat.getStatistics());
@@ -350,8 +352,7 @@ public final class ProfileCommand implements BlazeCommand {
}
private void printCriticalPath(String title, PrintStream out, CriticalPathEntry path) {
- out.println(String.format("\n%s (%s):", title,
- TimeUtilities.prettyTime(path.cumulativeDuration)));
+ out.printf("\n%s (%s):%n", title, TimeUtilities.prettyTime(path.cumulativeDuration));
boolean lightCriticalPath = isLightCriticalPath(path);
out.println(lightCriticalPath ?
@@ -376,29 +377,26 @@ public final class ProfileCommand implements BlazeCommand {
} else {
String desc = path.task.getDescription().replace(':', ' ');
if (lightCriticalPath) {
- out.println(String.format("%6d %11s %8s %s", path.task.id,
- TimeUtilities.prettyTime(path.duration),
- prettyPercentage(path.duration, totalPathTime),
- desc));
+ out.printf("%6d %11s %8s %s%n", path.task.id, TimeUtilities.prettyTime(path.duration),
+ prettyPercentage(path.duration, totalPathTime), desc);
} else {
- out.println(String.format("%6d %11s %8s %8s %s", path.task.id,
+ out.printf("%6d %11s %8s %8s %s%n", path.task.id,
TimeUtilities.prettyTime(path.duration),
prettyPercentage(path.duration, totalPathTime),
- prettyPercentage(path.getCriticalTime(), totalPathTime), desc));
+ prettyPercentage(path.getCriticalTime(), totalPathTime), desc);
}
}
}
if (middlemanCount > 0) {
if (lightCriticalPath) {
- out.println(String.format(" %11s %8s [%d middleman actions]",
+ out.printf(" %11s %8s [%d middleman actions]%n",
TimeUtilities.prettyTime(middlemanDuration),
- prettyPercentage(middlemanDuration, totalPathTime),
- middlemanCount));
+ prettyPercentage(middlemanDuration, totalPathTime), middlemanCount);
} else {
- out.println(String.format(" %11s %8s %8s [%d middleman actions]",
+ out.printf(" %11s %8s %8s [%d middleman actions]%n",
TimeUtilities.prettyTime(middlemanDuration),
prettyPercentage(middlemanDuration, totalPathTime),
- prettyPercentage(middlemanCritTime, totalPathTime), middlemanCount));
+ prettyPercentage(middlemanCritTime, totalPathTime), middlemanCount);
}
}
}
@@ -434,12 +432,12 @@ public final class ProfileCommand implements BlazeCommand {
if (stats.count > 0 && stats.totalTime > 0) {
if (headerNeeded) {
out.println("\nTotal time (across all threads) spent on:");
- out.println(String.format("%18s %8s %8s %11s", "Type", "Total", "Count", "Average"));
+ out.printf("%18s %8s %8s %11s%n", "Type", "Total", "Count", "Average");
headerNeeded = false;
}
- out.println(String.format("%18s %8s %8d %11s", type.toString(),
+ out.printf("%18s %8s %8d %11s%n", type.toString(),
prettyPercentage(stats.totalTime, totalDuration), stats.count,
- TimeUtilities.prettyTime(stats.totalTime / stats.count)));
+ TimeUtilities.prettyTime(stats.totalTime / stats.count));
}
}
}
@@ -496,9 +494,7 @@ public final class ProfileCommand implements BlazeCommand {
TreeMultimap<Stat, String> sortedStats =
TreeMultimap.create(Ordering.natural().reverse(), Ordering.natural());
- for (Map.Entry<String, Stat> stat : statsForType.entrySet()) {
- sortedStats.put(stat.getValue(), stat.getKey());
- }
+ Multimaps.invertFrom(Multimaps.forMap(statsForType), sortedStats);
int numPrinted = 0;
for (Map.Entry<Stat, String> stat : sortedStats.entries()) {
@@ -548,9 +544,7 @@ public final class ProfileCommand implements BlazeCommand {
*/
private EnumSet<ProfilerTask> getTypeFilter(ProfilerTask... tasks) {
EnumSet<ProfilerTask> filter = EnumSet.of(ProfilerTask.ACTION_LOCK, ProfilerTask.WAIT);
- for (ProfilerTask task : tasks) {
- filter.add(task);
- }
+ Collections.addAll(filter, tasks);
return filter;
}
@@ -611,7 +605,7 @@ public final class ProfileCommand implements BlazeCommand {
out.printf(TWO_COLUMN_FORMAT, "Total time finalizing build",
TimeUtilities.prettyTime(info.getPhaseDuration(finishPhase)));
}
- out.println("");
+ out.println();
out.printf(TWO_COLUMN_FORMAT, "Action dependency map creation",
TimeUtilities.prettyTime(graphTime));
out.printf(TWO_COLUMN_FORMAT, "Actual execution time",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java
index 2e5faf6ca8..bec0deb5d1 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java
@@ -48,7 +48,7 @@ public final class ProjectFileSupport {
String command) throws AbruptExitException {
List<String> targets = optionsParser.getResidue();
ProjectFile.Provider projectFileProvider = runtime.getProjectFileProvider();
- if (projectFileProvider != null && targets.size() > 0
+ if (projectFileProvider != null && !targets.isEmpty()
&& targets.get(0).startsWith(PROJECT_FILE_PREFIX)) {
if (targets.size() > 1) {
throw new AbruptExitException("Cannot handle more than one +<file> argument yet",
@@ -84,7 +84,7 @@ public final class ProjectFileSupport {
*/
public static List<String> getTargets(BlazeRuntime runtime, OptionsProvider options) {
List<String> targets = options.getResidue();
- if (runtime.getProjectFileProvider() != null && targets.size() > 0
+ if (runtime.getProjectFileProvider() != null && !targets.isEmpty()
&& targets.get(0).startsWith(PROJECT_FILE_PREFIX)) {
return targets.subList(1, targets.size());
}
diff --git a/src/main/java/com/google/devtools/build/lib/server/RPCService.java b/src/main/java/com/google/devtools/build/lib/server/RPCService.java
index 379e83ce2f..3aa20d4396 100644
--- a/src/main/java/com/google/devtools/build/lib/server/RPCService.java
+++ b/src/main/java/com/google/devtools/build/lib/server/RPCService.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.server;
+import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.util.io.OutErr;
import java.util.List;
@@ -59,7 +60,7 @@ public final class RPCService {
if (isShutdown) {
throw new IllegalStateException("Received request after shutdown.");
}
- String command = request.isEmpty() ? "" : request.get(0);
+ String command = Iterables.getFirst(request, "");
if (appCommand != null && command.equals("blaze")) { // an application request
int result = appCommand.exec(request.subList(1, request.size()), outErr, firstContactTime);
if (appCommand.shutdown()) { // an application shutdown request
diff --git a/src/main/java/com/google/devtools/build/lib/server/ServerResponse.java b/src/main/java/com/google/devtools/build/lib/server/ServerResponse.java
index e5ab9300f7..f222564fc2 100644
--- a/src/main/java/com/google/devtools/build/lib/server/ServerResponse.java
+++ b/src/main/java/com/google/devtools/build/lib/server/ServerResponse.java
@@ -95,12 +95,14 @@ final class ServerResponse {
if (errorMessage.length() == 0) {
return Integer.toString(exitStatus) + '\n';
}
- return errorMessage + '\n' + Integer.toString(exitStatus) + '\n';
+ return errorMessage + '\n' + exitStatus + '\n';
}
@Override
public boolean equals(Object other) {
- if (other == null || !(other instanceof ServerResponse)) return false;
+ if (!(other instanceof ServerResponse)) {
+ return false;
+ }
ServerResponse otherResponse = (ServerResponse) other;
return exitStatus == otherResponse.exitStatus
&& errorMessage.equals(otherResponse.errorMessage);
diff --git a/src/main/java/com/google/devtools/build/lib/shell/Command.java b/src/main/java/com/google/devtools/build/lib/shell/Command.java
index 70c5f8a1a6..364373dcb5 100644
--- a/src/main/java/com/google/devtools/build/lib/shell/Command.java
+++ b/src/main/java/com/google/devtools/build/lib/shell/Command.java
@@ -876,7 +876,7 @@ public final class Command {
message.append(']');
}
message.append("; environment: ");
- message.append(processBuilder.environment().toString());
+ message.append(processBuilder.environment());
final File workingDirectory = processBuilder.directory();
message.append("; working dir: ");
message.append(workingDirectory == null ?
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AbstractLabelCycleReporter.java b/src/main/java/com/google/devtools/build/lib/skyframe/AbstractLabelCycleReporter.java
index 797f15867e..444ae94703 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AbstractLabelCycleReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AbstractLabelCycleReporter.java
@@ -82,9 +82,9 @@ abstract class AbstractLabelCycleReporter implements CyclesReporter.SingleCycleR
Label label = getLabel(cycleValue);
Target target = getTargetForLabel(label);
- eventHandler.handle(
- Event.error(target.getLocation(), "in " + target.getTargetKind() + " " + label
- + ": " + cycleMessage.toString()));
+ eventHandler.handle(Event.error(
+ target.getLocation(),
+ "in " + target.getTargetKind() + " " + label + ": " + cycleMessage));
}
return true;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionArtifactCycleReporter.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionArtifactCycleReporter.java
index 3105539e2f..022e63fece 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionArtifactCycleReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionArtifactCycleReporter.java
@@ -52,7 +52,7 @@ public class ActionArtifactCycleReporter extends AbstractLabelCycleReporter {
return "action: " + ((Action) arg).getMnemonic();
} else if (arg instanceof LabelAndConfiguration
&& skyFunctionName == SkyFunctions.TARGET_COMPLETION) {
- return "configured target: " + ((LabelAndConfiguration) arg).getLabel().toString();
+ return "configured target: " + ((LabelAndConfiguration) arg).getLabel();
}
throw new IllegalStateException(
"Argument is not Action, TargetCompletion, or OwnedArtifact: " + arg);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
index ea744c1c0a..88d1e61d4b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
@@ -85,7 +85,7 @@ public class ConfiguredTargetKey extends ActionLookupValue.ActionLookupKey {
return "null";
}
return (configuration != null && configuration.isHostConfiguration())
- ? (label.toString() + " (host)") : label.toString();
+ ? (label + " (host)") : label.toString();
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java
index 58cb67df7b..1c5ec091a8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java
@@ -29,8 +29,8 @@ public class ContainingPackageLookupFunction implements SkyFunction {
@Override
public SkyValue compute(SkyKey skyKey, Environment env) {
PackageIdentifier dir = (PackageIdentifier) skyKey.argument();
- PackageLookupValue pkgLookupValue = null;
- pkgLookupValue = (PackageLookupValue) env.getValue(PackageLookupValue.key(dir));
+ PackageLookupValue pkgLookupValue =
+ (PackageLookupValue) env.getValue(PackageLookupValue.key(dir));
if (pkgLookupValue == null) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
index a1fdcb2b40..d1ee81cb07 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
@@ -74,7 +74,7 @@ final class GlobFunction implements SkyFunction {
String pattern = glob.getPattern();
// Split off the first path component of the pattern.
- int slashPos = pattern.indexOf("/");
+ int slashPos = pattern.indexOf('/');
String patternHead;
String patternTail;
if (slashPos == -1) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java
index 861f89ac4b..43d2556315 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java
@@ -188,9 +188,9 @@ public class LocalDiffAwareness implements DiffAwareness {
/** Returns the changed files caught by the watch service. */
private Set<Path> collectChanges() throws BrokenDiffAwarenessException, IOException {
- Set<Path> createdFilesAndDirectories = new HashSet<Path>();
- Set<Path> deletedOrModifiedFilesAndDirectories = new HashSet<Path>();
- Set<Path> deletedTrackedDirectories = new HashSet<Path>();
+ Set<Path> createdFilesAndDirectories = new HashSet<>();
+ Set<Path> deletedOrModifiedFilesAndDirectories = new HashSet<>();
+ Set<Path> deletedTrackedDirectories = new HashSet<>();
WatchKey watchKey;
while ((watchKey = watchService.poll()) != null) {
@@ -267,7 +267,7 @@ public class LocalDiffAwareness implements DiffAwareness {
throw new IOException("Root directory " + watchRootPath + " became inaccessible.");
}
- Set<Path> changedPaths = new HashSet<Path>();
+ Set<Path> changedPaths = new HashSet<>();
for (Path path : createdFilesAndDirectories) {
if (Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS)) {
// This is a new directory, so changes to it since its creation have not been watched.
@@ -287,7 +287,7 @@ public class LocalDiffAwareness implements DiffAwareness {
* paths).
*/
private Set<Path> registerSubDirectoriesAndReturnContents(Path rootDir) throws IOException {
- Set<Path> visitedAbsolutePaths = new HashSet<Path>();
+ Set<Path> visitedAbsolutePaths = new HashSet<>();
// Note that this does not follow symlinks.
Files.walkFileTree(rootDir, new WatcherFileVisitor(visitedAbsolutePaths));
return visitedAbsolutePaths;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index 16798105b9..31991c4156 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -378,7 +378,7 @@ public class PackageFunction implements SkyFunction {
packageLookupValue.getErrorMsg()), Transience.PERSISTENT);
default:
// We should never get here.
- Preconditions.checkState(false);
+ throw new IllegalStateException();
}
}
@@ -578,8 +578,7 @@ public class PackageFunction implements SkyFunction {
private void transitiveClosureOfLabels(
ImmutableList<SkylarkFileDependency> immediateDeps, Set<Label> transitiveClosure) {
for (SkylarkFileDependency dep : immediateDeps) {
- if (!transitiveClosure.contains(dep.getLabel())) {
- transitiveClosure.add(dep.getLabel());
+ if (transitiveClosure.add(dep.getLabel())) {
transitiveClosureOfLabels(dep.getDependencies(), transitiveClosure);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
index ae4ee55bff..f800d367c5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
@@ -152,10 +152,7 @@ class PackageLookupFunction implements SkyFunction {
}
} catch (NoSuchPackageException e) {
throw new PackageLookupFunctionException(e, Transience.PERSISTENT);
- } catch (IOException e) {
- throw new PackageLookupFunctionException(new BuildFileContainsErrorsException(
- PackageFunction.EXTERNAL_PACKAGE_NAME, e.getMessage()), Transience.PERSISTENT);
- } catch (EvalException e) {
+ } catch (IOException | EvalException e) {
throw new PackageLookupFunctionException(new BuildFileContainsErrorsException(
PackageFunction.EXTERNAL_PACKAGE_NAME, e.getMessage()), Transience.PERSISTENT);
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitor.java
index 2844cc0dc2..1abec5d635 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitor.java
@@ -14,7 +14,7 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
@@ -109,9 +109,8 @@ final class SkyframeLabelVisitor implements TransitivePackageLoader {
Label topLevelLabel = (Label) key.argument();
if (!Iterables.isEmpty(errorInfo.getCycleInfo())) {
skyframeCyclesReporter.get().reportCycles(errorInfo.getCycleInfo(), key, eventHandler);
- for (Label rootCause : getRootCausesOfCycles(topLevelLabel, errorInfo.getCycleInfo())) {
- rootCauses.put(topLevelLabel, rootCause);
- }
+ rootCauses.putAll(
+ topLevelLabel, getRootCausesOfCycles(topLevelLabel, errorInfo.getCycleInfo()));
}
if (isDirectErrorFromTopLevelLabel(topLevelLabel, labelsToVisit, errorInfo)) {
// Unlike top-level targets, which have already gone through target parsing,
@@ -131,9 +130,7 @@ final class SkyframeLabelVisitor implements TransitivePackageLoader {
SkyKey topLevelTransitiveTargetKey = TransitiveTargetValue.key(topLevelLabel);
TransitiveTargetValue topLevelTransitiveTargetValue = result.get(topLevelTransitiveTargetKey);
if (topLevelTransitiveTargetValue.getTransitiveRootCauses() != null) {
- for (Label rootCause : topLevelTransitiveTargetValue.getTransitiveRootCauses()) {
- rootCauses.put(topLevelLabel, rootCause);
- }
+ rootCauses.putAll(topLevelLabel, topLevelTransitiveTargetValue.getTransitiveRootCauses());
warnAboutLoadingFailure(topLevelLabel, eventHandler);
}
}
@@ -251,12 +248,6 @@ final class SkyframeLabelVisitor implements TransitivePackageLoader {
@Override
public Multimap<Label, Label> getRootCauses(final Collection<Label> targetsToLoad) {
Preconditions.checkState(lastBuildKeepGoing);
- return Multimaps.filterKeys(rootCauses,
- new Predicate<Label>() {
- @Override
- public boolean apply(Label label) {
- return targetsToLoad.contains(label);
- }
- });
+ return Multimaps.filterKeys(rootCauses, Predicates.in(targetsToLoad));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
index a0f37a9d4a..7fd1b60fb9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
@@ -40,7 +40,7 @@ public class SkylarkModuleCycleReporter implements CyclesReporter.SingleCycleRep
public boolean maybeReportCycle(SkyKey topLevelKey, CycleInfo cycleInfo, boolean alreadyReported,
EventHandler eventHandler) {
ImmutableList<SkyKey> pathToCycle = cycleInfo.getPathToCycle();
- if (pathToCycle.size() == 0) {
+ if (pathToCycle.isEmpty()) {
return false;
}
SkyKey lastPathElement = cycleInfo.getPathToCycle().get(pathToCycle.size() - 1);
@@ -49,9 +49,10 @@ public class SkylarkModuleCycleReporter implements CyclesReporter.SingleCycleRep
} else if (Iterables.all(cycleInfo.getCycle(), IS_SKYLARK_MODULE_SKY_KEY)
// The last element of the path to the cycle has to be a PackageFunction.
&& IS_PACKAGE_SKY_KEY.apply(lastPathElement)) {
- StringBuilder cycleMessage = new StringBuilder()
- .append(((PackageIdentifier) lastPathElement.argument()).toString() + "/BUILD: ")
- .append("cycle in referenced extension files: ");
+ StringBuilder cycleMessage =
+ new StringBuilder()
+ .append(((PackageIdentifier) lastPathElement.argument()) + "/BUILD: ")
+ .append("cycle in referenced extension files: ");
AbstractLabelCycleReporter.printCycle(cycleInfo.getCycle(), cycleMessage,
new Function<SkyKey, String>() {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
index 417cfca06e..339e4313cf 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
@@ -196,15 +196,11 @@ public class TransitiveTargetFunction implements SkyFunction {
}
private static void visitTargetVisibility(Target target, Set<Label> labels) {
- for (Label label : target.getVisibility().getDependencyLabels()) {
- labels.add(label);
- }
+ labels.addAll(target.getVisibility().getDependencyLabels());
}
private static void visitPackageGroup(PackageGroup packageGroup, Set<Label> labels) {
- for (final Label include : packageGroup.getIncludes()) {
- labels.add(include);
- }
+ labels.addAll(packageGroup.getIncludes());
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java
index 2011327d3f..82c9f68a2f 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java
@@ -39,8 +39,7 @@ public class StandaloneContextConsumer implements ActionContextConsumer {
@Override
public Map<Class<? extends ActionContext>, String> getActionContexts() {
- Builder<Class<? extends ActionContext>, String> actionContexts =
- new ImmutableMap.Builder<Class<? extends ActionContext>, String>();
+ Builder<Class<? extends ActionContext>, String> actionContexts = new ImmutableMap.Builder<>();
actionContexts.put(SpawnActionContext.class, "standalone");
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/AbstractFunction.java b/src/main/java/com/google/devtools/build/lib/syntax/AbstractFunction.java
index b7e3b84a1e..7ed6d078b0 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/AbstractFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/AbstractFunction.java
@@ -56,7 +56,7 @@ public abstract class AbstractFunction implements Function {
@Override
public Object call(List<Object> args, Map<String, Object> kwargs, FuncallExpression ast,
Environment env) throws EvalException, InterruptedException {
- if (args.size() != 1 || kwargs.size() != 0) {
+ if (args.size() != 1 || !kwargs.isEmpty()) {
throw new EvalException(ast.getLocation(), "Invalid number of arguments (expected 0)");
}
return call(args.get(0), ast, env);
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Argument.java b/src/main/java/com/google/devtools/build/lib/syntax/Argument.java
index 86370e6a9e..0f530265c3 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Argument.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Argument.java
@@ -103,7 +103,7 @@ public abstract class Argument extends ASTNode {
}
@Override
public String toString() {
- return name + " = " + String.valueOf(value);
+ return name + " = " + value;
}
}
@@ -119,7 +119,7 @@ public abstract class Argument extends ASTNode {
}
@Override
public String toString() {
- return "*" + String.valueOf(value);
+ return "*" + value;
}
}
@@ -135,7 +135,7 @@ public abstract class Argument extends ASTNode {
}
@Override
public String toString() {
- return "**" + String.valueOf(value);
+ return "**" + value;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java
index 556fe2e15b..0bb584701a 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/AssignmentStatement.java
@@ -61,7 +61,7 @@ public final class AssignmentStatement extends Statement {
Ident ident = (Ident) lvalue;
Object result = expression.eval(env);
- Preconditions.checkNotNull(result, "result of " + expression + " is null");
+ Preconditions.checkNotNull(result, "result of %s is null", expression);
if (env.isSkylarkEnabled()) {
// The variable may have been referenced successfully if a global variable
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java b/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
index 6c85ab121b..0645cb3983 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BuildFileAST.java
@@ -62,7 +62,7 @@ public class BuildFileAST extends ASTNode {
this.containsErrors = result.containsErrors;
this.contentHashCode = contentHashCode;
this.imports = fetchImports(this.stmts);
- if (result.statements.size() > 0) {
+ if (!result.statements.isEmpty()) {
setLocation(lexer.createLocation(
result.statements.get(0).getLocation().getStartOffset(),
result.statements.get(result.statements.size() - 1).getLocation().getEndOffset()));
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
index 6c064e44b8..65f75e92fd 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
@@ -81,7 +81,7 @@ public final class DotExpression extends Expression {
} else {
try {
List<MethodDescriptor> methods = FuncallExpression.getMethods(objValue.getClass(), name, 0);
- if (methods != null && methods.size() > 0) {
+ if (methods != null && !methods.isEmpty()) {
MethodDescriptor method = Iterables.getOnlyElement(methods);
if (method.getAnnotation().structField()) {
result = FuncallExpression.callMethod(
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
index 19f1f3bdd4..456007f9ba 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
@@ -253,7 +253,7 @@ public class Environment {
out.append("}");
if (parent != null) {
out.append("=>");
- out.append(parent.toString());
+ out.append(parent);
}
return out.toString();
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java b/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
index 5d44265578..f5dd75368b 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
@@ -72,11 +72,7 @@ public abstract class EvalUtils {
public static boolean isTuple(Class<?> c) {
Preconditions.checkState(List.class.isAssignableFrom(c));
- if (ImmutableList.class.isAssignableFrom(c)) {
- return true;
- } else {
- return false;
- }
+ return ImmutableList.class.isAssignableFrom(c);
}
/**
@@ -418,7 +414,7 @@ public abstract class EvalUtils {
* prettyPrintValue(Object, Appendable).
*/
public static String prettyPrintValue(Object o) {
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
prettyPrintValue(o, buffer);
return buffer.toString();
}
@@ -440,7 +436,7 @@ public abstract class EvalUtils {
* Print value 'o' to a string. Convenience overloading of printValue(Object, Appendable).
*/
public static String printValue(Object o) {
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
printValue(o, buffer);
return buffer.toString();
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index fc228227c5..76bb5593f1 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -422,7 +422,7 @@ public final class FuncallExpression extends Expression {
Environment env, Function function)
throws EvalException, InterruptedException {
ArgConversion conversion = getArgConversion(function);
- ImmutableList.Builder<String> duplicates = new ImmutableList.Builder<String>();
+ ImmutableList.Builder<String> duplicates = new ImmutableList.Builder<>();
// Iterate over the arguments. We assume all positional arguments come before any keyword
// or star arguments, because the argument list was already validated by
// Argument#validateFuncallArguments, as called by the Parser,
@@ -465,7 +465,7 @@ public final class FuncallExpression extends Expression {
@Override
Object eval(Environment env) throws EvalException, InterruptedException {
- ImmutableList.Builder<Object> posargs = new ImmutableList.Builder<Object>();
+ ImmutableList.Builder<Object> posargs = new ImmutableList.Builder<>();
// We copy this into an ImmutableMap in the end, but we can't use an ImmutableMap.Builder, or
// we'd still have to have a HashMap on the side for the sake of properly handling duplicates.
Map<String, Object> kwargs = new HashMap<>();
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java
index f06829ac23..28639bc878 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java
@@ -52,7 +52,7 @@ public class FunctionDefStatement extends Statement {
ArrayList<SkylarkType> types = null;
if (defaultExpressions != null) {
- defaultValues = new ArrayList<Object>(defaultExpressions.size());
+ defaultValues = new ArrayList<>(defaultExpressions.size());
for (Expression expr : defaultExpressions) {
defaultValues.add(expr.eval(env));
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java
index 7607e4a4d4..3ac98171dd 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/IfStatement.java
@@ -80,7 +80,7 @@ public final class IfStatement extends Statement {
* ThenBlocks has to have at least one element.
*/
IfStatement(List<ConditionalStatements> thenBlocks, List<Statement> elseBlock) {
- Preconditions.checkArgument(thenBlocks.size() > 0);
+ Preconditions.checkArgument(!thenBlocks.isEmpty());
this.thenBlocks = ImmutableList.copyOf(thenBlocks);
this.elseBlock = ImmutableList.copyOf(elseBlock);
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
index 4c0c9b980d..b49fb1ec52 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
@@ -756,8 +756,7 @@ public final class Lexer {
}
// Like Python, always end with a NEWLINE token, even if no '\n' in input:
- if (tokens.size() == 0
- || tokens.get(tokens.size() - 1).kind != TokenKind.NEWLINE) {
+ if (tokens.isEmpty() || tokens.get(tokens.size() - 1).kind != TokenKind.NEWLINE) {
addToken(new Token(TokenKind.NEWLINE, pos - 1, pos));
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ListComprehension.java b/src/main/java/com/google/devtools/build/lib/syntax/ListComprehension.java
index c48fe64319..3153e8c38d 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ListComprehension.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ListComprehension.java
@@ -35,12 +35,12 @@ public final class ListComprehension extends Expression {
*/
public ListComprehension(Expression elementExpression) {
this.elementExpression = elementExpression;
- lists = new ArrayList<Map.Entry<Ident, Expression>>();
+ lists = new ArrayList<>();
}
@Override
Object eval(Environment env) throws EvalException, InterruptedException {
- if (lists.size() == 0) {
+ if (lists.isEmpty()) {
return convert(new ArrayList<>(), env);
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java
index fc43c2fbcd..4d1a838e6c 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ListLiteral.java
@@ -85,7 +85,7 @@ public final class ListLiteral extends Expression {
@Override
public String toString() {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
sb.append(startChar(kind));
String sep = "";
for (Expression e : exprs) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/MixedModeFunction.java b/src/main/java/com/google/devtools/build/lib/syntax/MixedModeFunction.java
index 31f2d2d083..024833120d 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/MixedModeFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/MixedModeFunction.java
@@ -129,7 +129,7 @@ public abstract class MixedModeFunction extends AbstractFunction {
// ast is null when called from Java (as there's no Skylark call site).
Location loc = ast == null ? location : ast.getLocation();
- if (onlyNamedArguments && args.size() > 0) {
+ if (onlyNamedArguments && !args.isEmpty()) {
throw new EvalException(loc,
getSignature() + " does not accept positional arguments");
}
@@ -227,7 +227,7 @@ public abstract class MixedModeFunction extends AbstractFunction {
* Render this object in the form of an equivalent Python function signature.
*/
public String getSignature() {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
sb.append(getName()).append('(');
int ii = 0;
int len = parameters.size();
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java b/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java
index 14267d86de..b1e198b36f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parameter.java
@@ -111,7 +111,7 @@ public abstract class Parameter<V, T> extends Argument {
@Override
public String toString() {
- return name.toString() + "=" + String.valueOf(defaultValue);
+ return name + "=" + defaultValue;
}
}
@@ -138,7 +138,7 @@ public abstract class Parameter<V, T> extends Argument {
if (name == null) {
return "*";
} else {
- return "*" + name.toString();
+ return "*" + name;
}
}
}
@@ -159,7 +159,7 @@ public abstract class Parameter<V, T> extends Argument {
@Override
public String toString() {
- return "**" + name.toString();
+ return "**" + name;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java
index 7e6f4140a4..f84c6ee664 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java
@@ -225,12 +225,8 @@ public class SkylarkEnvironment extends Environment {
}
}
}
- for (String symbol : objectsToRemove) {
- disabledVariables.add(symbol);
- }
- for (Class<?> moduleClass : modulesToRemove) {
- disabledNameSpaces.add(moduleClass);
- }
+ disabledVariables.addAll(objectsToRemove);
+ disabledNameSpaces.addAll(modulesToRemove);
}
public void handleEvent(Event event) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkFunction.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkFunction.java
index 6a1aadf78c..80d8c40ef4 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkFunction.java
@@ -54,8 +54,8 @@ public abstract class SkylarkFunction extends AbstractFunction {
*/
public void configure(SkylarkBuiltin annotation) {
Preconditions.checkState(!configured);
- Preconditions.checkArgument(getName().equals(annotation.name()),
- getName() + " != " + annotation.name());
+ Preconditions.checkArgument(
+ getName().equals(annotation.name()), "%s != %s", getName(), annotation.name());
mandatoryParamNum = 0;
ImmutableList.Builder<String> paramListBuilder = ImmutableList.builder();
ImmutableMap.Builder<String, SkylarkBuiltin.Param> paramTypeBuilder = ImmutableMap.builder();
@@ -97,12 +97,11 @@ public abstract class SkylarkFunction extends AbstractFunction {
FuncallExpression ast,
Environment env)
throws EvalException, InterruptedException {
-
- Preconditions.checkState(configured, "Function " + getName() + " was not configured");
+ Preconditions.checkState(configured, "Function %s was not configured", getName());
try {
ImmutableMap.Builder<String, Object> arguments = new ImmutableMap.Builder<>();
if (objectType != null && !FuncallExpression.isNamespace(objectType)) {
- args = new ArrayList<Object>(args); // args immutable, get a mutable copy.
+ args = new ArrayList<>(args); // args immutable, get a mutable copy.
arguments.put("self", args.remove(0));
}
@@ -156,7 +155,7 @@ public abstract class SkylarkFunction extends AbstractFunction {
private void checkTypeAndAddArg(String paramName, Object value,
ImmutableMap.Builder<String, Object> arguments, Location loc) throws EvalException {
SkylarkBuiltin.Param param = parameterTypes.get(paramName);
- if (param.callbackEnabled() && Function.class.isAssignableFrom(value.getClass())) {
+ if (param.callbackEnabled() && value instanceof Function) {
// If we pass a function as an argument we trust the Function implementation with the type
// check. It's OK since the function needs to be called manually anyway.
arguments.put(paramName, value);
@@ -255,9 +254,7 @@ public abstract class SkylarkFunction extends AbstractFunction {
public static <KEY_TYPE, VALUE_TYPE> ImmutableMap<KEY_TYPE, VALUE_TYPE> toMap(
Iterable<Map.Entry<KEY_TYPE, VALUE_TYPE>> obj) {
ImmutableMap.Builder<KEY_TYPE, VALUE_TYPE> builder = ImmutableMap.builder();
- for (Map.Entry<KEY_TYPE, VALUE_TYPE> entry : obj) {
- builder.put(entry.getKey(), entry.getValue());
- }
+ builder.putAll(obj);
return builder.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java
index 5ba7f4d3cc..d946454c36 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkNestedSet.java
@@ -98,7 +98,7 @@ public final class SkylarkNestedSet implements Iterable<Object> {
this.contentType = Preconditions.checkNotNull(contentType, "type cannot be null");
// Initializing the real nested set
- NestedSetBuilder<Object> builder = new NestedSetBuilder<Object>(order);
+ NestedSetBuilder<Object> builder = new NestedSetBuilder<>(order);
builder.addAll(items);
try {
for (NestedSet<Object> nestedSet : transitiveItems) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java
index f6cde1241a..d259898c37 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkType.java
@@ -369,7 +369,7 @@ public abstract class SkylarkType {
return argType;
}
@Override public String toString() {
- return genericType.toString() + " of " + argType.toString() + "s";
+ return genericType + " of " + argType + "s";
}
private static Interner<Combination> combinationInterner =
@@ -549,7 +549,7 @@ public abstract class SkylarkType {
public boolean contains(Object value) {
// This returns true a bit too much, but it looks
- return Function.class.isAssignableFrom(value.getClass());
+ return value instanceof Function;
}
public static SkylarkFunctionType of(String name) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
index 98d5045800..2193f36c44 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
@@ -27,11 +27,7 @@ public final class StringLiteral extends Literal<String> {
@Override
public String toString() {
- return new StringBuilder()
- .append(quoteChar)
- .append(value.replace(Character.toString(quoteChar), "\\" + quoteChar))
- .append(quoteChar)
- .toString();
+ return quoteChar + value.replace(Character.toString(quoteChar), "\\" + quoteChar) + quoteChar;
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java b/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java
index 372802de7d..ae25c4f8dc 100644
--- a/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java
@@ -167,7 +167,7 @@ public final class CommandBuilder {
public Command build() {
Preconditions.checkState(system != OS.UNKNOWN, "Unidentified operating system");
Preconditions.checkNotNull(workingDir, "Working directory must be set");
- Preconditions.checkState(argv.size() > 0, "At least one argument is expected");
+ Preconditions.checkState(!argv.isEmpty(), "At least one argument is expected");
return new Command(
system == OS.WINDOWS ? transformArgvForWindows() : transformArgvForLinux(),
diff --git a/src/main/java/com/google/devtools/build/lib/util/CompactStringIndexer.java b/src/main/java/com/google/devtools/build/lib/util/CompactStringIndexer.java
index 698758dba6..84e3c518df 100644
--- a/src/main/java/com/google/devtools/build/lib/util/CompactStringIndexer.java
+++ b/src/main/java/com/google/devtools/build/lib/util/CompactStringIndexer.java
@@ -333,7 +333,7 @@ public class CompactStringIndexer extends AbstractIndexer {
contentOffset = VarInt.getVarInt(content, contentOffset, intHolder); // key length
int skyKeyLen = intHolder[0];
int remainingKeyLen = key.length - offset;
- int minKeyLen = remainingKeyLen > skyKeyLen ? skyKeyLen : remainingKeyLen;
+ int minKeyLen = Math.min(skyKeyLen, remainingKeyLen);
// Compare given key/offset content with the node key. Skip first key byte for recursive
// calls - this byte is equal to the byte in the jump entry and was already compared.
@@ -536,7 +536,7 @@ public class CompactStringIndexer extends AbstractIndexer {
public synchronized String toString() {
StringBuilder builder = new StringBuilder();
builder.append("size = ").append(nodes.size()).append("\n");
- if (nodes.size() > 0) {
+ if (!nodes.isEmpty()) {
int contentSize = dumpContent(builder, rootId, 0, new boolean[nodes.size()]);
builder.append("contentSize = ").append(contentSize).append("\n");
}
diff --git a/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java b/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java
index 11bf94f547..0ccc868519 100644
--- a/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java
@@ -35,7 +35,7 @@ public final class OptionsUtils {
* shell-escaped.
*/
public static String asShellEscapedString(Iterable<UnparsedOptionValueDescription> optionsList) {
- StringBuffer result = new StringBuffer();
+ StringBuilder result = new StringBuilder();
for (UnparsedOptionValueDescription option : optionsList) {
if (option.isHidden()) {
continue;
@@ -139,7 +139,7 @@ public final class OptionsUtils {
public List<PathFragment> convert(String input) {
List<PathFragment> list = new ArrayList<>();
for (String piece : input.split(":")) {
- if (!piece.equals("")) {
+ if (!piece.isEmpty()) {
list.add(new PathFragment(piece));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/util/Pair.java b/src/main/java/com/google/devtools/build/lib/util/Pair.java
index a377c3c20f..dd48d2b5e6 100644
--- a/src/main/java/com/google/devtools/build/lib/util/Pair.java
+++ b/src/main/java/com/google/devtools/build/lib/util/Pair.java
@@ -29,7 +29,7 @@ public final class Pair<A, B> {
* Creates a new pair containing the given elements in order.
*/
public static <A, B> Pair<A, B> of(@Nullable A first, @Nullable B second) {
- return new Pair<A, B>(first, second);
+ return new Pair<>(first, second);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/util/PersistentMap.java b/src/main/java/com/google/devtools/build/lib/util/PersistentMap.java
index 7fd4b6d912..123d1cf365 100644
--- a/src/main/java/com/google/devtools/build/lib/util/PersistentMap.java
+++ b/src/main/java/com/google/devtools/build/lib/util/PersistentMap.java
@@ -368,9 +368,9 @@ public abstract class PersistentMap<K, V> extends ForwardingMap<K, V> {
* @throws IOException
*/
private void saveEntries(Map<K, V> map, Path mapFile) throws IOException {
- DataOutputStream out = createMapFile(mapFile);
- writeEntries(out, map);
- out.close();
+ try (DataOutputStream out = createMapFile(mapFile)) {
+ writeEntries(out, map);
+ }
}
/**
@@ -436,7 +436,7 @@ public abstract class PersistentMap<K, V> extends ForwardingMap<K, V> {
private boolean hasEntries(DataInputStream in, boolean failFast) throws IOException {
if (in.available() <= 0) {
return false;
- } else if (!(in.readUnsignedByte() == ENTRY_MAGIC)) {
+ } else if (in.readUnsignedByte() != ENTRY_MAGIC) {
if (failFast) {
throw new IOException("Corrupted entry separator");
} else {
diff --git a/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java b/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java
index 44c1112d61..57cc5fe85f 100644
--- a/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java
+++ b/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java
@@ -47,7 +47,7 @@ public class ProcMeminfoParser {
List<String> lines = Files.readLines(new File(fileName), Charset.defaultCharset());
ImmutableMap.Builder<String, Long> builder = ImmutableMap.builder();
for (String line : lines) {
- int colon = line.indexOf(":");
+ int colon = line.indexOf(':');
String keyword = line.substring(0, colon);
String valString = line.substring(colon + 1);
try {
diff --git a/src/main/java/com/google/devtools/build/lib/util/RegexFilter.java b/src/main/java/com/google/devtools/build/lib/util/RegexFilter.java
index d7c6834ad5..46aace35cf 100644
--- a/src/main/java/com/google/devtools/build/lib/util/RegexFilter.java
+++ b/src/main/java/com/google/devtools/build/lib/util/RegexFilter.java
@@ -95,7 +95,7 @@ public class RegexFilter implements Serializable {
* Converts list of regex expressions into one compiled regex expression.
*/
private static Pattern convertRegexListToPattern(List<String> regexList) {
- if (regexList.size() == 0) {
+ if (regexList.isEmpty()) {
return null;
}
// Wrap each individual regex in the independent group, combine them using '|' and
diff --git a/src/main/java/com/google/devtools/build/lib/util/ResourceUsage.java b/src/main/java/com/google/devtools/build/lib/util/ResourceUsage.java
index 55807f2395..868bf7cdb5 100644
--- a/src/main/java/com/google/devtools/build/lib/util/ResourceUsage.java
+++ b/src/main/java/com/google/devtools/build/lib/util/ResourceUsage.java
@@ -213,9 +213,7 @@ public final class ResourceUsage {
long token13 = Long.parseLong(stat.next());
long token14 = Long.parseLong(stat.next());
return new long[] { token13, token14 };
- } catch (NumberFormatException e) {
- return new long[2];
- } catch (IOException e) {
+ } catch (NumberFormatException | IOException e) {
return new long[2];
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/util/StringUtil.java b/src/main/java/com/google/devtools/build/lib/util/StringUtil.java
index 40f7ec14e1..b24742c2cb 100644
--- a/src/main/java/com/google/devtools/build/lib/util/StringUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/util/StringUtil.java
@@ -80,7 +80,7 @@ public class StringUtil {
if (in == null) {
return result;
}
- for (String val : Splitter.on(" ").omitEmptyStrings().split(in)) {
+ for (String val : Splitter.on(' ').omitEmptyStrings().split(in)) {
// Note that splitter returns a substring(), effectively
// retaining the entire "in" String. Make an explicit copy here
// to avoid that memory pitfall. Further, because there may be
diff --git a/src/main/java/com/google/devtools/build/lib/util/StringUtilities.java b/src/main/java/com/google/devtools/build/lib/util/StringUtilities.java
index 9ac1d35696..62b2afd5e9 100644
--- a/src/main/java/com/google/devtools/build/lib/util/StringUtilities.java
+++ b/src/main/java/com/google/devtools/build/lib/util/StringUtilities.java
@@ -114,7 +114,7 @@ public class StringUtilities {
int index = 0;
while ((index = input.indexOf(literal, start)) >= 0) {
- result.append(input.substring(start, index));
+ result.append(input, start, index);
result.append(replacement);
start = index + literalLength;
}
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
index 9d4160981c..87658ca4c1 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
@@ -288,7 +288,7 @@ public abstract class FileSystem {
}
if (linkTarget.isAbsolute()) { dir = rootPath; }
for (String name : linkTarget.segments()) {
- if (name.equals(".") || name.equals("")) {
+ if (name.equals(".") || name.isEmpty()) {
// no-op
} else if (name.equals("..")) {
Path parent = dir.getParentDirectory();
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java b/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java
index bc55032623..c3d7787cd1 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java
@@ -276,7 +276,7 @@ public class FileSystemUtils {
* ("libfoo", "-src") ==> "libfoo-src"
*/
private static String appendWithoutExtension(String name, String toAppend) {
- int dotIndex = name.lastIndexOf(".");
+ int dotIndex = name.lastIndexOf('.');
if (dotIndex > 0) {
String baseName = name.substring(0, dotIndex);
String extension = name.substring(dotIndex);
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/Path.java b/src/main/java/com/google/devtools/build/lib/vfs/Path.java
index de222fe0dc..dd1602420f 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/Path.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/Path.java
@@ -221,7 +221,7 @@ public class Path implements Comparable<Path>, Serializable {
synchronized(this) {
if (children == null) {
// 66% of Paths have size == 1, 80% <= 2
- children = new IdentityHashMap<String, Reference<Path>>(1);
+ children = new IdentityHashMap<>(1);
}
Reference<Path> childRef = children.get(childName);
Path child;
@@ -550,7 +550,7 @@ public class Path implements Comparable<Path>, Serializable {
* @precondition segment contains no slashes.
*/
private Path getCanonicalPath(String segment) {
- if (segment.equals(".") || segment.equals("")) {
+ if (segment.equals(".") || segment.isEmpty()) {
return this; // that's a noop
} else if (segment.equals("..")) {
// root's parent is root, when canonicalising:
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java b/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java
index 8336dc49da..7587a122df 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java
@@ -309,19 +309,22 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl
int segmentCount = 0;
for (String segment : segments) {
- if (segment.equals(".")) {
- // Just discard it
- } else if (segment.equals("..")) {
- if (segmentCount > 0 && !scratchSegments[segmentCount - 1].equals("..")) {
- // Remove the last segment, if there is one and it is not "..". This
- // means that the resulting PathFragment can still contain ".."
- // segments at the beginning.
- segmentCount--;
- } else {
+ switch (segment) {
+ case ".":
+ // Just discard it
+ break;
+ case "..":
+ if (segmentCount > 0 && !scratchSegments[segmentCount - 1].equals("..")) {
+ // Remove the last segment, if there is one and it is not "..". This
+ // means that the resulting PathFragment can still contain ".."
+ // segments at the beginning.
+ segmentCount--;
+ } else {
+ scratchSegments[segmentCount++] = segment;
+ }
+ break;
+ default:
scratchSegments[segmentCount++] = segment;
- }
- } else {
- scratchSegments[segmentCount++] = segment;
}
}
@@ -374,8 +377,7 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl
public PathFragment getChild(String baseName) {
FileSystemUtils.checkBaseName(baseName);
baseName = StringCanonicalizer.intern(baseName);
- String[] newSegments = new String[segments.length + 1];
- System.arraycopy(segments, 0, newSegments, 0, segments.length);
+ String[] newSegments = Arrays.copyOf(segments, segments.length + 1);
newSegments[newSegments.length - 1] = baseName;
return new PathFragment(driveLetter, isAbsolute, newSegments);
}
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/ReadonlyFileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/ReadonlyFileSystem.java
index fc668db87a..2b275f61bc 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/ReadonlyFileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/ReadonlyFileSystem.java
@@ -40,7 +40,7 @@ public abstract class ReadonlyFileSystem extends FileSystem {
protected IOException modificationException() {
String longname = this.getClass().getName();
- String shortname = longname.substring(longname.lastIndexOf(".") + 1);
+ String shortname = longname.substring(longname.lastIndexOf('.') + 1);
return new IOException(
shortname + " does not support mutating operations");
}
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java b/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java
index c753aa6e1d..d382f169bf 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java
@@ -111,6 +111,6 @@ public class RootedPath implements Serializable {
@Override
public String toString() {
- return "[" + root.toString() + "]/[" + relativePath.toString() + "]";
+ return "[" + root + "]/[" + relativePath + "]";
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/UnionFileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/UnionFileSystem.java
index b349b53513..d2d9c00096 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/UnionFileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/UnionFileSystem.java
@@ -88,7 +88,7 @@ public class UnionFileSystem extends FileSystem {
"please use the rootFileSystem argument instead.");
this.readOnly = readOnly;
- this.pathDelegate = new StringTrie<FileSystem>();
+ this.pathDelegate = new StringTrie<>();
for (Map.Entry<PathFragment, FileSystem> prefix : prefixMapping.entrySet()) {
FileSystem delegate = prefix.getValue();
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/UnixGlob.java b/src/main/java/com/google/devtools/build/lib/vfs/UnixGlob.java
index d512abcd25..441571ef3d 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/UnixGlob.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/UnixGlob.java
@@ -33,7 +33,6 @@ import com.google.devtools.build.lib.profiler.ProfilerTask;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -135,8 +134,7 @@ public final class UnixGlob {
}
private static boolean excludedOnMatch(Path path, List<String[]> excludePatterns,
- int idx, Cache<String, Pattern> cache,
- Predicate<Path> dirPred) {
+ int idx, Cache<String, Pattern> cache) {
for (String[] excludePattern : excludePatterns) {
String text = path.getBaseName();
if (idx == excludePattern.length
@@ -300,9 +298,9 @@ public final class UnixGlob {
return path.statNullable(symlinks);
}
};
-
+
public static final AtomicReference<FilesystemCalls> DEFAULT_SYSCALLS_REF =
- new AtomicReference<FilesystemCalls>(DEFAULT_SYSCALLS);
+ new AtomicReference<>(DEFAULT_SYSCALLS);
public static Builder forPath(Path path) {
return new Builder(path);
@@ -350,9 +348,7 @@ public final class UnixGlob {
* <p>For a description of the syntax of the patterns, see {@link UnixGlob}.
*/
public Builder addPatterns(String... patterns) {
- for (String pattern : patterns) {
- this.patterns.add(pattern);
- }
+ Collections.addAll(this.patterns, patterns);
return this;
}
@@ -382,7 +378,7 @@ public final class UnixGlob {
* <p>For a description of the syntax of the patterns, see {@link UnixGlob}.
*/
public Builder addExcludes(String... excludes) {
- this.excludes.addAll(Arrays.asList(excludes));
+ Collections.addAll(this.excludes, excludes);
return this;
}
@@ -708,7 +704,7 @@ public final class UnixGlob {
if (idx == patternParts.length) { // Base case.
if (!(excludeDirectories && baseIsDir) &&
- !excludedOnMatch(base, excludePatterns, excludeIdx, cache, dirPred)) {
+ !excludedOnMatch(base, excludePatterns, excludeIdx, cache)) {
results.add(base);
}
@@ -774,7 +770,7 @@ public final class UnixGlob {
} else {
// Instead of using an async call, just repeat the base case above.
if (idx + 1 == patternParts.length &&
- !excludedOnMatch(child, relevantExcludes, excludeIdx + 1, cache, dirPred)) {
+ !excludedOnMatch(child, relevantExcludes, excludeIdx + 1, cache)) {
results.add(child);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/webstatusserver/IndexPageHandler.java b/src/main/java/com/google/devtools/build/lib/webstatusserver/IndexPageHandler.java
index c9eb3ed85b..acab0be927 100644
--- a/src/main/java/com/google/devtools/build/lib/webstatusserver/IndexPageHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/webstatusserver/IndexPageHandler.java
@@ -25,10 +25,10 @@ import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
-
/**
* Handlers for displaying the index page of server.
*
@@ -73,9 +73,9 @@ public class IndexPageHandler {
}
String serializedResponse = response.toString();
exchange.sendResponseHeaders(200, serializedResponse.length());
- OutputStream os = exchange.getResponseBody();
- os.write(serializedResponse.getBytes());
- os.close();
+ try (OutputStream os = exchange.getResponseBody()) {
+ os.write(serializedResponse.getBytes(StandardCharsets.UTF_8));
+ }
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/webstatusserver/StaticResourceHandler.java b/src/main/java/com/google/devtools/build/lib/webstatusserver/StaticResourceHandler.java
index cd9eb5f845..1789bbf52a 100644
--- a/src/main/java/com/google/devtools/build/lib/webstatusserver/StaticResourceHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/webstatusserver/StaticResourceHandler.java
@@ -26,6 +26,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.util.List;
/**
@@ -64,9 +65,9 @@ public class StaticResourceHandler implements HttpHandler {
public void handle(HttpExchange exchange) throws IOException {
exchange.getResponseHeaders().put("Content-Type", contentType);
exchange.sendResponseHeaders(httpCode, response.length());
- OutputStream os = exchange.getResponseBody();
- os.write(response.getBytes());
- os.close();
+ try (OutputStream os = exchange.getResponseBody()) {
+ os.write(response.getBytes(StandardCharsets.UTF_8));
+ }
}
public static InputStream loadFromAbsolutePath(Class<?> loadingClass, String path)
diff --git a/src/main/java/com/google/devtools/build/lib/webstatusserver/TestStatusHandler.java b/src/main/java/com/google/devtools/build/lib/webstatusserver/TestStatusHandler.java
index 41cb06d029..3d1357eab2 100644
--- a/src/main/java/com/google/devtools/build/lib/webstatusserver/TestStatusHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/webstatusserver/TestStatusHandler.java
@@ -29,6 +29,7 @@ import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.Map.Entry;
@@ -85,9 +86,9 @@ class TestStatusHandler {
String serializedResponse = response.toString();
exchange.sendResponseHeaders(200, serializedResponse.length());
- OutputStream os = exchange.getResponseBody();
- os.write(serializedResponse.getBytes());
- os.close();
+ try (OutputStream os = exchange.getResponseBody()) {
+ os.write(serializedResponse.getBytes(StandardCharsets.UTF_8));
+ }
}
}
@@ -112,9 +113,9 @@ class TestStatusHandler {
String serializedResponse = response.toString();
exchange.sendResponseHeaders(200, serializedResponse.length());
- OutputStream os = exchange.getResponseBody();
- os.write(serializedResponse.getBytes());
- os.close();
+ try (OutputStream os = exchange.getResponseBody()) {
+ os.write(serializedResponse.getBytes(StandardCharsets.UTF_8));
+ }
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusBuildLog.java b/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusBuildLog.java
index 86eed8835e..69c07e0b0f 100644
--- a/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusBuildLog.java
+++ b/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusBuildLog.java
@@ -47,8 +47,8 @@ public class WebStatusBuildLog {
private boolean complete = false;
private static final Logger LOG =
Logger.getLogger(WebStatusEventCollector.class.getCanonicalName());
- private Map<String, JsonElement> commandInfo = new HashMap<String, JsonElement>();
- private Map<String, JsonObject> testCases = new HashMap<String, JsonObject>();
+ private Map<String, JsonElement> commandInfo = new HashMap<>();
+ private Map<String, JsonObject> testCases = new HashMap<>();
private long startTime;
private ImmutableList<String> targetList;
private UUID commandId;
diff --git a/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusServerModule.java b/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusServerModule.java
index 13d4c8be91..507eaa590f 100644
--- a/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusServerModule.java
+++ b/src/main/java/com/google/devtools/build/lib/webstatusserver/WebStatusServerModule.java
@@ -33,6 +33,7 @@ import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
+import java.nio.charset.StandardCharsets;
import java.util.LinkedList;
import java.util.UUID;
import java.util.logging.Logger;
@@ -146,9 +147,9 @@ public class WebStatusServerModule extends BlazeModule {
public void handle(HttpExchange exchange) throws IOException {
exchange.getResponseHeaders().put("Content-Type", ImmutableList.of("text/plain"));
exchange.sendResponseHeaders(200, response.length());
- OutputStream os = exchange.getResponseBody();
- os.write(response.getBytes());
- os.close();
+ try (OutputStream os = exchange.getResponseBody()) {
+ os.write(response.getBytes(StandardCharsets.UTF_8));
+ }
}
}