diff --git a/.baseline/checkstyle/checkstyle.xml b/.baseline/checkstyle/checkstyle.xml index f541b63e2..43ec38a3a 100644 --- a/.baseline/checkstyle/checkstyle.xml +++ b/.baseline/checkstyle/checkstyle.xml @@ -84,11 +84,13 @@ + org.apache.commons.lang3.Validate.*, + org.assertj.core.api.Assertions.*, + org.mockito.Mockito.*"/> diff --git a/build.gradle b/build.gradle index 260c08dde..d995099f0 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ buildscript { classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' classpath 'com.netflix.nebula:nebula-publishing-plugin:14.0.0' classpath 'com.netflix.nebula:gradle-info-plugin:5.1.1' - classpath 'com.palantir.baseline:gradle-baseline-java:2.13.0' + classpath 'com.palantir.baseline:gradle-baseline-java:2.20.1' classpath 'gradle.plugin.org.inferred:gradle-processors:3.1.0' classpath 'com.palantir.gradle.gitversion:gradle-git-version:0.12.2' classpath 'com.palantir.gradle.consistentversions:gradle-consistent-versions:1.12.4' diff --git a/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirCodeStyleManager.java b/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirCodeStyleManager.java index 6b0b6b020..768182686 100644 --- a/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirCodeStyleManager.java +++ b/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirCodeStyleManager.java @@ -16,7 +16,6 @@ package com.palantir.javaformat.intellij; -import static com.google.common.base.Preconditions.checkState; import static java.util.Comparator.comparing; import com.github.benmanes.caffeine.cache.Caffeine; @@ -103,7 +102,8 @@ private static Collection> toRanges(Collection textRan } private static TextRange toTextRange(Range range) { - checkState(range.lowerBoundType().equals(BoundType.CLOSED) && range.upperBoundType().equals(BoundType.OPEN)); + com.palantir.logsafe.Preconditions.checkState( + range.lowerBoundType().equals(BoundType.CLOSED) && range.upperBoundType().equals(BoundType.OPEN)); return new TextRange(range.lowerEndpoint(), range.upperEndpoint()); } diff --git a/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirJavaFormatConfigurable.java b/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirJavaFormatConfigurable.java index a4c8483d4..e9782a539 100644 --- a/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirJavaFormatConfigurable.java +++ b/idea-plugin/src/main/java/com/palantir/javaformat/intellij/PalantirJavaFormatConfigurable.java @@ -26,6 +26,7 @@ import com.intellij.uiDesigner.core.Spacer; import com.palantir.javaformat.intellij.PalantirJavaFormatSettings.EnabledState; import com.palantir.javaformat.java.FormatterService; +import com.palantir.logsafe.exceptions.SafeRuntimeException; import java.awt.Insets; import java.io.IOException; import java.net.URI; @@ -125,7 +126,7 @@ private String computeFormatterVersion(List implementationClassPath) { } }) .findFirst() - .orElseThrow(() -> new RuntimeException("Couldn't find implementation JAR")); + .orElseThrow(() -> new SafeRuntimeException("Couldn't find implementation JAR")); } @Override diff --git a/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/FormatterDiagnostic.java b/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/FormatterDiagnostic.java index 1b804cdd0..6aa89938e 100644 --- a/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/FormatterDiagnostic.java +++ b/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/FormatterDiagnostic.java @@ -16,8 +16,7 @@ package com.palantir.javaformat.java; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; +import com.palantir.logsafe.Preconditions; /** An error that prevented formatting from succeeding. */ public class FormatterDiagnostic { @@ -30,9 +29,9 @@ public static FormatterDiagnostic create(String message) { } public static FormatterDiagnostic create(int lineNumber, int column, String message) { - checkArgument(lineNumber >= 0); - checkArgument(column >= 0); - checkNotNull(message); + Preconditions.checkArgument(lineNumber >= 0); + Preconditions.checkArgument(column >= 0); + Preconditions.checkNotNull(message); return new FormatterDiagnostic(lineNumber, column, message); } @@ -60,6 +59,7 @@ public String message() { return message; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); if (lineNumber >= 0) { diff --git a/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/Replacement.java b/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/Replacement.java index aeecb1eb5..23215db92 100644 --- a/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/Replacement.java +++ b/palantir-java-format-api/src/main/java/com/palantir/javaformat/java/Replacement.java @@ -14,18 +14,16 @@ package com.palantir.javaformat.java; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - import com.google.common.collect.Range; +import com.palantir.logsafe.Preconditions; import java.util.Objects; /** Data class representing a range in the original source and replacement text for that range. */ public final class Replacement { public static Replacement create(int startPosition, int endPosition, String replaceWith) { - checkArgument(startPosition >= 0, "startPosition must be non-negative"); - checkArgument(startPosition <= endPosition, "startPosition cannot be after endPosition"); + Preconditions.checkArgument(startPosition >= 0, "startPosition must be non-negative"); + Preconditions.checkArgument(startPosition <= endPosition, "startPosition cannot be after endPosition"); return new Replacement(Range.closedOpen(startPosition, endPosition), replaceWith); } @@ -33,8 +31,8 @@ public static Replacement create(int startPosition, int endPosition, String repl private final String replacementString; private Replacement(Range replaceRange, String replacementString) { - this.replaceRange = checkNotNull(replaceRange, "Null replaceRange"); - this.replacementString = checkNotNull(replacementString, "Null replacementString"); + this.replaceRange = Preconditions.checkNotNull(replaceRange, "Null replaceRange"); + this.replacementString = Preconditions.checkNotNull(replacementString, "Null replacementString"); } /** The range of characters in the original source to replace. */ diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/OpsBuilder.java b/palantir-java-format/src/main/java/com/palantir/javaformat/OpsBuilder.java index e1105e193..be632e1ab 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/OpsBuilder.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/OpsBuilder.java @@ -161,7 +161,7 @@ private void add(Op op) { } else if (op instanceof CloseOp) { depth--; if (depth < 0) { - throw new AssertionError(); + throw new IllegalStateException(); } } ops.add(op); diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/doc/Level.java b/palantir-java-format/src/main/java/com/palantir/javaformat/doc/Level.java index fff1aa9cf..699237f69 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/doc/Level.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/doc/Level.java @@ -27,6 +27,7 @@ import com.palantir.javaformat.Indent; import com.palantir.javaformat.Output; import com.palantir.javaformat.doc.StartsWithBreakVisitor.Result; +import com.palantir.logsafe.exceptions.SafeIllegalStateException; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -167,7 +168,7 @@ public State computeBreaks(CommentsHelper commentsHelper, int maxWidth, State st Level firstLevel = innerLevels.stream() .filter(doc -> StartsWithBreakVisitor.INSTANCE.visit(doc) != Result.EMPTY) .findFirst() - .orElseThrow(() -> new IllegalStateException( + .orElseThrow(() -> new SafeIllegalStateException( "Levels were broken so expected to find at least a non-empty level")); // Add the width of tokens, breaks before the firstLevel. We must always have space for @@ -239,7 +240,7 @@ private Optional tryBreakLastLevel( splitByBreaks(leadingDocs, splits, breaks); state = tryToLayOutLevelOnOneLine(commentsHelper, maxWidth, state); - Preconditions.checkState( + com.palantir.logsafe.Preconditions.checkState( !state.mustBreak, "We messed up, it wants to break a bunch of splits that shouldn't be broken"); // manually add the last level to the last split diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/ImportOrderer.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/ImportOrderer.java index 8168610d7..0dc6b1572 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/ImportOrderer.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/ImportOrderer.java @@ -19,7 +19,6 @@ import static com.palantir.javaformat.java.JavaInput.buildToks; import com.google.common.base.CharMatcher; -import com.google.common.base.Preconditions; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -357,7 +356,7 @@ private ImportsAndIndex scanImports(int i) throws FormatterException { // Produces the sorted output based on the imports we have scanned. private String reorderedImportsString(ImmutableSortedSet imports) { - Preconditions.checkArgument(!imports.isEmpty(), "imports"); + com.palantir.logsafe.Preconditions.checkArgument(!imports.isEmpty(), "imports"); // Pretend that the first import was preceded by another import of the same kind, so we don't // insert a newline there. @@ -402,7 +401,7 @@ private StringAndIndex scanImported(int start) throws FormatterException { // At the start of each iteration of this loop, i points to an identifier. // On exit from the loop, i points to a token after an identifier or after *. while (true) { - Preconditions.checkState(isIdentifierToken(i)); + com.palantir.logsafe.Preconditions.checkState(isIdentifierToken(i)); imported.append(tokenAt(i)); i++; if (!tokenAt(i).equals(".")) { diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java index fb8720c33..194430873 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInput.java @@ -14,7 +14,6 @@ package com.palantir.javaformat.java; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.Iterables.getLast; import static java.nio.charset.StandardCharsets.UTF_8; @@ -33,6 +32,7 @@ import com.palantir.javaformat.Input; import com.palantir.javaformat.Newlines; import com.palantir.javaformat.java.JavacTokens.RawTok; +import com.palantir.logsafe.Preconditions; import java.io.IOException; import java.net.URI; import java.util.ArrayList; @@ -260,7 +260,7 @@ public String toString() { * @throws FormatterException if the input cannot be parsed */ public JavaInput(String text) throws FormatterException { - this.text = checkNotNull(text); + this.text = Preconditions.checkNotNull(text); setLines(ImmutableList.copyOf(Newlines.lineIterator(text))); ImmutableList toks = buildToks(text); positionToColumnMap = makePositionToColumnMap(toks); diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java index 811b8afac..484ec945a 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java @@ -53,6 +53,7 @@ import com.google.common.collect.ImmutableSortedSet; import com.google.common.collect.Iterables; import com.google.common.collect.Iterators; +import com.google.common.collect.Lists; import com.google.common.collect.Multiset; import com.google.common.collect.PeekingIterator; import com.google.common.collect.Streams; @@ -72,6 +73,7 @@ import com.palantir.javaformat.doc.Token; import com.palantir.javaformat.java.DimensionHelpers.SortedDims; import com.palantir.javaformat.java.DimensionHelpers.TypeWithDims; +import com.palantir.logsafe.exceptions.SafeIllegalStateException; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; @@ -483,7 +485,7 @@ public boolean visitArrayInitializer(List expressions) token("{"); builder.forcedBreak(); boolean first = true; - for (Iterable row : Iterables.partition(expressions, cols)) { + for (Iterable row : Lists.partition(expressions, cols)) { if (!first) { builder.forcedBreak(); } @@ -1953,7 +1955,7 @@ public Void visitTypeParameter(TypeParameterTree node, Void unused) { @Override public Void visitUnionType(UnionTypeTree node, Void unused) { - throw new IllegalStateException("expected manual descent into union types"); + throw new SafeIllegalStateException("expected manual descent into union types"); } @Override @@ -2101,7 +2103,7 @@ void visitAndBreakModifiers( @Override public Void visitModifiers(ModifiersTree node, Void unused) { - throw new IllegalStateException("expected manual descent into modifiers"); + throw new SafeIllegalStateException("expected manual descent into modifiers"); } /** Output combined modifiers and annotations and returns the trailing break. */ @@ -2188,7 +2190,7 @@ boolean nextIsModifier() { @Override public Void visitCatch(CatchTree node, Void unused) { - throw new IllegalStateException("expected manual descent into catch trees"); + throw new SafeIllegalStateException("expected manual descent into catch trees"); } /** Helper method for {@link CatchTree}s. */ diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/SnippetFormatter.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/SnippetFormatter.java index 1abb70b82..cbe2c5d2c 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/SnippetFormatter.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/SnippetFormatter.java @@ -23,6 +23,7 @@ import com.google.common.collect.Range; import com.google.common.collect.RangeSet; import com.google.common.collect.TreeRangeSet; +import com.palantir.logsafe.exceptions.SafeIllegalArgumentException; import java.util.ArrayList; import java.util.List; @@ -97,7 +98,7 @@ public ImmutableList format( } if (includeComments) { if (kind != SnippetKind.COMPILATION_UNIT) { - throw new IllegalArgumentException("comment formatting is only supported for compilation units"); + throw new SafeIllegalArgumentException("comment formatting is only supported for compilation units"); } return formatter.getFormatReplacements(source, ranges); } diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/Trees.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/Trees.java index 854e75dfa..efda0746e 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/Trees.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/Trees.java @@ -105,7 +105,7 @@ static ClassTree getEnclosingTypeDeclaration(TreePath path) { break; } } - throw new AssertionError(); + throw new IllegalStateException(); } /** Skips a single parenthesized tree. */ diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/TypeNameClassifier.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/TypeNameClassifier.java index 67aaa3df2..e151ac194 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/TypeNameClassifier.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/TypeNameClassifier.java @@ -43,7 +43,7 @@ public TyParseState next(JavaCaseFormat n) { case UPPER_CAMEL: return TyParseState.TYPE; } - throw new AssertionError(); + throw new IllegalStateException(); } }, @@ -59,7 +59,7 @@ public TyParseState next(JavaCaseFormat n) { case UPPER_CAMEL: return TyParseState.TYPE; } - throw new AssertionError(); + throw new IllegalStateException(); } }, @@ -92,7 +92,7 @@ public TyParseState next(JavaCaseFormat n) { case UPPER_CAMEL: return TyParseState.TYPE; } - throw new AssertionError(); + throw new IllegalStateException(); } }; diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/UsageException.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/UsageException.java index e4e9682ba..a6294eeb4 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/UsageException.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/UsageException.java @@ -14,9 +14,8 @@ package com.palantir.javaformat.java; -import static com.google.common.base.Preconditions.checkNotNull; - import com.google.common.base.Joiner; +import com.palantir.logsafe.Preconditions; /** Checked exception class for formatter command-line usage errors. */ final class UsageException extends Exception { @@ -79,7 +78,7 @@ final class UsageException extends Exception { } UsageException(String message) { - super(buildMessage(checkNotNull(message))); + super(buildMessage(Preconditions.checkNotNull(message))); } private static String buildMessage(String message) { diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/CharStream.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/CharStream.java index f74d8eccf..5ee42697d 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/CharStream.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/CharStream.java @@ -14,9 +14,7 @@ package com.palantir.javaformat.java.javadoc; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - +import com.palantir.logsafe.Preconditions; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -31,7 +29,7 @@ final class CharStream { int toConsume; CharStream(String input) { - this.remaining = checkNotNull(input); + this.remaining = Preconditions.checkNotNull(input); } boolean tryConsume(String expected) { @@ -50,7 +48,7 @@ boolean tryConsumeRegex(Pattern pattern) { if (!matcher.find()) { return false; } - checkArgument(matcher.start() == 0); + Preconditions.checkArgument(matcher.start() == 0); toConsume = matcher.end(); return true; } diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocFormatter.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocFormatter.java index 1e145d311..aa32a8d6b 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocFormatter.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocFormatter.java @@ -138,7 +138,7 @@ private String render(List input, int blockIndent) { throw new AssertionError(token.getType()); } } - throw new AssertionError(); + throw new IllegalStateException(); } /* diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocLexer.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocLexer.java index 7e8d83fa7..c6f9c81b3 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocLexer.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocLexer.java @@ -15,7 +15,6 @@ package com.palantir.javaformat.java.javadoc; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Verify.verify; import static com.google.common.collect.Iterators.peekingIterator; import static com.palantir.javaformat.java.javadoc.Token.Type.BEGIN_JAVADOC; @@ -54,6 +53,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.PeekingIterator; import com.palantir.javaformat.java.javadoc.Token.Type; +import com.palantir.logsafe.Preconditions; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; @@ -100,7 +100,7 @@ private static String stripJavadocBeginAndEnd(String input) { private boolean somethingSinceNewline; private JavadocLexer(CharStream input) { - this.input = checkNotNull(input); + this.input = Preconditions.checkNotNull(input); } private ImmutableList generateTokens() throws LexException { @@ -235,7 +235,7 @@ private Type consumeToken() throws LexException { } else if (input.tryConsumeRegex(LITERAL_PATTERN)) { return LITERAL; } - throw new AssertionError(); + throw new IllegalStateException(); } private boolean preserveExistingFormatting() { diff --git a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocWriter.java b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocWriter.java index e22d192cf..0db136bd1 100644 --- a/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocWriter.java +++ b/palantir-java-format/src/main/java/com/palantir/javaformat/java/javadoc/JavadocWriter.java @@ -14,7 +14,6 @@ package com.palantir.javaformat.java.javadoc; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.Sets.immutableEnumSet; import static com.palantir.javaformat.java.javadoc.JavadocWriter.AutoIndent.AUTO_INDENT; import static com.palantir.javaformat.java.javadoc.JavadocWriter.AutoIndent.NO_AUTO_INDENT; @@ -30,6 +29,7 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Ordering; import com.palantir.javaformat.java.javadoc.Token.Type; +import com.palantir.logsafe.Preconditions; /** * Stateful object that accepts "requests" and "writes," producing formatted Javadoc. @@ -74,7 +74,7 @@ void requestWhitespace() { void requestMoeBeginStripComment(Token token) { // We queue this up so that we can put it after any requested whitespace. - requestedMoeBeginStripComment = checkNotNull(token); + requestedMoeBeginStripComment = Preconditions.checkNotNull(token); } void writeBeginJavadoc() { diff --git a/palantir-java-format/src/test/java/com/palantir/javaformat/java/ArrayDimensionTest.java b/palantir-java-format/src/test/java/com/palantir/javaformat/java/ArrayDimensionTest.java index 43e59d74b..405019175 100644 --- a/palantir-java-format/src/test/java/com/palantir/javaformat/java/ArrayDimensionTest.java +++ b/palantir-java-format/src/test/java/com/palantir/javaformat/java/ArrayDimensionTest.java @@ -18,7 +18,7 @@ import com.google.common.base.Joiner; import com.google.common.base.Splitter; -import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import com.palantir.javaformat.jupiter.ParameterizedClass; import java.util.Arrays; import org.junit.jupiter.api.TestTemplate; @@ -77,7 +77,7 @@ public static Iterable parameters() { "List xs;", "List xs;", }; - return Iterables.transform(Arrays.asList(inputs), input -> new Object[] {input}); + return Lists.transform(Arrays.asList(inputs), input -> new Object[] {input}); } private final String input;