Fix minor code issues flagged by error prone
The review of this PR hightlighted a few points about following the advice of the linter
- any advice about changing default character encoding to an explicit one is incorrect for Bazel
- we should generally not expand the potential text of an exception to include more data. That may adversely increase the amount of logging output.
In general, the only linter suggestion which should be followed without careful inspection are those that can not possibly modify behavior.
Closes #11542.
Change-Id: I0162f5e6c13a52af1a6d5bcb06d826371b6ebcc7
PiperOrigin-RevId: 320237874
diff --git a/src/java_tools/singlejar/java/com/google/devtools/build/zip/ZipFileEntry.java b/src/java_tools/singlejar/java/com/google/devtools/build/zip/ZipFileEntry.java
index ed981f4..e3d6585 100644
--- a/src/java_tools/singlejar/java/com/google/devtools/build/zip/ZipFileEntry.java
+++ b/src/java_tools/singlejar/java/com/google/devtools/build/zip/ZipFileEntry.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.zip;
import java.util.EnumSet;
-
import javax.annotation.Nullable;
/**
@@ -320,12 +319,11 @@
* @param set whether the flag is to be set or cleared
*/
public void setFlag(Flag flag, boolean set) {
- short mask = 0x0000;
- mask |= 1 << flag.getBit();
+ short mask = (short) (1 << flag.getBit());
if (set) {
flags |= mask;
} else {
- flags &= ~mask;
+ flags = (short) (flags & ~mask);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 52ff3fc..6cd3a44 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -660,9 +660,8 @@
return factoryMapBuilder.build();
}
- /**
- * Returns the set of configuration fragments provided by this module.
- */
+ /** Returns the set of configuration fragments provided by this module. */
+ @Override
public ImmutableList<ConfigurationFragmentFactory> getConfigurationFragments() {
return configurationFragmentFactories;
}
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 aee05d6..fca3374 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
@@ -483,8 +483,11 @@
}
@Nullable
- protected <T extends Fragment> T getFragment(Class<T> fragment, String name,
- String additionalErrorMessage, ConfigurationTransition transition) {
+ <T extends Fragment> T getFragment(
+ Class<T> fragment,
+ String name,
+ String additionalErrorMessage,
+ ConfigurationTransition transition) {
// TODO(bazel-team): The fragments can also be accessed directly through BuildConfiguration.
// Can we lock that down somehow?
Preconditions.checkArgument(isLegalFragment(fragment, transition),
@@ -708,6 +711,7 @@
* configuration. The choice of which tree to use is based on the rule with which this target
* (which must be an OutputFile or a Rule) is associated.
*/
+ @Override
public ArtifactRoot getBinOrGenfilesDirectory() {
return rule.hasBinaryOutput()
? getConfiguration().getBinDirectory(rule.getRepository())
@@ -1508,12 +1512,12 @@
}
/**
- * Returns a path fragment qualified by the rule name and unique fragment to
- * disambiguate artifacts produced from the source file appearing in
- * multiple rules.
+ * Returns a path fragment qualified by the rule name and unique fragment to disambiguate
+ * artifacts produced from the source file appearing in multiple rules.
*
* <p>For example "pkg/dir/name" -> "pkg/<fragment>/rule/dir/name.
*/
+ @Override
public final PathFragment getUniqueDirectory(PathFragment fragment) {
return AnalysisUtils.getUniqueDirectory(getLabel(), fragment);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
index 9c7cadd..4124659 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
@@ -94,7 +94,7 @@
@VisibleForSerialization
@AutoCodec.Instantiator
- protected SymlinkAction(
+ SymlinkAction(
ActionOwner owner,
PathFragment inputPath,
Artifact primaryInput,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java
index e79c179..c0b7fa6 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java
@@ -112,6 +112,7 @@
}
/** Format this provider as its label. */
+ @Override
public String toString() {
return label.toString();
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/coverage/CoverageReportActionBuilder.java b/src/main/java/com/google/devtools/build/lib/bazel/coverage/CoverageReportActionBuilder.java
index 2c4110d..0fcafd7 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/coverage/CoverageReportActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/coverage/CoverageReportActionBuilder.java
@@ -105,7 +105,7 @@
private final String locationMessage;
private final RunfilesSupplier runfilesSupplier;
- protected CoverageReportAction(
+ CoverageReportAction(
ActionOwner owner,
NestedSet<Artifact> inputs,
ImmutableSet<Artifact> outputs,
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryResolvedEvent.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryResolvedEvent.java
index ea08824..52952dc 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryResolvedEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryResolvedEvent.java
@@ -188,12 +188,14 @@
}
/** Return the entry for the given rule invocation in a format suitable for WORKSPACE.resolved. */
+ @Override
public Object getResolvedInformation() {
finalizeResolvedInformation();
return resolvedInformation;
}
/** Return the name of the rule that produced the resolvedInformation */
+ @Override
public String getName() {
return name;
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceUploaderCommands.java b/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceUploaderCommands.java
index 4934284..7b47725 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceUploaderCommands.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceUploaderCommands.java
@@ -131,6 +131,7 @@
return localFileUpload;
}
+ @Override
public long getSequenceNumber() {
return sequenceNumber;
}
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java
index e50cd62..964c5ad 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java
@@ -242,8 +242,8 @@
/**
* Determines how, if it all, the evaluation of this TBD pattern with a directory exclusion of the
- * given TBD {@containedPattern}'s directory relates to the evaluation of the subtraction of the
- * given {@link containedPattern} from this one.
+ * given TBD {@code containedPattern}'s directory relates to the evaluation of the subtraction of
+ * the given {@code containedPattern} from this one.
*/
public ContainsTBDForTBDResult containsTBDForTBD(TargetPattern containedPattern) {
if (containedPattern.getType() != Type.TARGETS_BELOW_DIRECTORY) {
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 bb97a09..1e51665 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
@@ -844,7 +844,7 @@
* connected component with this one, then send a passed-in {@link Digraph.NodeSetReceiver} this
* component.
*/
- private class SccVisitor<T2> {
+ private static class SccVisitor<T2> {
// Nodes already assigned to a strongly connected component.
private final Set<Node<T2>> assigned = new HashSet<>();
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkContext.java b/src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkContext.java
index 05c7f00..7a318c5 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkContext.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkContext.java
@@ -104,10 +104,10 @@
}
/**
- * Returns a map of {@code RepositoryName}s where the keys are repository names that are
- * written in the BUILD files and the values are new repository names chosen by the main
- * repository.
+ * Returns a map of {@code RepositoryName}s where the keys are repository names that are written
+ * in the BUILD files and the values are new repository names chosen by the main repository.
*/
+ @Override
public ImmutableMap<RepositoryName, RepositoryName> getRepoMapping() {
return repoMapping;
}
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 25e053a..ee1e8c0 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
@@ -212,7 +212,7 @@
return null;
}
Rule rule = (Rule) target;
- return (rule.isAttrDefined("deprecation", Type.STRING))
+ return rule.isAttrDefined("deprecation", Type.STRING)
? NonconfigurableAttributeMapper.of(rule).get("deprecation", Type.STRING)
: null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java
index d10ab5f..19d3748 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java
@@ -251,6 +251,7 @@
eventHandler, cqueryOptions, out, skyframeExecutor, accessor));
}
+ @Override
public String getOutputFormat() {
return cqueryOptions.outputFormat;
}
diff --git a/src/main/java/com/google/devtools/build/lib/remote/downloader/GrpcRemoteDownloader.java b/src/main/java/com/google/devtools/build/lib/remote/downloader/GrpcRemoteDownloader.java
index 81ccf51..6401d1d 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/downloader/GrpcRemoteDownloader.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/downloader/GrpcRemoteDownloader.java
@@ -196,6 +196,6 @@
authHeadersJson.add(entry.getKey(), entry.getValue());
}
- return (new Gson()).toJson(authHeadersJson);
+ return new Gson().toJson(authHeadersJson);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/remote/http/DownloadCommand.java b/src/main/java/com/google/devtools/build/lib/remote/http/DownloadCommand.java
index 643c45d..a2e4abf 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/http/DownloadCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/http/DownloadCommand.java
@@ -26,7 +26,7 @@
private final Digest digest;
private final OutputStream out;
- protected DownloadCommand(URI uri, boolean casDownload, Digest digest, OutputStream out) {
+ DownloadCommand(URI uri, boolean casDownload, Digest digest, OutputStream out) {
this.uri = Preconditions.checkNotNull(uri);
this.casDownload = casDownload;
this.digest = Preconditions.checkNotNull(digest);
diff --git a/src/main/java/com/google/devtools/build/lib/remote/http/UploadCommand.java b/src/main/java/com/google/devtools/build/lib/remote/http/UploadCommand.java
index 72373cd7..2d88711 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/http/UploadCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/http/UploadCommand.java
@@ -26,8 +26,7 @@
private final InputStream data;
private final long contentLength;
- protected UploadCommand(
- URI uri, boolean casUpload, String hash, InputStream data, long contentLength) {
+ UploadCommand(URI uri, boolean casUpload, String hash, InputStream data, long contentLength) {
this.uri = Preconditions.checkNotNull(uri);
this.casUpload = casUpload;
this.hash = Preconditions.checkNotNull(hash);
diff --git a/src/main/java/com/google/devtools/build/lib/remote/merkletree/DirectoryTree.java b/src/main/java/com/google/devtools/build/lib/remote/merkletree/DirectoryTree.java
index 09bc166..43e4515 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/merkletree/DirectoryTree.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/merkletree/DirectoryTree.java
@@ -147,7 +147,7 @@
private final Map<PathFragment, DirectoryNode> tree;
private final int numFiles;
- protected DirectoryTree(Map<PathFragment, DirectoryNode> tree, int numFiles) {
+ DirectoryTree(Map<PathFragment, DirectoryNode> tree, int numFiles) {
Preconditions.checkState(numFiles >= 0, "numFiles must gte 0");
this.tree = Preconditions.checkNotNull(tree, "tree");
this.numFiles = numFiles;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java
index e48af69..96fac22 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java
@@ -549,10 +549,10 @@
}
/**
- * @return all declared headers of the current module if the current target
- * is compiled as a module.
+ * @return all declared headers of the current module if the current target is compiled as a
+ * module.
*/
- protected Set<Artifact> getHeaderModuleSrcs() {
+ ImmutableSet<Artifact> getHeaderModuleSrcs() {
return new ImmutableSet.Builder<Artifact>()
.addAll(headerInfo.modularPublicHeaders)
.addAll(headerInfo.modularPrivateHeaders)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index 40c4e14..5c6f23b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -646,6 +646,7 @@
return toolchainFeatures;
}
+ @Override
public Label getCcToolchainLabel() {
return ccToolchainLabel;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
index 6dddad1..f64065b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
@@ -16,6 +16,7 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.CommandLine;
import com.google.devtools.build.lib.actions.CommandLineExpansionException;
@@ -28,7 +29,6 @@
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import javax.annotation.Nullable;
/** The compile command line for the C++ compile action. */
@@ -65,7 +65,7 @@
}
/** Returns the environment variables that should be set for C++ compile actions. */
- protected Map<String, String> getEnvironment() throws CommandLineExpansionException {
+ ImmutableMap<String, String> getEnvironment() throws CommandLineExpansionException {
try {
return featureConfiguration.getEnvironmentVariables(actionName, variables);
} catch (ExpansionException e) {
@@ -87,7 +87,7 @@
* @param overwrittenVariables: Variables that will overwrite original build variables. When null,
* unmodified original variables are used.
*/
- protected List<String> getArguments(
+ List<String> getArguments(
@Nullable PathFragment parameterFilePath, @Nullable CcToolchainVariables overwrittenVariables)
throws CommandLineExpansionException {
List<String> commandLine = new ArrayList<>();
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 033be5e..1f676ca 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
@@ -197,6 +197,7 @@
return ArtifactCategory.DYNAMIC_LIBRARY;
}
+ @Override
public Artifact getArtifact() {
return solibSymlinkArtifact;
}
@@ -352,6 +353,7 @@
return category;
}
+ @Override
public Artifact getArtifact() {
return libraryArtifact;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
index 393bf1b..84fa111 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
@@ -860,7 +860,7 @@
* the current rule
* @return the Artifact to create with the Action
*/
- protected static Artifact createIjarAction(
+ static Artifact createIjarAction(
RuleContext ruleContext,
JavaToolchainProvider javaToolchain,
Artifact inputJar,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
index c29aa51..02103dc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
@@ -35,7 +35,7 @@
/** Common attributes for rules that depend on ijar. */
public static final class IjarBaseRule implements RuleDefinition {
-
+ @Override
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
return builder.setPreferredDependencyPredicate(JavaSemantics.JAVA_SOURCE).build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
index 8ddd414..3d8b201 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
@@ -88,7 +88,7 @@
// TODO(katre): When all external callers are converted to use toolchain resolution, make this
// method private.
@Nullable
- protected static JavaRuntimeInfo from(
+ static JavaRuntimeInfo from(
TransitiveInfoCollection collection, RuleErrorConsumer errorConsumer) {
return (JavaRuntimeInfo) collection.get(ToolchainInfo.PROVIDER);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
index 2c2b3fb..a224fda 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
@@ -289,6 +289,7 @@
}
/** Returns the {@link Artifact} of the SingleJar deploy jar */
+ @Override
public Artifact getSingleJar() {
return singleJar;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
index 49ede6a..c960fdf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
@@ -564,7 +564,7 @@
}
}
- private class RepositoryFetching implements FetchProgress {
+ private static class RepositoryFetching implements FetchProgress {
final String id;
final boolean finished;
final String message;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedHashesFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedHashesFunction.java
index cee76b1..d918973 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedHashesFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedHashesFunction.java
@@ -16,7 +16,6 @@
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionException;
@@ -92,10 +91,4 @@
public String extractTag(SkyKey skyKey) {
return null;
}
-
- private static final class ResolvedHashesFunctionException extends SkyFunctionException {
- ResolvedHashesFunctionException(BuildFileContainsErrorsException e) {
- super(e, SkyFunctionException.Transience.PERSISTENT);
- }
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 9a719aa..eeabe46 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -1420,6 +1420,7 @@
(thread, throwable) -> BugReport.handleCrash(throwable, args));
}
+ @Override
public String getProductName() {
return productName;
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java b/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java
index ea210aa..faaaac0 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java
@@ -49,7 +49,7 @@
public static class EventFiltersConverter implements Converter<List<EventKind>> {
/** A converter for event kinds. */
- public class EventKindConverter extends EnumConverter<EventKind> {
+ public static class EventKindConverter extends EnumConverter<EventKind> {
public EventKindConverter(String typeName) {
super(EventKind.class, typeName);
@@ -62,6 +62,7 @@
this.delegate = new CommaSeparatedOptionListConverter();
}
+ @Override
public List<EventKind> convert(String input) throws OptionsParsingException {
if (input.isEmpty()) {
// This method is not called to convert the default value
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 e00efde..62fed84 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
@@ -37,18 +37,20 @@
*
* <p>This class is immutable and thread-safe.
*
- * <p>The use of "shell" in the package name of this class is a misnomer. In terms of the way its
+ * <p>The use of "shell" in the package name of this class is a misnomer. In terms of the way its
* arguments are interpreted, this class is closer to {@code execve(2)} than to {@code system(3)}.
* No shell is executed.
*
* <h4>Examples</h4>
*
* <p>The most basic use-case for this class is as follows:
+ *
* <pre>
* String[] args = { "/bin/du", "-s", directory };
* BlazeCommandResult result = new Command(args).execute();
* String output = new String(result.getStdout());
* </pre>
+ *
* which writes the output of the {@code du(1)} command into {@code output}. More complex cases
* might inspect the stderr stream, kill the subprocess asynchronously, feed input to its standard
* input, handle the exceptions thrown if the command fails, or print the termination status (exit
@@ -59,14 +61,14 @@
* <p>A caller can optionally specify bytes to be written to the process's "stdin". The returned
* {@link CommandResult} object gives the caller access to the exit status, as well as output from
* "stdout" and "stderr". To use this class with processes that generate very large amounts of
- * input/output, consider {@link #execute(OutputStream, OutputStream)},
- * {@link #executeAsync(OutputStream, OutputStream)}, or
- * {@link #executeAsync(InputStream, OutputStream, OutputStream, boolean)}.
+ * input/output, consider {@link #execute(OutputStream, OutputStream)}, {@link
+ * #executeAsync(OutputStream, OutputStream)}, or {@link #executeAsync(InputStream, OutputStream,
+ * OutputStream, boolean)}.
*
* <p>This class ensures that stdout and stderr streams are read promptly, avoiding potential
- * deadlock if the output is large. See
- * <a href="http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html"> when
- * <code>Runtime.exec()</code> won't</a>.
+ * deadlock if the output is large. See <a
+ * href="http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html">when <code>Runtime.exec()
+ * </code> won't</a>.
*
* <h4>Caution: Invoking Shell Commands</h4>
*
@@ -76,31 +78,40 @@
* metacharacters, as this poses a correctness and/or security risk.
*
* <p>To execute a shell command directly, use the following pattern:
+ *
* <pre>
* String[] args = { "/bin/sh", "-c", shellCommand };
* BlazeCommandResult result = new Command(args).execute();
* </pre>
+ *
* {@code shellCommand} is a complete Bourne shell program, possibly containing all kinds of
- * unescaped metacharacters. For example, here's a shell command that enumerates the working
+ * unescaped metacharacters. For example, here's a shell command that enumerates the working
* directories of all processes named "foo":
+ *
* <pre>ps auxx | grep foo | awk '{print $1}' |
* while read pid; do readlink /proc/$pid/cwd; done</pre>
+ *
* It is the responsibility of the caller to ensure that this string means what they intend.
*
* <p>Consider the risk posed by allowing the "foo" part of the previous command to be some
* arbitrary (untrusted) string called {@code processName}:
+ *
* <pre>
* // WARNING: unsafe!
* String shellCommand = "ps auxx | grep " + processName + " | awk '{print $1}' | "
* + "while read pid; do readlink /proc/$pid/cwd; done";</pre>
+ *
* </pre>
- * Passing this string to {@link Command} is unsafe because if the string {@processName} contains
- * shell metacharacters, the meaning of the command can be arbitrarily changed; consider:
+ *
+ * Passing this string to {@link Command} is unsafe because if the string {@code processName}
+ * contains shell metacharacters, the meaning of the command can be arbitrarily changed; consider:
+ *
* <pre>String processName = ". ; rm -fr $HOME & ";</pre>
*
* <p>To defend against this possibility, it is essential to properly quote the variable portions of
- * the shell command so that shell metacharacters are escaped. Use {@link ShellUtils#shellEscape}
+ * the shell command so that shell metacharacters are escaped. Use {@link ShellUtils#shellEscape}
* for this purpose:
+ *
* <pre>
* // Safe.
* String shellCommand = "ps auxx | grep " + ShellUtils.shellEscape(processName)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
index 20ce194..9a1ed8f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
@@ -948,6 +948,7 @@
this.state = state;
}
+ @Override
public void run(
Environment env,
Action action,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java
index fef0a70..4997cea 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java
@@ -217,7 +217,7 @@
rootCausesBuilder.addTransitive(e.getRootCauses());
// Prefer a catastrophic exception as the one we propagate.
if (firstActionExecutionException == null
- || !firstActionExecutionException.isCatastrophe() && e.isCatastrophe()) {
+ || (!firstActionExecutionException.isCatastrophe() && e.isCatastrophe())) {
firstActionExecutionException = e;
}
} catch (IOException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java
index 0dcf235..7dd128c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java
@@ -53,7 +53,7 @@
return null;
}
- private class RepositoryMappingFunctionException extends SkyFunctionException {
+ private static class RepositoryMappingFunctionException extends SkyFunctionException {
RepositoryMappingFunctionException() {
super(
new BuildFileContainsErrorsException(LabelConstants.EXTERNAL_PACKAGE_IDENTIFIER),
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
index 2bec043..bc6513a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
@@ -1052,11 +1052,11 @@
* constructed (if the default value can be provided for the new argument in Builder).
*/
public static final class Builder {
- protected PackageFactory pkgFactory;
- protected FileSystem fileSystem;
- protected BlazeDirectories directories;
- protected ActionKeyContext actionKeyContext;
- protected BuildOptions defaultBuildOptions;
+ PackageFactory pkgFactory;
+ FileSystem fileSystem;
+ BlazeDirectories directories;
+ ActionKeyContext actionKeyContext;
+ BuildOptions defaultBuildOptions;
private CrossRepositoryLabelViolationStrategy crossRepositoryLabelViolationStrategy;
private ImmutableList<BuildFileName> buildFilesByPriority;
private ExternalPackageHelper externalPackageHelper;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelStarlarkAspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelStarlarkAspectFunction.java
index cdd49a5..679bfbb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelStarlarkAspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToplevelStarlarkAspectFunction.java
@@ -67,10 +67,8 @@
return null;
}
- /**
- * Exceptions thrown from ToplevelStarlarkAspectFunction.
- */
- public class LoadStarlarkAspectFunctionException extends SkyFunctionException {
+ /** Exceptions thrown from ToplevelStarlarkAspectFunction. */
+ public static class LoadStarlarkAspectFunctionException extends SkyFunctionException {
public LoadStarlarkAspectFunctionException(AspectCreationException cause) {
super(cause, Transience.PERSISTENT);
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunction.java
index cb48178..777d29d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunction.java
@@ -51,7 +51,7 @@
return null;
}
- private class WorkspaceNameFunctionException extends SkyFunctionException {
+ private static class WorkspaceNameFunctionException extends SkyFunctionException {
WorkspaceNameFunctionException() {
super(
new BuildFileContainsErrorsException(LabelConstants.EXTERNAL_PACKAGE_IDENTIFIER),
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java b/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java
index 509b715..0a5d627 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java
@@ -246,7 +246,7 @@
}
/** Returns the string representation of the given element. */
- protected String print(StackFrame element) {
+ String print(StackFrame element) {
// Similar to Python, the first (most-recent) entry in the stack frame is printed only once.
// Consequently, we skip it here.
if (element.getCause() == null) {
@@ -285,10 +285,8 @@
return loc == null ? 0 : loc.line();
}
- /**
- * Adds the given string to the specified Deque.
- */
- protected void addEntry(Deque<String> output, String toAdd) {
+ /** Adds the given string to the specified Deque. */
+ void addEntry(Deque<String> output, String toAdd) {
output.addLast(toAdd);
}
@@ -296,7 +294,7 @@
* Adds the given message to the given output dequeue after all stack trace elements have been
* added.
*/
- protected void addMessage(Deque<String> output, String message) {
+ void addMessage(Deque<String> output, String message) {
output.addFirst("Traceback (most recent call last):");
output.addLast(message);
}
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 53af0f1..4d066fa 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
@@ -242,8 +242,6 @@
*
* <p>ON ENTRY: 'pos' is 1 + the index of the first delimiter
* ON EXIT: 'pos' is 1 + the index of the last delimiter.
- *
- * @return the string-literal token.
*/
private void escapedStringLiteral(char quot, boolean isRaw) {
int literalStartPos = isRaw ? pos - 2 : pos - 1;
@@ -405,7 +403,6 @@
* </ul>
*
* @param isRaw if true, do not escape the string.
- * @return the string-literal token.
*/
private void stringLiteral(char quot, boolean isRaw) {
int literalStartPos = isRaw ? pos - 2 : pos - 1;
@@ -509,8 +506,6 @@
*
* <p>ON ENTRY: 'pos' is 1 + the index of the first char in the identifier.
* ON EXIT: 'pos' is 1 + the index of the last char in the identifier.
- *
- * @return the identifier or keyword token.
*/
private void identifierOrKeyword() {
int oldPos = pos - 1;
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
index f45418b..97f41a6 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
@@ -219,6 +219,7 @@
* @param o the object
* @return the buffer, in fluent style
*/
+ @Override
public BasePrinter debugPrint(Object o) {
if (o instanceof StarlarkValue) {
((StarlarkValue) o).debugPrint(this);
@@ -235,6 +236,7 @@
*
* <p>Implementations of StarlarkValue may define their own behavior of {@code str}.
*/
+ @Override
public BasePrinter str(Object o) {
if (o instanceof StarlarkValue) {
((StarlarkValue) o).str(this);
diff --git a/src/main/java/com/google/devtools/build/lib/util/ResourceConverter.java b/src/main/java/com/google/devtools/build/lib/util/ResourceConverter.java
index 6385825..67434ba 100644
--- a/src/main/java/com/google/devtools/build/lib/util/ResourceConverter.java
+++ b/src/main/java/com/google/devtools/build/lib/util/ResourceConverter.java
@@ -18,6 +18,7 @@
import com.google.devtools.build.lib.actions.LocalHostCapacity;
import com.google.devtools.common.options.Converters;
import com.google.devtools.common.options.OptionsParsingException;
+import java.util.Map;
import java.util.function.DoubleBinaryOperator;
import java.util.function.Supplier;
import java.util.regex.Matcher;
@@ -135,7 +136,7 @@
if (expression == null) {
return firstOperandSupplier.get();
}
- for (ImmutableMap.Entry<String, DoubleBinaryOperator> operator : OPERATORS.entrySet()) {
+ for (Map.Entry<String, DoubleBinaryOperator> operator : OPERATORS.entrySet()) {
if (expression.startsWith(operator.getKey())) {
float secondOperand;
try {
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 dacdca1..7b237c3 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
@@ -635,9 +635,9 @@
return null;
}
- /** Should only be called by link {@GlobTaskContext}. */
- private void queueGlob(final Path base, final boolean baseIsDir, final int idx,
- final GlobTaskContext context) {
+ /** Should only be called by link {@link GlobTaskContext}. */
+ private void queueGlob(
+ final Path base, final boolean baseIsDir, final int idx, final GlobTaskContext context) {
enqueue(
new Runnable() {
@Override
@@ -665,12 +665,12 @@
});
}
- /** Should only be called by link {@GlobTaskContext}. */
+ /** Should only be called by link {@link GlobTaskContext}. */
private void queueTask(Runnable runnable) {
enqueue(runnable);
}
- protected void enqueue(final Runnable r) {
+ void enqueue(final Runnable r) {
totalOps.incrementAndGet();
pendingOps.incrementAndGet();
@@ -696,7 +696,7 @@
return totalOps.get();
}
- protected void cancel() {
+ void cancel() {
this.canceled = true;
}
diff --git a/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java b/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java
index d09fc6d..409e8eb 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java
@@ -39,7 +39,7 @@
Exception rootCauseException = skyFunctionException.getCause();
return new ErrorInfo(
NestedSetBuilder.create(Order.STABLE_ORDER, rootCauseSkyKey),
- Preconditions.checkNotNull(rootCauseException, "Cause null %s", rootCauseException),
+ Preconditions.checkNotNull(rootCauseException, "Cause is null"),
rootCauseSkyKey,
/*cycles=*/ ImmutableList.<CycleInfo>of(),
skyFunctionException.isTransient(),
diff --git a/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java b/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java
index dceeb1a..dc48fe8 100644
--- a/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java
+++ b/src/main/java/com/google/devtools/build/skyframe/NodeEntry.java
@@ -219,8 +219,8 @@
throws InterruptedException;
/**
- * Similar to {@link #addReverseDepAndCheckIfDone}, except that {@param reverseDep} must already
- * be a reverse dep of this entry. Should be used when reverseDep has been marked dirty and is
+ * Similar to {@link #addReverseDepAndCheckIfDone}, except that {@code reverseDep} must already be
+ * a reverse dep of this entry. Should be used when reverseDep has been marked dirty and is
* checking its dependencies for changes or is rebuilding. The caller must treat the return value
* just as they would the return value of {@link #addReverseDepAndCheckIfDone} by scheduling this
* node for evaluation if needed.
diff --git a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
index f4ad4bf..76371fc 100644
--- a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
+++ b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
@@ -215,7 +215,7 @@
}
// Continue to support the old behavior for @Deprecated options.
String warning = optionDefinition.getDeprecationWarning();
- if (!warning.isEmpty() || (optionDefinition.getField().isAnnotationPresent(Deprecated.class))) {
+ if (!warning.isEmpty() || optionDefinition.getField().isAnnotationPresent(Deprecated.class)) {
addDeprecationWarning(optionDefinition.getOptionName(), warning);
}
}
diff --git a/src/test/java/com/google/devtools/common/options/testing/OptionsTesterTest.java b/src/test/java/com/google/devtools/common/options/testing/OptionsTesterTest.java
index 4d32b1d..ebae247 100644
--- a/src/test/java/com/google/devtools/common/options/testing/OptionsTesterTest.java
+++ b/src/test/java/com/google/devtools/common/options/testing/OptionsTesterTest.java
@@ -166,7 +166,7 @@
private static String privateDeclaredUnAnnotatedStaticFinalField;
public static final String PUBLIC_DECLARED_UN_ANNOTATED_STATIC_FIELD = "";
- protected String protectedDeclaredField;
+ String protectedDeclaredField;
}
/** Test converter class for testing testAllDefaultValuesTestedBy. */