From 03a83002a441a4026135b3c98068a7ccb5c804a9 Mon Sep 17 00:00:00 2001 From: akarnokd Date: Fri, 26 Jun 2026 08:47:44 +0200 Subject: [PATCH 1/5] 4.x: Cleanup; build, safevarargs, small typos --- build.gradle | 28 ++++++------------- .../reactivex/rxjava4/core/Completable.java | 11 ++------ .../validators/SourceAnnotationCheck.java | 16 ++++++----- 3 files changed, 21 insertions(+), 34 deletions(-) diff --git a/build.gradle b/build.gradle index ac4d628655..06e27ddded 100644 --- a/build.gradle +++ b/build.gradle @@ -179,17 +179,18 @@ jmh { def isCI = System.getenv("CI") != null def testLoggingConfig = ["skipped", "failed"] +def parallelism = Runtime.runtime.availableProcessors() + if (!isCI) { testLoggingConfig = ["failed"] + parallelism = parallelism.intdiv(2) ?: 1 } test { maxHeapSize = "1200m" - if (System.getenv("CI") != null) { - maxParallelForks = Runtime.runtime.availableProcessors() - } else { - maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 - } + maxParallelForks = parallelism + timeout = Duration.ofMinutes(30) + useJUnitPlatform() } @@ -206,19 +207,8 @@ tasks.register('testNG', Test) { useTestNG() maxHeapSize = "1200m" - if (System.getenv("CI") != null) { - maxParallelForks = Runtime.runtime.availableProcessors() - } else { - maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 - } - // maxParallelForks = 1 - - // Ensure JUnit-compatible XML output in the standard location - reports { - html.required = true - junitXml.required = true - junitXml.outputLocation = file("${buildDir}/test-results/test") // ← important - } + maxParallelForks = parallelism + timeout = Duration.ofMinutes(30) // Ensure JUnit-compatible XML output in the standard location reports { @@ -307,7 +297,7 @@ if (project.hasProperty("releaseMode")) { } mavenPublishing { // or when publishing to https://central.sonatype.com/ - publishToMavenCentral(true) + publishToMavenCentral(true, DeploymentValidation.PUBLISHED) // signAllPublications() } diff --git a/src/main/java/io/reactivex/rxjava4/core/Completable.java b/src/main/java/io/reactivex/rxjava4/core/Completable.java index cb692a572d..51e2f5450e 100644 --- a/src/main/java/io/reactivex/rxjava4/core/Completable.java +++ b/src/main/java/io/reactivex/rxjava4/core/Completable.java @@ -122,7 +122,6 @@ public abstract class Completable implements CompletableSource { @CheckReturnValue @NonNull @SchedulerSupport(SchedulerSupport.NONE) - @SafeVarargs public static Completable ambArray(@NonNull CompletableSource... sources) { Objects.requireNonNull(sources, "sources is null"); if (sources.length == 0) { @@ -190,7 +189,6 @@ public static Completable complete() { @CheckReturnValue @NonNull @SchedulerSupport(SchedulerSupport.NONE) - @SafeVarargs public static Completable concatArray(@NonNull CompletableSource... sources) { return concatArray(CompletableConcatConfig.DEFAULT, sources); } @@ -212,7 +210,6 @@ public static Completable concatArray(@NonNull CompletableSource... sources) { @CheckReturnValue @NonNull @SchedulerSupport(SchedulerSupport.NONE) - @SafeVarargs public static Completable concatArray(@NonNull CompletableConcatConfig config, @NonNull CompletableSource... sources) { Objects.requireNonNull(sources, "sources is null"); Objects.requireNonNull(config, "config is null"); @@ -775,7 +772,6 @@ public static Completable fromSupplier(@NonNull Supplier supplier) { @CheckReturnValue @NonNull @SchedulerSupport(SchedulerSupport.NONE) - @SafeVarargs public static Completable mergeArray(@NonNull CompletableSource... sources) { return mergeArray(CompletableMergeConfig.DEFAULT, sources); } @@ -906,7 +902,6 @@ public static Completable merge(@NonNull Publisher<@NonNull ? extends Completabl @CheckReturnValue @NonNull @SchedulerSupport(SchedulerSupport.NONE) - @SafeVarargs public static Completable mergeArray(@NonNull CompletableMergeConfig config, @NonNull CompletableSource... sources) { Objects.requireNonNull(sources, "sources is null"); Objects.requireNonNull(config, "config is null"); @@ -3262,8 +3257,8 @@ public final TestObserver test() { } /** - * Creates a {@link TestObserver} optionally in cancelled state, then subscribes it to this {@code Completable}. - * @param dispose if {@code true}, the {@code TestObserver} will be cancelled before subscribing to this + * Creates a {@link TestObserver} optionally in canceled state, then subscribes it to this {@code Completable}. + * @param dispose if {@code true}, the {@code TestObserver} will be canceled before subscribing to this * {@code Completable}. *

* @@ -3332,7 +3327,7 @@ public static Completable fromCompletionStage(@NonNull CompletionStage stage) * The upstream can be canceled by converting the resulting {@code CompletionStage} into * {@link CompletableFuture} via {@link CompletionStage#toCompletableFuture()} and * calling {@link CompletableFuture#cancel(boolean)} on it. - * The upstream will be also cancelled if the resulting {@code CompletionStage} is converted to and + * The upstream will be also canceled if the resulting {@code CompletionStage} is converted to and * completed manually by {@link CompletableFuture#complete(Object)} or {@link CompletableFuture#completeExceptionally(Throwable)}. *

* {@code CompletionStage}s don't have a notion of emptiness and allow {@code null}s, therefore, one can either use diff --git a/src/test/java/io/reactivex/rxjava4/validators/SourceAnnotationCheck.java b/src/test/java/io/reactivex/rxjava4/validators/SourceAnnotationCheck.java index 84e5f0d0de..828fe86289 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/SourceAnnotationCheck.java +++ b/src/test/java/io/reactivex/rxjava4/validators/SourceAnnotationCheck.java @@ -36,7 +36,7 @@ * @NonNull or @Nullable annotations specified on their return type and object-type parameters * as well as @SafeVarargs for varargs. */ -public class SourceAnnotationCheck { +public class SourceAnnotationCheck extends RxJavaTest { @Test public void checkCompletable() throws Exception { @@ -257,14 +257,14 @@ static void processFile(Class clazz) throws Exception { StringBuilder arguments = new StringBuilder(); int methodArgEnd = line.indexOf(")", methodArgStart); if (methodArgEnd > 0) { - arguments.append(line.substring(methodArgStart + 1, methodArgEnd)); + arguments.append(line, methodArgStart + 1, methodArgEnd); } else { arguments.append(line.substring(methodArgStart + 1)); for (int k = j + 1; k < lines.size(); k++) { String ln = lines.get(k).trim(); int idx = ln.indexOf(")"); if (idx > 0) { - arguments.append(ln.substring(0, idx)); + arguments.append(ln, 0, idx); break; } arguments.append(ln).append(" "); @@ -365,7 +365,9 @@ else if (skippingDepth == 0) { } - if (strippedArgumentsStr.contains("...") && !hasSafeVarargsAnnotation) { + if (strippedArgumentsStr.contains("...") + && !hasSafeVarargsAnnotation + && !strippedArgumentsStr.contains("CompletableSource...")) { errorCount++; errors.append("L") .append(j) @@ -385,7 +387,7 @@ else if (skippingDepth == 0) { for (String typeName : TYPES_REQUIRING_NONNULL_TYPEARG) { String pattern = typeName + ".*"; + String patternRegex = ".*" + typeName + "<\\? (extends|super) " + COMMON_TYPE_ARG_NAMES + ">.*"; if (line.contains(pattern) && !line.matches(patternRegex)) { errorCount++; @@ -405,7 +407,7 @@ else if (skippingDepth == 0) { } } for (String typeName : TYPES_FORBIDDEN_NONNULL_TYPEARG) { - String patternRegex = ".*" + typeName + "\\<@NonNull (\\? (extends|super) )?" + COMMON_TYPE_ARG_NAMES + "\\>.*"; + String patternRegex = ".*" + typeName + "<@NonNull (\\? (extends|super) )?" + COMMON_TYPE_ARG_NAMES + ">.*"; if (line.matches(patternRegex)) { errorCount++; @@ -426,7 +428,7 @@ else if (skippingDepth == 0) { } for (String typeName : TYPES_REQUIRING_NONNULL_TYPEARG_ON_FUNC) { - if (line.matches(".*Function[\\d]?\\<.*, (\\? (extends|super) )?" + typeName + ".*")) { + if (line.matches(".*Function[\\d]?<.*, (\\? (extends|super) )?" + typeName + ".*")) { errorCount++; errors.append("L") .append(j) From c053bf26bdf607c2263b34c7f3b419409828ce47 Mon Sep 17 00:00:00 2001 From: akarnokd Date: Fri, 26 Jun 2026 09:28:56 +0200 Subject: [PATCH 2/5] Rename validators to CheckXXXTest & some try() cleanup --- ...eTakeTest2.java => FlowableTake2Test.java} | 2 +- ...java => ObservableToFlowableTestSync.java} | 12 +++--- .../rxjava4/validators/BaseTypeParser.java | 10 ++--- ...ava => CheckAndFixLicenseHeadersTest.java} | 16 +++----- ....java => CheckAnonClassForLambdaTest.java} | 3 +- ...java => CheckBaseTypeAnnotationsTest.java} | 2 +- ...k.java => CheckCatchThrowIfFatalTest.java} | 3 +- ...java => CheckInternalWrongNamingTest.java} | 10 ++--- ...ava => CheckJavadocCodesAndLinksTest.java} | 3 +- ...avadocFindUnescapedAngleBracketsTest.java} | 12 +++--- ...va => CheckJavadocForAnnotationsTest.java} | 9 ++--- ...ding.java => CheckJavadocWordingTest.java} | 3 +- ...ts.java => CheckLocalVariablesInTest.java} | 32 +++++++-------- ...e.java => CheckMaybeForSinceTagsTest.java} | 13 +++--- ...=> CheckNewLinesBeforeAnnotationTest.java} | 10 ++--- ... => CheckNoAnonymousInnerClassesTest.java} | 10 ++--- ...> CheckNonNullMethodTypeArgumentTest.java} | 9 +++-- ...l.java => CheckOperatorsAreFinalTest.java} | 3 +- ...a => CheckOperatorsUseInterfacesTest.java} | 40 +++++++++++++------ ...va => CheckParamValidationNamingTest.java} | 2 +- ...est.java => CheckParamValidationTest.java} | 2 +- ... => CheckParameterNamesInClassesTest.java} | 6 ++- ....java => CheckPublicFinalMethodsTest.java} | 10 ++++- ...ck.java => CheckSourceAnnotationTest.java} | 2 +- ...a => CheckTestPrefixInMethodNameTest.java} | 10 ++--- ...lAorAn.java => CheckTextualAorAnTest.java} | 14 +++---- ...ava => CheckTooManyEmptyNewLinesTest.java} | 16 +++----- 27 files changed, 134 insertions(+), 130 deletions(-) rename src/test/java/io/reactivex/rxjava4/internal/operators/flowable/{FlowableTakeTest2.java => FlowableTake2Test.java} (98%) rename src/test/java/io/reactivex/rxjava4/internal/util/{ObservableToFlowabeTestSync.java => ObservableToFlowableTestSync.java} (93%) rename src/test/java/io/reactivex/rxjava4/validators/{FixLicenseHeaders.java => CheckAndFixLicenseHeadersTest.java} (89%) rename src/test/java/io/reactivex/rxjava4/validators/{CheckAnonymousClassForLambda.java => CheckAnonClassForLambdaTest.java} (97%) rename src/test/java/io/reactivex/rxjava4/validators/{BaseTypeAnnotations.java => CheckBaseTypeAnnotationsTest.java} (99%) rename src/test/java/io/reactivex/rxjava4/validators/{CatchThrowIfFatalCheck.java => CheckCatchThrowIfFatalTest.java} (97%) rename src/test/java/io/reactivex/rxjava4/validators/{InternalWrongNaming.java => CheckInternalWrongNamingTest.java} (96%) rename src/test/java/io/reactivex/rxjava4/validators/{JavadocCodesAndLinks.java => CheckJavadocCodesAndLinksTest.java} (99%) rename src/test/java/io/reactivex/rxjava4/validators/{JavadocFindUnescapedAngleBrackets.java => CheckJavadocFindUnescapedAngleBracketsTest.java} (94%) rename src/test/java/io/reactivex/rxjava4/validators/{JavadocForAnnotations.java => CheckJavadocForAnnotationsTest.java} (98%) rename src/test/java/io/reactivex/rxjava4/validators/{JavadocWording.java => CheckJavadocWordingTest.java} (99%) rename src/test/java/io/reactivex/rxjava4/validators/{CheckLocalVariablesInTests.java => CheckLocalVariablesInTest.java} (92%) rename src/test/java/io/reactivex/rxjava4/validators/{MaybeNo2Dot0Since.java => CheckMaybeForSinceTagsTest.java} (85%) rename src/test/java/io/reactivex/rxjava4/validators/{NewLinesBeforeAnnotation.java => CheckNewLinesBeforeAnnotationTest.java} (94%) rename src/test/java/io/reactivex/rxjava4/validators/{NoAnonymousInnerClassesTest.java => CheckNoAnonymousInnerClassesTest.java} (94%) rename src/test/java/io/reactivex/rxjava4/validators/{NonNullMethodTypeArgumentCheck.java => CheckNonNullMethodTypeArgumentTest.java} (94%) rename src/test/java/io/reactivex/rxjava4/validators/{OperatorsAreFinal.java => CheckOperatorsAreFinalTest.java} (96%) rename src/test/java/io/reactivex/rxjava4/validators/{OperatorsUseInterfaces.java => CheckOperatorsUseInterfacesTest.java} (85%) rename src/test/java/io/reactivex/rxjava4/validators/{ParamValidationNaming.java => CheckParamValidationNamingTest.java} (99%) rename src/test/java/io/reactivex/rxjava4/validators/{ParamValidationCheckerTest.java => CheckParamValidationTest.java} (99%) rename src/test/java/io/reactivex/rxjava4/validators/{ParameterNamesInClassesTest.java => CheckParameterNamesInClassesTest.java} (88%) rename src/test/java/io/reactivex/rxjava4/validators/{PublicFinalMethods.java => CheckPublicFinalMethodsTest.java} (88%) rename src/test/java/io/reactivex/rxjava4/validators/{SourceAnnotationCheck.java => CheckSourceAnnotationTest.java} (99%) rename src/test/java/io/reactivex/rxjava4/validators/{TestPrefixInMethodName.java => CheckTestPrefixInMethodNameTest.java} (94%) rename src/test/java/io/reactivex/rxjava4/validators/{TextualAorAn.java => CheckTextualAorAnTest.java} (96%) rename src/test/java/io/reactivex/rxjava4/validators/{TooManyEmptyNewLines.java => CheckTooManyEmptyNewLinesTest.java} (91%) diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTakeTest2.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTake2Test.java similarity index 98% rename from src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTakeTest2.java rename to src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTake2Test.java index 54493f1d67..56c82dbf7a 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTakeTest2.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTake2Test.java @@ -30,7 +30,7 @@ import io.reactivex.rxjava4.testsupport.TestHelper; // moved tests from FlowableLimitTest to here (limit removed as operator) -public class FlowableTakeTest2 extends RxJavaTest implements LongConsumer, Action { +public class FlowableTake2Test extends RxJavaTest implements LongConsumer, Action { final List requests = new ArrayList<>(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/util/ObservableToFlowabeTestSync.java b/src/test/java/io/reactivex/rxjava4/internal/util/ObservableToFlowableTestSync.java similarity index 93% rename from src/test/java/io/reactivex/rxjava4/internal/util/ObservableToFlowabeTestSync.java rename to src/test/java/io/reactivex/rxjava4/internal/util/ObservableToFlowableTestSync.java index af44dee043..84ce6bd7a5 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/util/ObservableToFlowabeTestSync.java +++ b/src/test/java/io/reactivex/rxjava4/internal/util/ObservableToFlowableTestSync.java @@ -20,23 +20,20 @@ /** * Utility class that lists tests related to Observable that is not present in Flowable tests. */ -public final class ObservableToFlowabeTestSync { - private ObservableToFlowabeTestSync() { +public final class ObservableToFlowableTestSync { + private ObservableToFlowableTestSync() { throw new IllegalStateException("No instances!"); } static List readAllLines(File f) { List result = new ArrayList<>(); try { - BufferedReader in = new BufferedReader(new FileReader(f)); - try { + try (BufferedReader in = new BufferedReader(new FileReader(f))) { String line; while ((line = in.readLine()) != null) { result.add(line); } - } finally { - in.close(); } } catch (IOException ex) { ex.printStackTrace(); @@ -46,6 +43,9 @@ static List readAllLines(File f) { static void list(String basepath, String basepackage) throws Exception { File[] observables = new File(basepath + "observable/").listFiles(); + if (observables == null) { + throw new FileNotFoundException(basepath + "observable/"); + } int count = 0; diff --git a/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java b/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java index bb1290572c..008ec0347a 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java +++ b/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java @@ -50,7 +50,7 @@ public static class RxMethod { public static List parse(File f, String baseClassName) throws Exception { List list = new ArrayList<>(); - StringBuilder b = JavadocForAnnotations.readFile(f); + StringBuilder b = CheckJavadocForAnnotationsTest.readFile(f); int baseIndex = b.indexOf("public abstract class " + baseClassName); if (baseIndex < 0) { @@ -73,11 +73,11 @@ public static List parse(File f, String baseClassName) throws Exceptio int javadocEnd = b.indexOf("*/", javadocStart + 2); m.javadoc = b.substring(javadocStart, javadocEnd + 2); - m.javadocLine = JavadocForAnnotations.lineNumber(b, javadocStart); + m.javadocLine = CheckJavadocForAnnotationsTest.lineNumber(b, javadocStart); int backpressureDoc = b.indexOf("

Backpressure:
", javadocStart); if (backpressureDoc > 0 && backpressureDoc < javadocEnd) { - m.backpressureDocLine = JavadocForAnnotations.lineNumber(b, backpressureDoc); + m.backpressureDocLine = CheckJavadocForAnnotationsTest.lineNumber(b, backpressureDoc); int nextDD = b.indexOf("", backpressureDoc); if (nextDD > 0 && nextDD < javadocEnd) { m.backpressureDocumentation = b.substring(backpressureDoc, nextDD + 5); @@ -86,7 +86,7 @@ public static List parse(File f, String baseClassName) throws Exceptio int schedulerDoc = b.indexOf("
Scheduler:
", javadocStart); if (schedulerDoc > 0 && schedulerDoc < javadocEnd) { - m.schedulerDocLine = JavadocForAnnotations.lineNumber(b, schedulerDoc); + m.schedulerDocLine = CheckJavadocForAnnotationsTest.lineNumber(b, schedulerDoc); int nextDD = b.indexOf("", schedulerDoc); if (nextDD > 0 && nextDD < javadocEnd) { m.schedulerDocumentation = b.substring(schedulerDoc, nextDD + 5); @@ -121,7 +121,7 @@ public static List parse(File f, String baseClassName) throws Exceptio m.signature = b.substring(definitionStart, methodDefEnd + 1); - m.methodLine = JavadocForAnnotations.lineNumber(b, definitionStart); + m.methodLine = CheckJavadocForAnnotationsTest.lineNumber(b, definitionStart); int backpressureSpec = b.indexOf("@BackpressureSupport(", javadocEnd); if (backpressureSpec > 0 && backpressureSpec < definitionStart) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/FixLicenseHeaders.java b/src/test/java/io/reactivex/rxjava4/validators/CheckAndFixLicenseHeadersTest.java similarity index 89% rename from src/test/java/io/reactivex/rxjava4/validators/FixLicenseHeaders.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckAndFixLicenseHeadersTest.java index d5354be943..85f4dc8ea1 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/FixLicenseHeaders.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckAndFixLicenseHeadersTest.java @@ -16,6 +16,7 @@ import java.io.*; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -23,7 +24,7 @@ /** * Adds license header to java files. */ -public class FixLicenseHeaders { +public class CheckAndFixLicenseHeadersTest extends RxJavaTest { String[] header = { "/*", @@ -74,9 +75,8 @@ public void checkAndUpdateLicenses() throws Exception { if (u.getName().endsWith(".java")) { List lines = new ArrayList<>(); - BufferedReader in = new BufferedReader(new FileReader(u)); - try { - for (;;) { + try (BufferedReader in = new BufferedReader(new FileReader(u))) { + for (; ; ) { String line = in.readLine(); if (line == null) { break; @@ -84,8 +84,6 @@ public void checkAndUpdateLicenses() throws Exception { lines.add(line); } - } finally { - in.close(); } if (!lines.get(0).equals(header[0]) || !lines.get(1).equals(header[1])) { @@ -110,14 +108,10 @@ public void checkAndUpdateLicenses() throws Exception { lines.addAll(0, Arrays.asList(header)); - PrintWriter w = new PrintWriter(new FileWriter(u)); - - try { + try (PrintWriter w = new PrintWriter(new FileWriter(u))) { for (String s : lines) { w.println(s); } - } finally { - w.close(); } } } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckAnonymousClassForLambda.java b/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java similarity index 97% rename from src/test/java/io/reactivex/rxjava4/validators/CheckAnonymousClassForLambda.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java index 2bfe037714..30e6fe8f6e 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckAnonymousClassForLambda.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java @@ -18,6 +18,7 @@ import java.util.*; import java.util.regex.Pattern; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -25,7 +26,7 @@ /** * Adds license header to java files. */ -public class CheckAnonymousClassForLambda { +public class CheckAnonClassForLambdaTest extends RxJavaTest { String[] header = { "/*", diff --git a/src/test/java/io/reactivex/rxjava4/validators/BaseTypeAnnotations.java b/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java similarity index 99% rename from src/test/java/io/reactivex/rxjava4/validators/BaseTypeAnnotations.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java index 3041ff988a..84153ab32e 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/BaseTypeAnnotations.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java @@ -38,7 +38,7 @@ *
  • All public base types that don't return Flowable don't have the {@link BackpressureSupport} present (these are copy-paste errors)
  • * */ -public class BaseTypeAnnotations { +public class CheckBaseTypeAnnotationsTest extends RxJavaTest { static void checkCheckReturnValueSupport(Class clazz) { StringBuilder b = new StringBuilder(); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CatchThrowIfFatalCheck.java b/src/test/java/io/reactivex/rxjava4/validators/CheckCatchThrowIfFatalTest.java similarity index 97% rename from src/test/java/io/reactivex/rxjava4/validators/CatchThrowIfFatalCheck.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckCatchThrowIfFatalTest.java index 7bed39284c..24c615aa06 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CatchThrowIfFatalCheck.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckCatchThrowIfFatalTest.java @@ -17,6 +17,7 @@ import java.nio.file.Files; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -27,7 +28,7 @@ * or {@code fail} call. * @since 3.0.0 */ -public class CatchThrowIfFatalCheck { +public class CheckCatchThrowIfFatalTest extends RxJavaTest { @Test public void check() throws Exception { diff --git a/src/test/java/io/reactivex/rxjava4/validators/InternalWrongNaming.java b/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java similarity index 96% rename from src/test/java/io/reactivex/rxjava4/validators/InternalWrongNaming.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java index 32fe72833b..b8cb6a7144 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/InternalWrongNaming.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java @@ -16,6 +16,7 @@ import java.io.*; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -23,7 +24,7 @@ /** * Adds license header to java files. */ -public class InternalWrongNaming { +public class CheckInternalWrongNamingTest extends RxJavaTest { static void checkInternalOperatorNaming(String baseClassName, String consumerClassName, String... ignore) throws Exception { File f = TestHelper.findSource(baseClassName); @@ -83,9 +84,8 @@ static void checkInternalOperatorNaming(String baseClassName, String consumerCla static List readFile(File u) throws Exception { List lines = new ArrayList<>(); - BufferedReader in = new BufferedReader(new FileReader(u)); - try { - for (;;) { + try (BufferedReader in = new BufferedReader(new FileReader(u))) { + for (; ; ) { String line = in.readLine(); if (line == null) { break; @@ -93,8 +93,6 @@ static List readFile(File u) throws Exception { lines.add(line); } - } finally { - in.close(); } return lines; } diff --git a/src/test/java/io/reactivex/rxjava4/validators/JavadocCodesAndLinks.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocCodesAndLinksTest.java similarity index 99% rename from src/test/java/io/reactivex/rxjava4/validators/JavadocCodesAndLinks.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckJavadocCodesAndLinksTest.java index d112717f21..48f019b25b 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/JavadocCodesAndLinks.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocCodesAndLinksTest.java @@ -17,6 +17,7 @@ import java.nio.file.Files; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -28,7 +29,7 @@ * The check ignores HTML tag content on a line, @see and @throws entries * and <code></code> lines. */ -public class JavadocCodesAndLinks { +public class CheckJavadocCodesAndLinksTest extends RxJavaTest { @Test public void checkFlowable() throws Exception { diff --git a/src/test/java/io/reactivex/rxjava4/validators/JavadocFindUnescapedAngleBrackets.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocFindUnescapedAngleBracketsTest.java similarity index 94% rename from src/test/java/io/reactivex/rxjava4/validators/JavadocFindUnescapedAngleBrackets.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckJavadocFindUnescapedAngleBracketsTest.java index aa7e20de93..37f56d56b9 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/JavadocFindUnescapedAngleBrackets.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocFindUnescapedAngleBracketsTest.java @@ -16,11 +16,12 @@ import java.io.*; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; -public class JavadocFindUnescapedAngleBrackets { +public class CheckJavadocFindUnescapedAngleBracketsTest extends RxJavaTest { @Test public void find() throws Exception { @@ -107,7 +108,7 @@ public void find() throws Exception { } } - if (b.length() > 0) { + if (!b.isEmpty()) { System.err.println("Should escape < and > in blocks! " + count); System.err.println(b); throw new Exception("Should escape < and > in blocks! " + count + "\r\n" + b); @@ -126,16 +127,13 @@ static int countLine(String s, int kdx) { static String readFile(File f) throws IOException { StringBuilder b = new StringBuilder((int)f.length()); - BufferedReader in = new BufferedReader(new FileReader(f)); - try { - String line = null; + try (BufferedReader in = new BufferedReader(new FileReader(f))) { + String line; while ((line = in.readLine()) != null) { b.append(line).append("\n"); } - } finally { - in.close(); } return b.toString(); } diff --git a/src/test/java/io/reactivex/rxjava4/validators/JavadocForAnnotations.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java similarity index 98% rename from src/test/java/io/reactivex/rxjava4/validators/JavadocForAnnotations.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java index dd14648f2d..956c4016f6 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/JavadocForAnnotations.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java @@ -26,7 +26,7 @@ * Checks the source code of the base reactive types and locates missing * mention of {@code Backpressure:} and {@code Scheduler:} of methods. */ -public class JavadocForAnnotations { +public class CheckJavadocForAnnotationsTest extends RxJavaTest { static void checkSource(String baseClassName, boolean scheduler) throws Exception { File f = TestHelper.findSource(baseClassName); @@ -54,9 +54,8 @@ static void checkSource(String baseClassName, boolean scheduler) throws Exceptio public static StringBuilder readFile(File f) throws Exception { StringBuilder b = new StringBuilder(); - BufferedReader in = new BufferedReader(new FileReader(f)); - try { - for (;;) { + try (BufferedReader in = new BufferedReader(new FileReader(f))) { + for (; ; ) { String line = in.readLine(); if (line == null) { @@ -65,8 +64,6 @@ public static StringBuilder readFile(File f) throws Exception { b.append(line).append('\n'); } - } finally { - in.close(); } return b; diff --git a/src/test/java/io/reactivex/rxjava4/validators/JavadocWording.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java similarity index 99% rename from src/test/java/io/reactivex/rxjava4/validators/JavadocWording.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java index 48ab92d2c7..b44e9c12ca 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/JavadocWording.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java @@ -18,6 +18,7 @@ import java.util.List; import java.util.regex.Pattern; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -26,7 +27,7 @@ /** * Check if the method wording is consistent with the target base type. */ -public class JavadocWording { +public class CheckJavadocWordingTest extends RxJavaTest { public static int lineNumber(CharSequence s, int index) { int cnt = 1; diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTests.java b/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTest.java similarity index 92% rename from src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTests.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTest.java index ad14be9e60..60a1481765 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTests.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTest.java @@ -17,6 +17,7 @@ import java.util.*; import java.util.regex.Pattern; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -36,7 +37,7 @@ *
  • {@code Observer} named as "s" or "subscriber"
  • * */ -public class CheckLocalVariablesInTests { +public class CheckLocalVariablesInTest extends RxJavaTest { static void findPattern(String pattern) throws Exception { findPattern(pattern, false); @@ -79,9 +80,8 @@ static void findPattern(String pattern, boolean checkMain) throws Exception { if (fname.endsWith(".java")) { int lineNum = 0; - BufferedReader in = new BufferedReader(new FileReader(u)); - try { - for (;;) { + try (BufferedReader in = new BufferedReader(new FileReader(u))) { + for (; ; ) { String line = in.readLine(); if (line != null) { lineNum++; @@ -91,17 +91,17 @@ static void findPattern(String pattern, boolean checkMain) throws Exception { if (!line.startsWith("//") && !line.startsWith("*")) { if (p.matcher(line).find()) { fail - .append(fname) - .append("#L").append(lineNum) - .append(" ").append(line) - .append("\n") - .append(" at ") - .append(fname.replace(".java", "")) - .append(".method(") - .append(fname) - .append(":") - .append(lineNum) - .append(")\n"); + .append(fname) + .append("#L").append(lineNum) + .append(" ").append(line) + .append("\n") + .append(" at ") + .append(fname.replace(".java", "")) + .append(".method(") + .append(fname) + .append(":") + .append(lineNum) + .append(")\n"); total++; } @@ -110,8 +110,6 @@ static void findPattern(String pattern, boolean checkMain) throws Exception { break; } } - } finally { - in.close(); } } } diff --git a/src/test/java/io/reactivex/rxjava4/validators/MaybeNo2Dot0Since.java b/src/test/java/io/reactivex/rxjava4/validators/CheckMaybeForSinceTagsTest.java similarity index 85% rename from src/test/java/io/reactivex/rxjava4/validators/MaybeNo2Dot0Since.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckMaybeForSinceTagsTest.java index f3ca088225..d98ad3d833 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/MaybeNo2Dot0Since.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckMaybeForSinceTagsTest.java @@ -17,16 +17,16 @@ import java.io.*; +import io.reactivex.rxjava4.core.*; import org.junit.Test; -import io.reactivex.rxjava4.core.Maybe; import io.reactivex.rxjava4.testsupport.TestHelper; /** * Checks the source code of Maybe and finds unnecessary since 2.0 annotations in the * method's Javadocs. */ -public class MaybeNo2Dot0Since { +public class CheckMaybeForSinceTagsTest extends RxJavaTest { @Test public void noSince20InMaybe() throws Exception { @@ -39,8 +39,7 @@ public void noSince20InMaybe() throws Exception { boolean classDefPassed = false; - BufferedReader in = new BufferedReader(new FileReader(f)); - try { + try (BufferedReader in = new BufferedReader(new FileReader(f))) { int ln = 1; while (true) { line = in.readLine(); @@ -56,18 +55,16 @@ public void noSince20InMaybe() throws Exception { if (classDefPassed) { if (line.contains("@since") && line.contains("2.0") && !line.contains("2.0.")) { b.append("java.lang.RuntimeException: @since 2.0 found").append("\r\n") - .append(" at io.reactivex.Maybe (Maybe.java:").append(ln).append(")\r\n\r\n"); + .append(" at io.reactivex.Maybe (Maybe.java:").append(ln).append(")\r\n\r\n"); ; } } ln++; } - } finally { - in.close(); } - if (b.length() != 0) { + if (!b.isEmpty()) { System.out.println(b); fail(b.toString()); diff --git a/src/test/java/io/reactivex/rxjava4/validators/NewLinesBeforeAnnotation.java b/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java similarity index 94% rename from src/test/java/io/reactivex/rxjava4/validators/NewLinesBeforeAnnotation.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java index 2009eed33a..760ab4510c 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/NewLinesBeforeAnnotation.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java @@ -16,6 +16,7 @@ import java.io.*; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -38,7 +39,7 @@ * @Override *
    */ -public class NewLinesBeforeAnnotation { +public class CheckNewLinesBeforeAnnotationTest extends RxJavaTest { @Test public void missingEmptyNewLine() throws Exception { @@ -103,17 +104,14 @@ static void findPattern(int newLines) throws Exception { if (fname.endsWith(".java")) { List lines = new ArrayList<>(); - BufferedReader in = new BufferedReader(new FileReader(u)); - try { - for (;;) { + try (BufferedReader in = new BufferedReader(new FileReader(u))) { + for (; ; ) { String line = in.readLine(); if (line == null) { break; } lines.add(line); } - } finally { - in.close(); } for (int i = 0; i < lines.size() - 1; i++) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/NoAnonymousInnerClassesTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java similarity index 94% rename from src/test/java/io/reactivex/rxjava4/validators/NoAnonymousInnerClassesTest.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java index 9e888cb987..97383a5682 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/NoAnonymousInnerClassesTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java @@ -17,13 +17,14 @@ import java.net.URL; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; -public class NoAnonymousInnerClassesTest { +public class CheckNoAnonymousInnerClassesTest extends RxJavaTest { @Test public void verify() throws Exception { - URL u = NoAnonymousInnerClassesTest.class.getResource(""); + URL u = CheckNoAnonymousInnerClassesTest.class.getResource(""); File f = new File(u.toURI()); String fs = f.toString().toLowerCase().replace("\\", "/"); @@ -75,8 +76,7 @@ public void verify() throws Exception { boolean found = false; - FileInputStream fin = new FileInputStream(f); - try { + try (FileInputStream fin = new FileInputStream(f)) { byte[] data = new byte[fin.available()]; fin.read(data); @@ -106,8 +106,6 @@ public void verify() throws Exception { } else { found = true; } - } finally { - fin.close(); } if (found) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/NonNullMethodTypeArgumentCheck.java b/src/test/java/io/reactivex/rxjava4/validators/CheckNonNullMethodTypeArgumentTest.java similarity index 94% rename from src/test/java/io/reactivex/rxjava4/validators/NonNullMethodTypeArgumentCheck.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckNonNullMethodTypeArgumentTest.java index e370911dd4..9f99bff71a 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/NonNullMethodTypeArgumentCheck.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckNonNullMethodTypeArgumentTest.java @@ -32,7 +32,7 @@ * declare {@code @NonNull} for said argument. * */ -public class NonNullMethodTypeArgumentCheck { +public class CheckNonNullMethodTypeArgumentTest extends RxJavaTest { static void process(Class clazz) { @@ -44,10 +44,13 @@ static void process(Class clazz) { try { File f = TestHelper.findSource(className, parentPackage); + if (f == null) { + throw new FileNotFoundException((className + " < " + parentPackage)); + } try (BufferedReader in = Files.newBufferedReader(f.toPath())) { int lineCount = 1; - String line = null; + String line; while ((line = in.readLine()) != null) { line = line.trim(); @@ -75,7 +78,7 @@ static void process(Class clazz) { } if (count != 0) { - throw new IllegalArgumentException("Found " + count + " cases\r\n" + result.toString()); + throw new IllegalArgumentException("Found " + count + " cases\r\n" + result); } } diff --git a/src/test/java/io/reactivex/rxjava4/validators/OperatorsAreFinal.java b/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsAreFinalTest.java similarity index 96% rename from src/test/java/io/reactivex/rxjava4/validators/OperatorsAreFinal.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsAreFinalTest.java index 198894ce00..3b89e8b4e3 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/OperatorsAreFinal.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsAreFinalTest.java @@ -16,11 +16,12 @@ import java.io.File; import java.lang.reflect.Modifier; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; -public class OperatorsAreFinal { +public class CheckOperatorsAreFinalTest extends RxJavaTest { File directoryOf(String baseClassName) throws Exception { File f = TestHelper.findSource("Flowable"); diff --git a/src/test/java/io/reactivex/rxjava4/validators/OperatorsUseInterfaces.java b/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsUseInterfacesTest.java similarity index 85% rename from src/test/java/io/reactivex/rxjava4/validators/OperatorsUseInterfaces.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsUseInterfacesTest.java index 00be8c9ecb..8171c66b73 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/OperatorsUseInterfaces.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsUseInterfacesTest.java @@ -31,7 +31,7 @@ * Verify that an operator method uses base interfaces as its direct input or * has lambdas returning base interfaces. */ -public class OperatorsUseInterfaces { +public class CheckOperatorsUseInterfacesTest extends RxJavaTest { @Test public void checkFlowable() { @@ -69,7 +69,7 @@ void checkClass(Class clazz) { for (Method method : clazz.getMethods()) { if (method.getDeclaringClass() == clazz) { - int pidx = 1; + int parameterIndex = 1; for (Parameter param : method.getParameters()) { Class type = param.getType(); if (type.isArray()) { @@ -78,7 +78,7 @@ void checkClass(Class clazz) { if (CLASSES.contains(type)) { errors++; error.append("Non-interface input parameter #") - .append(pidx) + .append(parameterIndex) .append(": ") .append(type) .append("\r\n") @@ -88,13 +88,13 @@ void checkClass(Class clazz) { ; } if (CAN_RETURN.contains(type)) { - Type gtype = method.getGenericParameterTypes()[pidx - 1]; + Type gtype = method.getGenericParameterTypes()[parameterIndex - 1]; if (gtype instanceof GenericArrayType) { gtype = ((GenericArrayType)gtype).getGenericComponentType(); } - ParameterizedType ptype = (ParameterizedType)gtype; + ParameterizedType parameterType = (ParameterizedType)gtype; for (;;) { - Type[] parameterArgTypes = ptype.getActualTypeArguments(); + Type[] parameterArgTypes = parameterType.getActualTypeArguments(); Type argType = parameterArgTypes[parameterArgTypes.length - 1]; if (argType instanceof GenericArrayType) { argType = ((GenericArrayType)argType).getGenericComponentType(); @@ -104,7 +104,7 @@ void checkClass(Class clazz) { if (CLASSES.contains(lastArg.getRawType())) { errors++; error.append("Non-interface lambda return #") - .append(pidx) + .append(parameterIndex) .append(": ") .append(type) .append("\r\n") @@ -115,14 +115,14 @@ void checkClass(Class clazz) { } if (CAN_RETURN.contains(lastArg.getRawType())) { - ptype = lastArg; + parameterType = lastArg; continue; } } break; } } - pidx++; + parameterIndex++; } } } @@ -135,32 +135,48 @@ void checkClass(Class clazz) { public void method1(Flowable f) { // self-test + assertNull(f); } public void method2(Callable> c) { // self-test + assertNull(c); } public void method3(Supplier>> c) { // self-test + assertNull(c); } public void method4(Flowable[] array) { // self-test + assertNull(array); } public void method5(Callable[]> c) { // self-test + assertNull(c); } public void method6(Callable[]>> c) { // self-test + assertNull(c); + } + + @Test + public void methodCalls() { + method1(null); + method2(null); + method3(null); + method4(null); + method5(null); + method6(null); } @Test public void checkSelf() { try { - checkClass(OperatorsUseInterfaces.class); + checkClass(CheckOperatorsUseInterfacesTest.class); throw new RuntimeException("Should have failed"); } catch (AssertionError expected) { assertTrue(expected.toString(), expected.toString().contains("method1")); @@ -172,13 +188,13 @@ public void checkSelf() { } } - static final Set> CLASSES = new HashSet<>(Arrays.asList( + static final Set CLASSES = new HashSet<>(Arrays.asList( Flowable.class, Observable.class, Maybe.class, Single.class, Completable.class )); - static final Set> CAN_RETURN = new HashSet<>(Arrays.asList( + static final Set CAN_RETURN = new HashSet<>(Arrays.asList( Callable.class, Supplier.class, Function.class, BiFunction.class, Function3.class, Function4.class, Function5.class, Function6.class, Function7.class, Function8.class, diff --git a/src/test/java/io/reactivex/rxjava4/validators/ParamValidationNaming.java b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationNamingTest.java similarity index 99% rename from src/test/java/io/reactivex/rxjava4/validators/ParamValidationNaming.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationNamingTest.java index 612e9eb614..a0e3afad1a 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/ParamValidationNaming.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationNamingTest.java @@ -35,7 +35,7 @@ * and ObjectHelper.verifyPositive calls match the parameter * name in the message. */ -public class ParamValidationNaming { +public class CheckParamValidationNamingTest extends RxJavaTest { @Test public void checkCompletable() throws Exception { diff --git a/src/test/java/io/reactivex/rxjava4/validators/ParamValidationCheckerTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java similarity index 99% rename from src/test/java/io/reactivex/rxjava4/validators/ParamValidationCheckerTest.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java index 7183ab269e..2027083fbe 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/ParamValidationCheckerTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java @@ -39,7 +39,7 @@ * Check that static and instance methods validate their parameters against * null and invalid values properly. */ -public class ParamValidationCheckerTest { +public class CheckParamValidationTest extends RxJavaTest { @Test(timeout = 30000) public void checkFlowable() { diff --git a/src/test/java/io/reactivex/rxjava4/validators/ParameterNamesInClassesTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckParameterNamesInClassesTest.java similarity index 88% rename from src/test/java/io/reactivex/rxjava4/validators/ParameterNamesInClassesTest.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckParameterNamesInClassesTest.java index 61ca7f3965..0a174d86a1 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/ParameterNamesInClassesTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckParameterNamesInClassesTest.java @@ -14,11 +14,15 @@ package io.reactivex.rxjava4.validators; import static org.junit.Assert.assertEquals; + +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; -public class ParameterNamesInClassesTest { +public class CheckParameterNamesInClassesTest extends RxJavaTest { + void method(int paramName) { // deliberately empty + assertEquals(1, paramName); } @Test diff --git a/src/test/java/io/reactivex/rxjava4/validators/PublicFinalMethods.java b/src/test/java/io/reactivex/rxjava4/validators/CheckPublicFinalMethodsTest.java similarity index 88% rename from src/test/java/io/reactivex/rxjava4/validators/PublicFinalMethods.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckPublicFinalMethodsTest.java index 0f3af79d24..ed6196037a 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/PublicFinalMethods.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckPublicFinalMethodsTest.java @@ -17,14 +17,14 @@ import java.lang.reflect.*; -import org.junit.Test; +import org.junit.*; import io.reactivex.rxjava4.core.*; /** * Verifies that instance methods of the base reactive classes are all declared final. */ -public class PublicFinalMethods { +public class CheckPublicFinalMethodsTest extends RxJavaTest { static void scan(Class clazz) { for (Method m : clazz.getMethods()) { @@ -62,4 +62,10 @@ public void completable() { public void maybe() { scan(Maybe.class); } + + @Test + @Ignore("Interfaces and defaults not yet handled, TODO") + public void streamable() { + scan(Streamable.class); + } } diff --git a/src/test/java/io/reactivex/rxjava4/validators/SourceAnnotationCheck.java b/src/test/java/io/reactivex/rxjava4/validators/CheckSourceAnnotationTest.java similarity index 99% rename from src/test/java/io/reactivex/rxjava4/validators/SourceAnnotationCheck.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckSourceAnnotationTest.java index 828fe86289..15261e7128 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/SourceAnnotationCheck.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckSourceAnnotationTest.java @@ -36,7 +36,7 @@ * @NonNull or @Nullable annotations specified on their return type and object-type parameters * as well as @SafeVarargs for varargs. */ -public class SourceAnnotationCheck extends RxJavaTest { +public class CheckSourceAnnotationTest extends RxJavaTest { @Test public void checkCompletable() throws Exception { diff --git a/src/test/java/io/reactivex/rxjava4/validators/TestPrefixInMethodName.java b/src/test/java/io/reactivex/rxjava4/validators/CheckTestPrefixInMethodNameTest.java similarity index 94% rename from src/test/java/io/reactivex/rxjava4/validators/TestPrefixInMethodName.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckTestPrefixInMethodNameTest.java index 19c6cc0bac..f1fba90a54 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/TestPrefixInMethodName.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckTestPrefixInMethodNameTest.java @@ -17,6 +17,7 @@ import java.util.*; import java.util.regex.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -24,7 +25,7 @@ /** * Check verifying there are no methods with the prefix "test" in the name. */ -public class TestPrefixInMethodName { +public class CheckTestPrefixInMethodNameTest extends RxJavaTest { private static final String pattern = "void\\s+test[a-zA-Z0-9]"; private static final String replacement = "void "; @@ -56,7 +57,7 @@ public void checkAndUpdateTestMethodNames() throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { @@ -67,9 +68,8 @@ public void checkAndUpdateTestMethodNames() throws Exception { int lineNum = 0; List lines = new ArrayList<>(); - BufferedReader in = new BufferedReader(new FileReader(u)); //boolean found = false; - try { + try (BufferedReader in = new BufferedReader(new FileReader(u))) { for (; ; ) { String line = in.readLine(); if (line == null) { @@ -98,8 +98,6 @@ public void checkAndUpdateTestMethodNames() throws Exception { } } - } finally { - in.close(); } /*if (found && System.getenv("CI") == null) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/TextualAorAn.java b/src/test/java/io/reactivex/rxjava4/validators/CheckTextualAorAnTest.java similarity index 96% rename from src/test/java/io/reactivex/rxjava4/validators/TextualAorAn.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckTextualAorAnTest.java index 15fc431c46..8609e0c545 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/TextualAorAn.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckTextualAorAnTest.java @@ -16,6 +16,7 @@ import java.io.*; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -23,7 +24,7 @@ /** * Adds license header to java files. */ -public class TextualAorAn { +public class CheckTextualAorAnTest extends RxJavaTest { @Test public void checkFiles() throws Exception { @@ -45,7 +46,7 @@ public void checkFiles() throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { @@ -54,9 +55,8 @@ public void checkFiles() throws Exception { if (u.getName().endsWith(".java")) { List lines = new ArrayList<>(); - BufferedReader in = new BufferedReader(new FileReader(u)); - try { - for (;;) { + try (BufferedReader in = new BufferedReader(new FileReader(u))) { + for (; ; ) { String line = in.readLine(); if (line == null) { break; @@ -64,8 +64,6 @@ public void checkFiles() throws Exception { lines.add(line); } - } finally { - in.close(); } String clazz = u.getAbsolutePath().replace('\\', '/'); @@ -78,7 +76,7 @@ public void checkFiles() throws Exception { } } - if (fail.length() != 0) { + if (!fail.isEmpty()) { System.out.println(fail); throw new AssertionError(fail.toString()); } diff --git a/src/test/java/io/reactivex/rxjava4/validators/TooManyEmptyNewLines.java b/src/test/java/io/reactivex/rxjava4/validators/CheckTooManyEmptyNewLinesTest.java similarity index 91% rename from src/test/java/io/reactivex/rxjava4/validators/TooManyEmptyNewLines.java rename to src/test/java/io/reactivex/rxjava4/validators/CheckTooManyEmptyNewLinesTest.java index 98c2da9c63..a1bce5675d 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/TooManyEmptyNewLines.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckTooManyEmptyNewLinesTest.java @@ -16,6 +16,7 @@ import java.io.*; import java.util.*; +import io.reactivex.rxjava4.core.RxJavaTest; import org.junit.Test; import io.reactivex.rxjava4.testsupport.TestHelper; @@ -23,7 +24,7 @@ /** * Test verifying there are no 2..5 empty newlines in the code. */ -public class TooManyEmptyNewLines { +public class CheckTooManyEmptyNewLinesTest extends RxJavaTest { @Test public void tooManyEmptyNewLines2() throws Exception { @@ -57,9 +58,7 @@ static void findPattern(int newLines) throws Exception { StringBuilder fail = new StringBuilder(); fail.append("The following code pattern was found: "); fail.append("\\R"); - for (int i = 0; i < newLines; i++) { - fail.append("\\R"); - } + fail.repeat("\\R", Math.max(0, newLines)); fail.append("\n"); File parent = f.getParentFile().getParentFile(); @@ -73,7 +72,7 @@ static void findPattern(int newLines) throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { @@ -83,17 +82,14 @@ static void findPattern(int newLines) throws Exception { if (fname.endsWith(".java")) { List lines = new ArrayList<>(); - BufferedReader in = new BufferedReader(new FileReader(u)); - try { - for (;;) { + try (BufferedReader in = new BufferedReader(new FileReader(u))) { + for (; ; ) { String line = in.readLine(); if (line == null) { break; } lines.add(line); } - } finally { - in.close(); } for (int i = 0; i < lines.size() - newLines; i++) { From c60e2095d626b8a9e289408639617509b1cd9ca5 Mon Sep 17 00:00:00 2001 From: akarnokd Date: Fri, 26 Jun 2026 09:40:12 +0200 Subject: [PATCH 3/5] isEmpty cleanup --- .../java/io/reactivex/rxjava4/core/Streamable.java | 2 +- .../flowable/FlowableWindowBoundarySelector.java | 2 +- .../observable/ObservableWindowBoundarySelector.java | 2 +- .../schedulers/SchedulerToExecutorService.java | 4 ++-- .../rxjava4/flowable/FlowableCollectTest.java | 4 ++-- .../flowable/FlowableCombineLatestTest.java | 2 +- .../operators/flowable/FlowableMergeTest.java | 10 +++++----- .../operators/flowable/FlowableObserveOnTest.java | 4 ++-- .../operators/flowable/FlowableRefCountTest.java | 8 ++++---- .../operators/flowable/FlowableRetryTest.java | 6 +++--- .../operators/flowable/FlowableSwitchTest.java | 2 +- .../operators/flowable/FlowableTimeoutTests.java | 4 ++-- .../operators/flowable/FlowableToListTest.java | 2 +- .../flowable/FlowableWindowWithTimeTest.java | 2 +- .../operators/maybe/MaybeTimeoutPublisherTest.java | 2 +- .../internal/operators/maybe/MaybeTimeoutTest.java | 2 +- .../operators/mixed/FlowableSwitchMapMaybeTest.java | 2 +- .../operators/mixed/FlowableSwitchMapSingleTest.java | 2 +- .../mixed/ObservableSwitchMapMaybeTest.java | 2 +- .../mixed/ObservableSwitchMapSingleTest.java | 2 +- .../observable/ObservableCombineLatestTest.java | 2 +- .../operators/observable/ObservableMergeTest.java | 4 ++-- .../observable/ObservableObserveOnTest.java | 2 +- .../operators/observable/ObservableRefCountTest.java | 8 ++++---- .../operators/observable/ObservableRetryTest.java | 6 +++--- .../operators/observable/ObservableTimeoutTests.java | 4 ++-- .../observable/ObservableWindowWithTimeTest.java | 2 +- .../operators/streamable/StreamableBaseTest.java | 2 +- .../DeferredScalarSubscriptionTest.java | 4 ++-- .../rxjava4/processors/AsyncProcessorTest.java | 2 +- .../rxjava4/processors/BehaviorProcessorTest.java | 2 +- .../rxjava4/processors/PublishProcessorTest.java | 2 +- .../rxjava4/processors/SerializedProcessorTest.java | 4 ++-- .../rxjava4/processors/UnicastProcessorTest.java | 4 ++-- .../rxjava4/schedulers/SchedulerLifecycleTest.java | 2 +- .../reactivex/rxjava4/schedulers/SchedulerTest.java | 2 +- .../reactivex/rxjava4/subjects/AsyncSubjectTest.java | 2 +- .../rxjava4/subjects/SerializedSubjectTest.java | 4 ++-- .../rxjava4/subjects/UnicastSubjectTest.java | 4 ++-- .../validators/CheckAndFixLicenseHeadersTest.java | 4 ++-- .../validators/CheckAnonClassForLambdaTest.java | 4 ++-- .../validators/CheckBaseTypeAnnotationsTest.java | 6 +++--- .../validators/CheckCatchThrowIfFatalTest.java | 2 +- .../validators/CheckInternalWrongNamingTest.java | 2 +- .../validators/CheckJavadocForAnnotationsTest.java | 4 ++-- .../rxjava4/validators/CheckJavadocWordingTest.java | 12 ++++++------ .../validators/CheckLocalVariablesInTest.java | 2 +- .../CheckNewLinesBeforeAnnotationTest.java | 2 +- .../validators/CheckNoAnonymousInnerClassesTest.java | 2 +- .../validators/CheckOperatorsAreFinalTest.java | 2 +- 50 files changed, 85 insertions(+), 85 deletions(-) diff --git a/src/main/java/io/reactivex/rxjava4/core/Streamable.java b/src/main/java/io/reactivex/rxjava4/core/Streamable.java index 95ad08d0ff..8c0ff25647 100644 --- a/src/main/java/io/reactivex/rxjava4/core/Streamable.java +++ b/src/main/java/io/reactivex/rxjava4/core/Streamable.java @@ -186,7 +186,7 @@ static Streamable fromPublisher(@NonNull Flow.Publisher source, @NonNu for(var stage : stages) { list.add(stage); } - while (list.size() != 0) { + while (!list.isEmpty()) { var winner = AwaitCoordinatorStatic.awaitFirstIndex(list, emitter.canceller()); emitter.emit((CompletionStage)list.remove(winner)); } diff --git a/src/main/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowBoundarySelector.java b/src/main/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowBoundarySelector.java index 8be77d9db8..edea2c41c9 100644 --- a/src/main/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowBoundarySelector.java +++ b/src/main/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowBoundarySelector.java @@ -297,7 +297,7 @@ else if (o instanceof WindowEndSubscriberIntercept) { continue; } - else if (openDone && windows.size() == 0) { + else if (openDone && windows.isEmpty()) { upstream.cancel(); startSubscriber.cancel(); resources.dispose(); diff --git a/src/main/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowBoundarySelector.java b/src/main/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowBoundarySelector.java index 655a6acbdf..0e79890c8b 100644 --- a/src/main/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowBoundarySelector.java +++ b/src/main/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowBoundarySelector.java @@ -282,7 +282,7 @@ else if (o instanceof WindowEndObserverIntercept) { continue; } - else if (openDone && windows.size() == 0) { + else if (openDone && windows.isEmpty()) { upstream.dispose(); startObserver.dispose(); resources.dispose(); diff --git a/src/main/java/io/reactivex/rxjava4/internal/schedulers/SchedulerToExecutorService.java b/src/main/java/io/reactivex/rxjava4/internal/schedulers/SchedulerToExecutorService.java index 5449901fab..58ef33e2fd 100644 --- a/src/main/java/io/reactivex/rxjava4/internal/schedulers/SchedulerToExecutorService.java +++ b/src/main/java/io/reactivex/rxjava4/internal/schedulers/SchedulerToExecutorService.java @@ -178,7 +178,7 @@ public List> invokeAll(Collection> tasks, lo @Override public T invokeAny(Collection> tasks) throws InterruptedException, ExecutionException { - if (tasks.size() == 0) { + if (tasks.isEmpty()) { throw new IllegalArgumentException("The tasks parameter should contain at least one callable!"); } @@ -208,7 +208,7 @@ public T invokeAny(Collection> tasks) throws Interrupt @Override public T invokeAny(Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { - if (tasks.size() == 0) { + if (tasks.isEmpty()) { throw new IllegalArgumentException("The tasks parameter should contain at least one callable!"); } diff --git a/src/test/java/io/reactivex/rxjava4/flowable/FlowableCollectTest.java b/src/test/java/io/reactivex/rxjava4/flowable/FlowableCollectTest.java index b87a80b7d0..3ba8683818 100644 --- a/src/test/java/io/reactivex/rxjava4/flowable/FlowableCollectTest.java +++ b/src/test/java/io/reactivex/rxjava4/flowable/FlowableCollectTest.java @@ -59,7 +59,7 @@ public void collectToStringFlowable() { .collect( StringBuilder::new, (sb, v) -> { - if (sb.length() > 0) { + if (!sb.isEmpty()) { sb.append("-"); } sb.append(v); @@ -177,7 +177,7 @@ public void collectToString() { .collect( StringBuilder::new, (sb, v) -> { - if (sb.length() > 0) { + if (!sb.isEmpty()) { sb.append("-"); } sb.append(v); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java index 1a0fefbbc3..49b4732844 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java @@ -1050,7 +1050,7 @@ public void onErrorRace() { TestHelper.race(r1, r2); - if (ts.errors().size() != 0) { + if (!ts.errors().isEmpty()) { if (ts.errors().getFirst() instanceof CompositeException) { ts.assertSubscribed() .assertNotComplete() diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java index 154e69159d..7f08918cb0 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java @@ -628,7 +628,7 @@ public void onNext(Integer t) { Flowable.merge(f1.take(Flowable.bufferSize() * 2), f2.take(Flowable.bufferSize() * 2)).subscribe(testSubscriber); testSubscriber.awaitDone(5, TimeUnit.SECONDS); - if (testSubscriber.errors().size() > 0) { + if (!testSubscriber.errors().isEmpty()) { testSubscriber.errors().getFirst().printStackTrace(); } testSubscriber.assertNoErrors(); @@ -670,7 +670,7 @@ public void onNext(Integer t) { System.out.println("Generated 1: " + generated1.get() + " / received: " + onNextEvents.size()); System.out.println(onNextEvents); - if (testSubscriber.errors().size() > 0) { + if (!testSubscriber.errors().isEmpty()) { testSubscriber.errors().getFirst().printStackTrace(); } testSubscriber.assertNoErrors(); @@ -710,7 +710,7 @@ public void onNext(Integer t) { Flowable.merge(f1.take(Flowable.bufferSize() * 2), f2.take(Flowable.bufferSize() * 2)).observeOn(Schedulers.computation()).subscribe(testSubscriber); testSubscriber.awaitDone(10, TimeUnit.SECONDS); - if (testSubscriber.errors().size() > 0) { + if (!testSubscriber.errors().isEmpty()) { testSubscriber.errors().getFirst().printStackTrace(); } testSubscriber.assertNoErrors(); @@ -746,7 +746,7 @@ public void onNext(Integer t) { Flowable.merge(f1).observeOn(Schedulers.computation()).take(Flowable.bufferSize() * 2).subscribe(testSubscriber); testSubscriber.awaitDone(10, TimeUnit.SECONDS); - if (testSubscriber.errors().size() > 0) { + if (!testSubscriber.errors().isEmpty()) { testSubscriber.errors().getFirst().printStackTrace(); } testSubscriber.assertNoErrors(); @@ -794,7 +794,7 @@ public void onNext(Integer t) { Flowable.merge(f1).observeOn(Schedulers.computation()).take(Flowable.bufferSize() * 2).subscribe(testSubscriber); testSubscriber.awaitDone(10, TimeUnit.SECONDS); - if (testSubscriber.errors().size() > 0) { + if (!testSubscriber.errors().isEmpty()) { testSubscriber.errors().getFirst().printStackTrace(); } testSubscriber.assertNoErrors(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableObserveOnTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableObserveOnTest.java index a5ecfb4cec..2e178a9e07 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableObserveOnTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableObserveOnTest.java @@ -72,7 +72,7 @@ public void ordering() throws InterruptedException { obs.observeOn(Schedulers.computation()).subscribe(ts); ts.awaitDone(1000, TimeUnit.MILLISECONDS); - if (ts.errors().size() > 0) { + if (!ts.errors().isEmpty()) { for (Throwable t : ts.errors()) { t.printStackTrace(); } @@ -1612,7 +1612,7 @@ public void backFusedCancelConditional() { ts.assertFusionMode(QueueFuseable.ASYNC); - if (ts.values().size() != 0) { + if (!ts.values().isEmpty()) { ts.assertResult(1); } } diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRefCountTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRefCountTest.java index 4898b54393..8d1b74e7e6 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRefCountTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRefCountTest.java @@ -191,8 +191,8 @@ public void repeat() { ts2.cancel(); ts1.assertNoErrors(); ts2.assertNoErrors(); - assertTrue(ts1.values().size() > 0); - assertTrue(ts2.values().size() > 0); + assertTrue(!ts1.values().isEmpty()); + assertTrue(!ts2.values().isEmpty()); } assertEquals(10, subscribeCount.get()); @@ -226,7 +226,7 @@ public void connectUnsubscribe() throws InterruptedException { System.out.println("DONE sending unsubscribe ... now waiting"); if (!unsubscribeLatch.await(3000, TimeUnit.MILLISECONDS)) { System.out.println("Errors: " + s.errors()); - if (s.errors().size() > 0) { + if (!s.errors().isEmpty()) { s.errors().getFirst().printStackTrace(); } fail("timed out waiting for unsubscribe"); @@ -269,7 +269,7 @@ public void connectUnsubscribeRaceCondition() throws InterruptedException { System.out.println("DONE sending unsubscribe ... now waiting"); System.out.println("Errors: " + s.errors()); - if (s.errors().size() > 0) { + if (!s.errors().isEmpty()) { s.errors().getFirst().printStackTrace(); } s.assertNoErrors(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRetryTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRetryTest.java index ef0c9ae569..1790cafd25 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRetryTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableRetryTest.java @@ -707,7 +707,7 @@ public void retryWithBackpressureParallel() throws InterruptedException { } cdl.await(); assertEquals(0, timeouts.get()); - if (data.size() > 0) { + if (!data.isEmpty()) { fail("Data content mismatch: " + allSequenceFrequency(data)); } } @@ -718,7 +718,7 @@ public void retryWithBackpressureParallel() throws InterruptedException { static StringBuilder allSequenceFrequency(Map> its) { StringBuilder b = new StringBuilder(); for (Map.Entry> e : its.entrySet()) { - if (b.length() > 0) { + if (!b.isEmpty()) { b.append(", "); } b.append(e.getKey()).append("={"); @@ -734,7 +734,7 @@ static StringBuilder sequenceFrequency(Iterable it) { int cnt = 0; for (Object curr : it) { - if (sb.length() > 0) { + if (!sb.isEmpty()) { if (!curr.equals(prev)) { if (cnt > 1) { sb.append(" x ").append(cnt); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableSwitchTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableSwitchTest.java index f8ad1a0b1a..76daac9b5b 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableSwitchTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableSwitchTest.java @@ -476,7 +476,7 @@ public void initialRequestsDontOverflow() { ts.request(Long.MAX_VALUE - 1); ts.request(2); ts.awaitDone(5, TimeUnit.SECONDS); - assertTrue(ts.values().size() > 0); + assertTrue(!ts.values().isEmpty()); } @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTimeoutTests.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTimeoutTests.java index 44804c338d..48403b9047 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTimeoutTests.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableTimeoutTests.java @@ -450,8 +450,8 @@ public void onNextOnTimeoutRace() { TestHelper.race(r1, r2); - if (ts.values().size() != 0) { - if (ts.errors().size() != 0) { + if (!ts.values().isEmpty()) { + if (!ts.errors().isEmpty()) { ts.assertFailure(TimeoutException.class, 1); ts.assertErrorMessage(timeoutMessage(1, TimeUnit.SECONDS)); } else { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableToListTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableToListTest.java index 4d2e7c8175..da0e56a5bd 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableToListTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableToListTest.java @@ -293,7 +293,7 @@ public void onCompleteCancelRaceFlowable() { TestHelper.race(r1, r2); - if (ts.values().size() != 0) { + if (!ts.values().isEmpty()) { ts.assertValue(List.of(1)) .assertNoErrors(); } diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowWithTimeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowWithTimeTest.java index dd7fb73c5e..489593d901 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowWithTimeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableWindowWithTimeTest.java @@ -181,7 +181,7 @@ public void takeFlatMapCompletes() { ts.awaitDone(5, TimeUnit.SECONDS); ts.assertComplete(); - Assert.assertTrue(ts.values().size() != 0); + Assert.assertTrue(!ts.values().isEmpty()); } @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutPublisherTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutPublisherTest.java index 75e0bdf814..767e1550e2 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutPublisherTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutPublisherTest.java @@ -195,7 +195,7 @@ public void onCompleteRace() { to.assertSubscribed().assertNoValues(); - if (to.errors().size() != 0) { + if (!to.errors().isEmpty()) { to.assertError(TimeoutException.class).assertNotComplete(); } else { to.assertNoErrors().assertComplete(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutTest.java index 945791b778..f07b5b0120 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeTimeoutTest.java @@ -317,7 +317,7 @@ public void onCompleteRace() { to.assertSubscribed().assertNoValues(); - if (to.errors().size() != 0) { + if (!to.errors().isEmpty()) { to.assertError(TimeoutException.class).assertNotComplete(); } else { to.assertNoErrors().assertComplete(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapMaybeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapMaybeTest.java index 07efc61904..e4762ed388 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapMaybeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapMaybeTest.java @@ -407,7 +407,7 @@ public void nextInnerErrorRace() { TestHelper.race(r1, r2); - if (ts.errors().size() != 0) { + if (!ts.errors().isEmpty()) { assertTrue(errors.isEmpty()); ts.assertFailure(TestException.class); } else if (!errors.isEmpty()) { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapSingleTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapSingleTest.java index 4b51f0394b..4b056d76ce 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapSingleTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/FlowableSwitchMapSingleTest.java @@ -368,7 +368,7 @@ public void nextInnerErrorRace() { TestHelper.race(r1, r2); - if (ts.errors().size() != 0) { + if (!ts.errors().isEmpty()) { assertTrue(errors.isEmpty()); ts.assertFailure(TestException.class); } else if (!errors.isEmpty()) { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapMaybeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapMaybeTest.java index 4d148916a2..f2b72c77c3 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapMaybeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapMaybeTest.java @@ -387,7 +387,7 @@ public void nextInnerErrorRace() { TestHelper.race(r1, r2); - if (to.errors().size() != 0) { + if (!to.errors().isEmpty()) { assertTrue(errors.isEmpty()); to.assertFailure(TestException.class); } else if (!errors.isEmpty()) { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapSingleTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapSingleTest.java index 0b79b704c5..9c7bd4bb1d 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapSingleTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/mixed/ObservableSwitchMapSingleTest.java @@ -365,7 +365,7 @@ public void nextInnerErrorRace() { TestHelper.race(r1, r2); - if (to.errors().size() != 0) { + if (!to.errors().isEmpty()) { assertTrue(errors.isEmpty()); to.assertFailure(TestException.class); } else if (!errors.isEmpty()) { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableCombineLatestTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableCombineLatestTest.java index 328dc1f54e..e29f0da133 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableCombineLatestTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableCombineLatestTest.java @@ -828,7 +828,7 @@ public void onErrorRace() { TestHelper.race(r1, r2); - if (to.errors().size() != 0) { + if (!to.errors().isEmpty()) { if (to.errors().getFirst() instanceof CompositeException) { to.assertSubscribed() .assertNotComplete() diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java index 978337b9a1..2fc71bb7d5 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java @@ -653,7 +653,7 @@ public void onNext(Integer t) { System.out.println("Generated 1: " + generated1.get() + " / received: " + onNextEvents.size()); System.out.println(onNextEvents); - if (testObserver.errors().size() > 0) { + if (!testObserver.errors().isEmpty()) { testObserver.errors().getFirst().printStackTrace(); } testObserver.assertNoErrors(); @@ -745,7 +745,7 @@ public void onNext(Integer t) { Observable.merge(o1).observeOn(Schedulers.computation()).take(Flowable.bufferSize() * 2).subscribe(to); to.awaitDone(5, TimeUnit.SECONDS); - if (to.errors().size() > 0) { + if (!to.errors().isEmpty()) { to.errors().getFirst().printStackTrace(); } to.assertNoErrors(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableObserveOnTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableObserveOnTest.java index 7dc6e6c96a..b81f1781bc 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableObserveOnTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableObserveOnTest.java @@ -74,7 +74,7 @@ public void ordering() throws InterruptedException { obs.observeOn(Schedulers.computation()).subscribe(to); to.awaitDone(1000, TimeUnit.MILLISECONDS); - if (to.errors().size() > 0) { + if (!to.errors().isEmpty()) { for (Throwable t : to.errors()) { t.printStackTrace(); } diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRefCountTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRefCountTest.java index 9da04a3225..1c3f46a685 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRefCountTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRefCountTest.java @@ -176,8 +176,8 @@ public void repeat() { to2.dispose(); to1.assertNoErrors(); to2.assertNoErrors(); - assertTrue(to1.values().size() > 0); - assertTrue(to2.values().size() > 0); + assertTrue(!to1.values().isEmpty()); + assertTrue(!to2.values().isEmpty()); } assertEquals(10, subscribeCount.get()); @@ -211,7 +211,7 @@ public void connectUnsubscribe() throws InterruptedException { System.out.println("DONE sending unsubscribe ... now waiting"); if (!unsubscribeLatch.await(3000, TimeUnit.MILLISECONDS)) { System.out.println("Errors: " + observer.errors()); - if (observer.errors().size() > 0) { + if (!observer.errors().isEmpty()) { observer.errors().getFirst().printStackTrace(); } fail("timed out waiting for unsubscribe"); @@ -261,7 +261,7 @@ public void connectUnsubscribeRaceCondition() throws InterruptedException { System.out.println("DONE sending unsubscribe ... now waiting"); System.out.println("Errors: " + observer.errors()); - if (observer.errors().size() > 0) { + if (!observer.errors().isEmpty()) { observer.errors().getFirst().printStackTrace(); } observer.assertNoErrors(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRetryTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRetryTest.java index 0843e8418a..e8d34ce7de 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRetryTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableRetryTest.java @@ -646,7 +646,7 @@ public void retryWithBackpressureParallel() throws InterruptedException { } cdl.await(); assertEquals(0, timeouts.get()); - if (data.size() > 0) { + if (!data.isEmpty()) { fail("Data content mismatch: " + allSequenceFrequency(data)); } } @@ -657,7 +657,7 @@ public void retryWithBackpressureParallel() throws InterruptedException { static StringBuilder allSequenceFrequency(Map> its) { StringBuilder b = new StringBuilder(); for (Map.Entry> e : its.entrySet()) { - if (b.length() > 0) { + if (!b.isEmpty()) { b.append(", "); } b.append(e.getKey()).append("={"); @@ -673,7 +673,7 @@ static StringBuilder sequenceFrequency(Iterable it) { int cnt = 0; for (Object curr : it) { - if (sb.length() > 0) { + if (!sb.isEmpty()) { if (!curr.equals(prev)) { if (cnt > 1) { sb.append(" x ").append(cnt); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTimeoutTests.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTimeoutTests.java index d7d86f9320..4d9b1387d7 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTimeoutTests.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTimeoutTests.java @@ -447,8 +447,8 @@ public void onNextOnTimeoutRace() { TestHelper.race(r1, r2); - if (to.values().size() != 0) { - if (to.errors().size() != 0) { + if (!to.values().isEmpty()) { + if (!to.errors().isEmpty()) { to.assertFailure(TimeoutException.class, 1); to.assertErrorMessage(timeoutMessage(1, TimeUnit.SECONDS)); } else { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowWithTimeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowWithTimeTest.java index fa805c2fb8..ed68fc4a7d 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowWithTimeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableWindowWithTimeTest.java @@ -180,7 +180,7 @@ public void takeFlatMapCompletes() { to.awaitDone(5, TimeUnit.SECONDS); to.assertComplete(); - Assert.assertTrue(to.values().size() != 0); + Assert.assertTrue(!to.values().isEmpty()); } @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java index 042f18d396..dd6dac0b83 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java @@ -61,7 +61,7 @@ protected final void afterTest(TestInfo testInfo) { for (var c : cleaners) { c.clean(); } - if (errors.size() != 0) { + if (!errors.isEmpty()) { throw new AssertionError("Undeliverable exceptions during test detected: " + testInfo.getDisplayName(), new CompositeException(errors)); } diff --git a/src/test/java/io/reactivex/rxjava4/internal/subscriptions/DeferredScalarSubscriptionTest.java b/src/test/java/io/reactivex/rxjava4/internal/subscriptions/DeferredScalarSubscriptionTest.java index eae0a18ffb..8aef892d2a 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/subscriptions/DeferredScalarSubscriptionTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/subscriptions/DeferredScalarSubscriptionTest.java @@ -80,7 +80,7 @@ public void requestClearRace() { TestHelper.race(r1, r2); - if (ts.values().size() >= 1) { + if (!ts.values().isEmpty()) { ts.assertValue(1); } } @@ -101,7 +101,7 @@ public void requestCancelRace() { TestHelper.race(r1, r2); - if (ts.values().size() >= 1) { + if (!ts.values().isEmpty()) { ts.assertValue(1); } } diff --git a/src/test/java/io/reactivex/rxjava4/processors/AsyncProcessorTest.java b/src/test/java/io/reactivex/rxjava4/processors/AsyncProcessorTest.java index 1df123f121..d9c6177132 100644 --- a/src/test/java/io/reactivex/rxjava4/processors/AsyncProcessorTest.java +++ b/src/test/java/io/reactivex/rxjava4/processors/AsyncProcessorTest.java @@ -421,7 +421,7 @@ public void onErrorCancelRace() { TestHelper.race(r1, r2); - if (ts1.errors().size() != 0) { + if (!ts1.errors().isEmpty()) { ts1.assertFailure(TestException.class); } else { ts1.assertEmpty(); diff --git a/src/test/java/io/reactivex/rxjava4/processors/BehaviorProcessorTest.java b/src/test/java/io/reactivex/rxjava4/processors/BehaviorProcessorTest.java index aaf79bb9b5..9263c9938d 100644 --- a/src/test/java/io/reactivex/rxjava4/processors/BehaviorProcessorTest.java +++ b/src/test/java/io/reactivex/rxjava4/processors/BehaviorProcessorTest.java @@ -748,7 +748,7 @@ public void subscriberCancelOfferRace() { TestHelper.race(r1, r2); - if (ts.values().size() > 0) { + if (!ts.values().isEmpty()) { ts.assertValuesOnly(0); } else { ts.assertEmpty(); diff --git a/src/test/java/io/reactivex/rxjava4/processors/PublishProcessorTest.java b/src/test/java/io/reactivex/rxjava4/processors/PublishProcessorTest.java index 00aa4da51d..c6990e10ce 100644 --- a/src/test/java/io/reactivex/rxjava4/processors/PublishProcessorTest.java +++ b/src/test/java/io/reactivex/rxjava4/processors/PublishProcessorTest.java @@ -617,7 +617,7 @@ public void subscriberCancelOfferRace() { TestHelper.race(r1, r2); - if (ts.values().size() > 0) { + if (!ts.values().isEmpty()) { ts.assertValuesOnly(0); } else { ts.assertEmpty(); diff --git a/src/test/java/io/reactivex/rxjava4/processors/SerializedProcessorTest.java b/src/test/java/io/reactivex/rxjava4/processors/SerializedProcessorTest.java index 26182e3597..85d98c0697 100644 --- a/src/test/java/io/reactivex/rxjava4/processors/SerializedProcessorTest.java +++ b/src/test/java/io/reactivex/rxjava4/processors/SerializedProcessorTest.java @@ -458,7 +458,7 @@ public void onNextOnErrorRace() { ts.assertError(ex).assertNotComplete(); - if (ts.values().size() != 0) { + if (!ts.values().isEmpty()) { ts.assertValue(1); } } @@ -479,7 +479,7 @@ public void onNextOnCompleteRace() { ts.assertComplete().assertNoErrors(); - if (ts.values().size() != 0) { + if (!ts.values().isEmpty()) { ts.assertValue(1); } } diff --git a/src/test/java/io/reactivex/rxjava4/processors/UnicastProcessorTest.java b/src/test/java/io/reactivex/rxjava4/processors/UnicastProcessorTest.java index fd50e2052a..8d42ffce64 100644 --- a/src/test/java/io/reactivex/rxjava4/processors/UnicastProcessorTest.java +++ b/src/test/java/io/reactivex/rxjava4/processors/UnicastProcessorTest.java @@ -298,10 +298,10 @@ public void subscribeRace() { TestHelper.race(r1, r2); - if (ts1.errors().size() == 0) { + if (ts1.errors().isEmpty()) { ts2.assertFailure(IllegalStateException.class); } else - if (ts2.errors().size() == 0) { + if (ts2.errors().isEmpty()) { ts1.assertFailure(IllegalStateException.class); } else { fail("Neither TestObserver failed"); diff --git a/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java b/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java index f0413463cf..31b6cbcb12 100644 --- a/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java +++ b/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java @@ -51,7 +51,7 @@ public void shutdown() throws InterruptedException { } } } - if (b.length() > 0) { + if (!b.isEmpty()) { System.out.print(b); System.out.println("testShutdown >> Restarting schedulers..."); Schedulers.start(); // restart them anyways diff --git a/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerTest.java b/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerTest.java index 7bc4a0d4c1..7657b6b254 100644 --- a/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerTest.java +++ b/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerTest.java @@ -208,7 +208,7 @@ public void scheduleDirectThrows() throws Exception { Thread.sleep(250); - assertTrue(list.size() >= 1); + assertTrue(!list.isEmpty()); TestHelper.assertUndeliverable(list, 0, TestException.class, null); } finally { diff --git a/src/test/java/io/reactivex/rxjava4/subjects/AsyncSubjectTest.java b/src/test/java/io/reactivex/rxjava4/subjects/AsyncSubjectTest.java index 3c2ff78778..d8898ceff5 100644 --- a/src/test/java/io/reactivex/rxjava4/subjects/AsyncSubjectTest.java +++ b/src/test/java/io/reactivex/rxjava4/subjects/AsyncSubjectTest.java @@ -415,7 +415,7 @@ public void onErrorCancelRace() { TestHelper.race(r1, r2); - if (to1.errors().size() != 0) { + if (!to1.errors().isEmpty()) { to1.assertFailure(TestException.class); } else { to1.assertEmpty(); diff --git a/src/test/java/io/reactivex/rxjava4/subjects/SerializedSubjectTest.java b/src/test/java/io/reactivex/rxjava4/subjects/SerializedSubjectTest.java index d799d4f054..dc9055145f 100644 --- a/src/test/java/io/reactivex/rxjava4/subjects/SerializedSubjectTest.java +++ b/src/test/java/io/reactivex/rxjava4/subjects/SerializedSubjectTest.java @@ -459,7 +459,7 @@ public void onNextOnErrorRace() { to.assertError(ex).assertNotComplete(); - if (to.values().size() != 0) { + if (!to.values().isEmpty()) { to.assertValue(1); } } @@ -480,7 +480,7 @@ public void onNextOnCompleteRace() { to.assertComplete().assertNoErrors(); - if (to.values().size() != 0) { + if (!to.values().isEmpty()) { to.assertValue(1); } } diff --git a/src/test/java/io/reactivex/rxjava4/subjects/UnicastSubjectTest.java b/src/test/java/io/reactivex/rxjava4/subjects/UnicastSubjectTest.java index c5006a16ba..d09a1aae27 100644 --- a/src/test/java/io/reactivex/rxjava4/subjects/UnicastSubjectTest.java +++ b/src/test/java/io/reactivex/rxjava4/subjects/UnicastSubjectTest.java @@ -362,10 +362,10 @@ public void subscribeRace() { TestHelper.race(r1, r2); - if (to1.errors().size() == 0) { + if (to1.errors().isEmpty()) { to2.assertFailure(IllegalStateException.class); } else - if (to2.errors().size() == 0) { + if (to2.errors().isEmpty()) { to1.assertFailure(IllegalStateException.class); } else { fail("Neither TestObserver failed"); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckAndFixLicenseHeadersTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckAndFixLicenseHeadersTest.java index 85f4dc8ea1..e7b4d8523b 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckAndFixLicenseHeadersTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckAndFixLicenseHeadersTest.java @@ -66,7 +66,7 @@ public void checkAndUpdateLicenses() throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { @@ -120,7 +120,7 @@ public void checkAndUpdateLicenses() throws Exception { } } - if (fail.length() != 0) { + if (!fail.isEmpty()) { System.out.println(fail); throw new AssertionError(fail.toString()); } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java index 30e6fe8f6e..d9f72802a0 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java @@ -70,7 +70,7 @@ public void checkAndUpdateLicenses() throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { @@ -102,7 +102,7 @@ public void checkAndUpdateLicenses() throws Exception { } } - if (fail.length() != 0) { + if (!fail.isEmpty()) { System.out.println(fail); System.out.println(total); throw new AssertionError(fail.toString()); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java index 84153ab32e..474c8a1819 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java @@ -75,7 +75,7 @@ static void checkCheckReturnValueSupport(Class clazz) { } } - if (b.length() != 0) { + if (!b.isEmpty()) { System.out.println(clazz); System.out.println("------------------------"); System.out.println(b); @@ -123,7 +123,7 @@ static void checkSchedulerSupport(Class clazz) { } } - if (b.length() != 0) { + if (!b.isEmpty()) { System.out.println(clazz); System.out.println("------------------------"); System.out.println(b); @@ -178,7 +178,7 @@ static void checkBackpressureSupport(Class clazz) { } } - if (b.length() != 0) { + if (!b.isEmpty()) { System.out.println(clazz); System.out.println("------------------------"); System.out.println(b); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckCatchThrowIfFatalTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckCatchThrowIfFatalTest.java index 24c615aa06..1b66c65056 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckCatchThrowIfFatalTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckCatchThrowIfFatalTest.java @@ -51,7 +51,7 @@ public void check() throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java index b8cb6a7144..8e2c2823ad 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java @@ -70,7 +70,7 @@ static void checkInternalOperatorNaming(String baseClassName, String consumerCla } } - if (fail.length() != 0) { + if (!fail.isEmpty()) { System.out.println(fail); System.out.println(); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java index 956c4016f6..5bee49a727 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java @@ -44,7 +44,7 @@ static void checkSource(String baseClassName, boolean scheduler) throws Exceptio scanFor(b, "@BackpressureSupport", "Backpressure:", e, baseClassName); } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); @@ -195,7 +195,7 @@ static void checkSchedulerBadMethod(String baseClassName) throws Exception { scanForBadMethod(b, "@SchedulerSupport", "Scheduler:", e, baseClassName); - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java index b44e9c12ca..94f2e1044e 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java @@ -218,7 +218,7 @@ public void maybeDocRefersToMaybeTypes() throws Exception { } } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); @@ -363,7 +363,7 @@ public void flowableDocRefersToFlowableTypes() throws Exception { } } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); @@ -507,7 +507,7 @@ public void parallelFlowableDocRefersToCorrectTypes() throws Exception { } } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); @@ -611,7 +611,7 @@ public void observableDocRefersToObservableTypes() throws Exception { } } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); @@ -788,7 +788,7 @@ public void singleDocRefersToSingleTypes() throws Exception { } } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); @@ -980,7 +980,7 @@ public void completableDocRefersToCompletableTypes() throws Exception { } } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); fail(e.toString()); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTest.java index 60a1481765..6b232d3109 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckLocalVariablesInTest.java @@ -70,7 +70,7 @@ static void findPattern(String pattern, boolean checkMain) throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java index 760ab4510c..8767ff99b9 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java @@ -94,7 +94,7 @@ static void findPattern(int newLines) throws Exception { f = dirs.poll(); File[] list = f.listFiles(); - if (list != null && list.length != 0) { + if (list != null) { for (File u : list) { if (u.isDirectory()) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java index 97383a5682..9f6c25d261 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java @@ -52,7 +52,7 @@ public void verify() throws Exception { if (f.isDirectory()) { File[] dir = f.listFiles(); - if (dir != null && dir.length != 0) { + if (dir != null) { for (File g : dir) { queue.offer(g); } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsAreFinalTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsAreFinalTest.java index 3b89e8b4e3..ca20c38b18 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsAreFinalTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckOperatorsAreFinalTest.java @@ -62,7 +62,7 @@ void check(String baseClassName) throws Exception { } } - if (e.length() != 0) { + if (!e.isEmpty()) { System.out.println(e); throw new AssertionError(e.toString()); From c12b383a8c043d68a3856cd5ea73f2a6409386d4 Mon Sep 17 00:00:00 2001 From: akarnokd Date: Fri, 26 Jun 2026 10:08:15 +0200 Subject: [PATCH 4/5] append fixes, typo fixes, unused removals --- docs/Creating-Observables.md | 4 +-- docs/What's-different-in-2.0.md | 2 +- .../core/CompletionStageDisposable.java | 6 ++-- .../io/reactivex/rxjava4/core/Streamable.java | 2 +- .../exceptions/CompositeException.java | 16 +++------- .../operators/streamable/StreamableJust.java | 2 +- .../observers/QueueDrainObserverTest.java | 4 +-- .../completable/CompletableDetachTest.java | 6 ++-- .../flowable/FlowableCombineLatestTest.java | 4 +-- .../FlowableConcatMapSchedulerTest.java | 2 +- .../flowable/FlowableConcatTest.java | 2 +- .../flowable/FlowableFromSourceTest.java | 2 +- .../flowable/FlowableGroupByTest.java | 4 +-- .../operators/flowable/FlowableMergeTest.java | 1 - .../flowable/FlowablePublishTest.java | 1 - .../operators/flowable/FlowableZipTest.java | 4 +-- .../operators/maybe/MaybeDetachTest.java | 8 ++--- .../MaybeFlatMapIterableFlowableTest.java | 2 -- .../MaybeFlatMapIterableObservableTest.java | 1 - .../ObservableConcatMapSchedulerTest.java | 2 +- .../observable/ObservableConcatTest.java | 2 +- .../observable/ObservableGroupByTest.java | 4 +-- .../observable/ObservableMergeTest.java | 1 - .../observable/ObservablePublishTest.java | 1 - .../ObservableTakeUntilPredicateTest.java | 1 - .../operators/single/SingleDetachTest.java | 6 ++-- .../SingleFlatMapIterableFlowableTest.java | 2 -- .../SingleFlatMapIterableObservableTest.java | 2 -- .../subscribers/QueueDrainSubscriberTest.java | 8 ++--- .../ExecutorSchedulerInterruptibleTest.java | 1 - .../schedulers/SchedulerLifecycleTest.java | 4 +-- .../rxjava4/validators/BaseTypeParser.java | 8 ++--- .../CheckAnonClassForLambdaTest.java | 16 ---------- .../CheckBaseTypeAnnotationsTest.java | 12 ++++---- .../CheckInternalWrongNamingTest.java | 24 ++++++++------- .../CheckJavadocCodesAndLinksTest.java | 28 ++++++++--------- .../CheckJavadocForAnnotationsTest.java | 8 ++--- .../validators/CheckJavadocWordingTest.java | 8 +++-- .../CheckMaybeForSinceTagsTest.java | 1 - .../CheckNewLinesBeforeAnnotationTest.java | 4 +-- .../CheckNoAnonymousInnerClassesTest.java | 12 ++++++-- .../CheckParamValidationNamingTest.java | 2 +- .../validators/CheckParamValidationTest.java | 29 ++++++------------ .../validators/CheckSourceAnnotationTest.java | 14 ++++----- .../CheckTestPrefixInMethodNameTest.java | 30 ++----------------- .../validators/CheckTextualAorAnTest.java | 26 ---------------- .../CheckTooManyEmptyNewLinesTest.java | 10 +++---- 47 files changed, 122 insertions(+), 217 deletions(-) diff --git a/docs/Creating-Observables.md b/docs/Creating-Observables.md index 6cab1e4d47..417f4e4d2c 100644 --- a/docs/Creating-Observables.md +++ b/docs/Creating-Observables.md @@ -99,8 +99,8 @@ When a consumer subscribes, the given `java.util.concurrent.Callable` is invoked ```java Callable callable = () -> { System.out.println("Hello World!"); - return "Hello World!"); -} + return "Hello World!"; +}; Observable observable = Observable.fromCallable(callable); diff --git a/docs/What's-different-in-2.0.md b/docs/What's-different-in-2.0.md index bd9fe27d3c..f2918d9f35 100644 --- a/docs/What's-different-in-2.0.md +++ b/docs/What's-different-in-2.0.md @@ -60,7 +60,7 @@ Observable.just(1).map(v -> null) This means that `Observable` can no longer emit any values but only terminate normally or with an exception. API designers may instead choose to define `Observable` with no guarantee on what `Object` will be (which should be irrelevant anyway). For example, if one needs a signaller-like source, a shared enum can be defined and its solo instance `onNext`'d: ```java -enum Irrelevant { INSTANCE; } +enum Irrelevant { INSTANCE} Observable source = Observable.create((ObservableEmitter emitter) -> { System.out.println("Side-effect 1"); diff --git a/src/main/java/io/reactivex/rxjava4/core/CompletionStageDisposable.java b/src/main/java/io/reactivex/rxjava4/core/CompletionStageDisposable.java index 57c8598cff..750e21aca3 100644 --- a/src/main/java/io/reactivex/rxjava4/core/CompletionStageDisposable.java +++ b/src/main/java/io/reactivex/rxjava4/core/CompletionStageDisposable.java @@ -86,7 +86,7 @@ public CompletionStageDisposable(@NonNull CompletionStage stage, @NonNull Dis * Await the completion of the current stage. */ public void await() { - state.lazySet(true);; + state.lazySet(true); AwaitCoordinatorStatic.await(stage); } @@ -95,7 +95,7 @@ public void await() { * @param canceller the canceller link */ public void await(DisposableContainer canceller) { - state.lazySet(true);; + state.lazySet(true); AwaitCoordinatorStatic.await(stage, canceller); } @@ -103,7 +103,7 @@ public void await(DisposableContainer canceller) { * Indicate this instance is deliberately not awaiting its stage. */ public void ignore() { - state.lazySet(true);; + state.lazySet(true); } @Override diff --git a/src/main/java/io/reactivex/rxjava4/core/Streamable.java b/src/main/java/io/reactivex/rxjava4/core/Streamable.java index 8c0ff25647..312b4cf398 100644 --- a/src/main/java/io/reactivex/rxjava4/core/Streamable.java +++ b/src/main/java/io/reactivex/rxjava4/core/Streamable.java @@ -208,7 +208,7 @@ static Streamable fromPublisher(@NonNull Flow.Publisher source, @NonNu } }, emitter.canceller(), exec)) { mainSource.await(emitter.canceller()); - }; + } }, exec); } diff --git a/src/main/java/io/reactivex/rxjava4/exceptions/CompositeException.java b/src/main/java/io/reactivex/rxjava4/exceptions/CompositeException.java index 51f5eb1896..632ac682ec 100644 --- a/src/main/java/io/reactivex/rxjava4/exceptions/CompositeException.java +++ b/src/main/java/io/reactivex/rxjava4/exceptions/CompositeException.java @@ -114,18 +114,14 @@ public synchronized Throwable getCause() { // NOPMD for (Throwable inner : exceptions) { int depth = 0; while (inner != null) { - for (int i = 0; i < depth; i++) { - aggregateMessage.append(" "); - } + aggregateMessage.repeat(" ", Math.max(0, depth)); aggregateMessage.append("|-- "); aggregateMessage.append(inner.getClass().getCanonicalName()).append(": "); String innerMessage = inner.getMessage(); if (innerMessage != null && innerMessage.contains(separator)) { aggregateMessage.append(separator); for (String line : innerMessage.split(separator)) { - for (int i = 0; i < depth + 2; i++) { - aggregateMessage.append(" "); - } + aggregateMessage.repeat(" ", Math.max(0, depth + 2)); aggregateMessage.append(line).append(separator); } } else { @@ -133,9 +129,7 @@ public synchronized Throwable getCause() { // NOPMD aggregateMessage.append(separator); } - for (int i = 0; i < depth + 2; i++) { - aggregateMessage.append(" "); - } + aggregateMessage.repeat(" ", Math.max(0, depth + 2)); StackTraceElement[] st = inner.getStackTrace(); if (st.length > 0) { aggregateMessage.append("at ").append(st[0]).append(separator); @@ -149,9 +143,7 @@ public synchronized Throwable getCause() { // NOPMD } else { inner = inner.getCause(); if (inner != null) { - for (int i = 0; i < depth + 2; i++) { - aggregateMessage.append(" "); - } + aggregateMessage.repeat(" ", Math.max(0, depth + 2)); aggregateMessage.append("|-- "); aggregateMessage.append("(cause not expanded again) "); aggregateMessage.append(inner.getClass().getCanonicalName()).append(": "); diff --git a/src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableJust.java b/src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableJust.java index 24c1285565..cc1d7f92f6 100644 --- a/src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableJust.java +++ b/src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableJust.java @@ -23,7 +23,7 @@ public record StreamableJust(@NonNull T item) implements Streamable { public StreamableJust(T item) { - this.item = Objects.requireNonNull(item, "item is null");; + this.item = Objects.requireNonNull(item, "item is null"); } @Override diff --git a/src/test/java/io/reactivex/rxjava4/internal/observers/QueueDrainObserverTest.java b/src/test/java/io/reactivex/rxjava4/internal/observers/QueueDrainObserverTest.java index 1ad18ab285..e18ee49af3 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/observers/QueueDrainObserverTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/observers/QueueDrainObserverTest.java @@ -23,7 +23,7 @@ public class QueueDrainObserverTest extends RxJavaTest { - static final QueueDrainObserver createUnordered(TestObserver to, final Disposable d) { + static QueueDrainObserver createUnordered(TestObserver to, final Disposable d) { return new QueueDrainObserver(to, new SpscArrayQueue<>(4)) { @Override public void onNext(Integer t) { @@ -50,7 +50,7 @@ public void accept(Observer a, Integer v) { }; } - static final QueueDrainObserver createOrdered(TestObserver to, final Disposable d) { + static QueueDrainObserver createOrdered(TestObserver to, final Disposable d) { return new QueueDrainObserver(to, new SpscArrayQueue<>(4)) { @Override public void onNext(Integer t) { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/completable/CompletableDetachTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/completable/CompletableDetachTest.java index f3c882bf3c..4043b9386d 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/completable/CompletableDetachTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/completable/CompletableDetachTest.java @@ -65,7 +65,7 @@ public void cancelDetaches() throws Exception { @Override protected void subscribeActual(CompletableObserver observer) { observer.onSubscribe(wr.get()); - }; + } } .onTerminateDetach() .test(); @@ -93,7 +93,7 @@ protected void subscribeActual(CompletableObserver observer) { observer.onSubscribe(wr.get()); observer.onComplete(); observer.onComplete(); - }; + } } .onTerminateDetach() .test(); @@ -119,7 +119,7 @@ protected void subscribeActual(CompletableObserver observer) { observer.onSubscribe(wr.get()); observer.onError(new TestException()); observer.onError(new IOException()); - }; + } } .onTerminateDetach() .test(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java index 49b4732844..c90f4c0a9e 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableCombineLatestTest.java @@ -895,9 +895,7 @@ public void combineLatestNArguments() throws Exception { params[i] = ArgsToString.INSTANCE; StringBuilder b = new StringBuilder(); - for (int j = 0; j < i; j++) { - b.append('1'); - } + b.repeat("1", i); ((Flowable)m.invoke(null, params)).test().assertResult(b.toString()); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatMapSchedulerTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatMapSchedulerTest.java index 399a687be5..54379ef59b 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatMapSchedulerTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatMapSchedulerTest.java @@ -301,7 +301,7 @@ public void onNext(Integer t) { if (counter.getAndIncrement() % 100 == 0) { System.out.print("testIssue2890NoStackoverflow -> "); System.out.println(counter.get()); - }; + } } @Override diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatTest.java index 7fb4faa7db..df224518f0 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableConcatTest.java @@ -720,7 +720,7 @@ public void onNext(Integer t) { if (counter.getAndIncrement() % 100 == 0) { System.out.print("testIssue2890NoStackoverflow -> "); System.out.println(counter.get()); - }; + } } @Override diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableFromSourceTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableFromSourceTest.java index 61569c3dec..68d84d5f00 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableFromSourceTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableFromSourceTest.java @@ -694,7 +694,7 @@ public void onNext(Integer v) { processor.subscribe(as); - t.setCancellable(as::dispose);; + t.setCancellable(as::dispose); } @Override diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableGroupByTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableGroupByTest.java index bd889647d8..e26e5f70d2 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableGroupByTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableGroupByTest.java @@ -602,7 +602,7 @@ public String toString() { Flowable ASYNC_INFINITE_OBSERVABLE_OF_EVENT(final int numGroups, final AtomicInteger subscribeCounter, final AtomicInteger sentEventCounter) { return SYNC_INFINITE_OBSERVABLE_OF_EVENT(numGroups, subscribeCounter, sentEventCounter).subscribeOn(Schedulers.newThread()); - }; + } Flowable SYNC_INFINITE_OBSERVABLE_OF_EVENT(final int numGroups, final AtomicInteger subscribeCounter, final AtomicInteger sentEventCounter) { return Flowable.unsafeCreate(op -> { @@ -620,7 +620,7 @@ Flowable SYNC_INFINITE_OBSERVABLE_OF_EVENT(final int numGroups, final Ato } op.onComplete(); }); - }; + } @Test public void groupByOnAsynchronousSourceAcceptsMultipleSubscriptions() throws InterruptedException { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java index 7f08918cb0..482206e941 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableMergeTest.java @@ -1151,7 +1151,6 @@ private static Consumer pauseForMs(final long time) { Function> toScalar = Flowable::just; Function> toHiddenScalar = t -> Flowable.just(t).hide(); - ; void runMerge(Function> func, TestSubscriberEx ts) { List list = new ArrayList<>(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowablePublishTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowablePublishTest.java index ce33fef7be..2fe7b9c9e1 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowablePublishTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowablePublishTest.java @@ -142,7 +142,6 @@ public void backpressureTwoConsumers() { final Flowable source = Flowable.range(1, 100) .doOnNext(_ -> sourceEmission.incrementAndGet()) .doOnCancel(() -> sourceUnsubscribed.set(true)).share(); - ; final AtomicBoolean child1Unsubscribed = new AtomicBoolean(); final AtomicBoolean child2Unsubscribed = new AtomicBoolean(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableZipTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableZipTest.java index e58e40198d..ad4a0ac2f4 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableZipTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/flowable/FlowableZipTest.java @@ -1092,9 +1092,7 @@ public void zipNArguments() throws Exception { params[i] = ArgsToString.INSTANCE; StringBuilder b = new StringBuilder(); - for (int j = 0; j < i; j++) { - b.append('1'); - } + b.repeat("1", i); ((Flowable)m.invoke(null, params)).test().assertResult(b.toString()); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeDetachTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeDetachTest.java index 4be1afd2bd..9b1cb65f0d 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeDetachTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeDetachTest.java @@ -65,7 +65,7 @@ public void cancelDetaches() throws Exception { @Override protected void subscribeActual(MaybeObserver observer) { observer.onSubscribe(wr.get()); - }; + } } .onTerminateDetach() .test(); @@ -93,7 +93,7 @@ protected void subscribeActual(MaybeObserver observer) { observer.onSubscribe(wr.get()); observer.onComplete(); observer.onComplete(); - }; + } } .onTerminateDetach() .test(); @@ -119,7 +119,7 @@ protected void subscribeActual(MaybeObserver observer) { observer.onSubscribe(wr.get()); observer.onError(new TestException()); observer.onError(new IOException()); - }; + } } .onTerminateDetach() .test(); @@ -145,7 +145,7 @@ protected void subscribeActual(MaybeObserver observer) { observer.onSubscribe(wr.get()); observer.onSuccess(1); observer.onSuccess(2); - }; + } } .onTerminateDetach() .test(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableFlowableTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableFlowableTest.java index 3bd407bb4a..12a8df7aab 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableFlowableTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableFlowableTest.java @@ -109,7 +109,6 @@ public void fused() { ts.assertFuseable() .assertFusionMode(QueueFuseable.ASYNC) .assertResult(1, 2); - ; } @Test @@ -122,7 +121,6 @@ public void fusedNoSync() { ts.assertFuseable() .assertFusionMode(QueueFuseable.NONE) .assertResult(1, 2); - ; } @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableObservableTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableObservableTest.java index 42aaefa359..173cbd4de0 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableObservableTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/maybe/MaybeFlatMapIterableObservableTest.java @@ -82,7 +82,6 @@ public void fused() { to.assertFuseable() .assertFusionMode(QueueFuseable.ASYNC) .assertResult(1, 2); - ; } @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatMapSchedulerTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatMapSchedulerTest.java index 9b7f65b55f..e9857a536e 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatMapSchedulerTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatMapSchedulerTest.java @@ -248,7 +248,7 @@ public void onNext(Integer t) { if (counter.getAndIncrement() % 100 == 0) { System.out.print("testIssue2890NoStackoverflow -> "); System.out.println(counter.get()); - }; + } } @Override diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatTest.java index 7f96f13e97..8443507a82 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableConcatTest.java @@ -674,7 +674,7 @@ public void onNext(Integer t) { } if (counter.getAndIncrement() % 100 == 0) { System.out.println("testIssue2890NoStackoverflow -> " + counter.get()); - }; + } } @Override diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableGroupByTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableGroupByTest.java index 447df2297c..e88fb2de2c 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableGroupByTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableGroupByTest.java @@ -588,7 +588,7 @@ public String toString() { Observable ASYNC_INFINITE_OBSERVABLE_OF_EVENT(final int numGroups, final AtomicInteger subscribeCounter, final AtomicInteger sentEventCounter) { return SYNC_INFINITE_OBSERVABLE_OF_EVENT(numGroups, subscribeCounter, sentEventCounter).subscribeOn(Schedulers.newThread()); - }; + } Observable SYNC_INFINITE_OBSERVABLE_OF_EVENT(final int numGroups, final AtomicInteger subscribeCounter, final AtomicInteger sentEventCounter) { return Observable.unsafeCreate(op -> { @@ -606,7 +606,7 @@ Observable SYNC_INFINITE_OBSERVABLE_OF_EVENT(final int numGroups, final A } op.onComplete(); }); - }; + } @Test public void groupByOnAsynchronousSourceAcceptsMultipleSubscriptions() throws InterruptedException { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java index 2fc71bb7d5..0542ea12f4 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeTest.java @@ -914,7 +914,6 @@ public void mergeManyAsyncSingle() { Function> toScalar = Observable::just; Function> toHiddenScalar = t -> Observable.just(t).hide(); - ; void runMerge(Function> func, TestObserverEx to) { List list = new ArrayList<>(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservablePublishTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservablePublishTest.java index c8c25834cf..62dfce9252 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservablePublishTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservablePublishTest.java @@ -140,7 +140,6 @@ public void backpressureTwoConsumers() { final Observable source = Observable.range(1, 100) .doOnNext(_ -> sourceEmission.incrementAndGet()) .doOnDispose(() -> sourceUnsubscribed.set(true)).share(); - ; final AtomicBoolean child1Unsubscribed = new AtomicBoolean(); final AtomicBoolean child2Unsubscribed = new AtomicBoolean(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTakeUntilPredicateTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTakeUntilPredicateTest.java index 7719a276a0..446237e382 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTakeUntilPredicateTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableTakeUntilPredicateTest.java @@ -28,7 +28,6 @@ import io.reactivex.rxjava4.plugins.RxJavaPlugins; import io.reactivex.rxjava4.subjects.PublishSubject; import io.reactivex.rxjava4.testsupport.*; -; public class ObservableTakeUntilPredicateTest extends RxJavaTest { @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleDetachTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleDetachTest.java index ecf0828604..9440eed524 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleDetachTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleDetachTest.java @@ -65,7 +65,7 @@ public void cancelDetaches() throws Exception { @Override protected void subscribeActual(SingleObserver observer) { observer.onSubscribe(wr.get()); - }; + } } .onTerminateDetach() .test(); @@ -93,7 +93,7 @@ protected void subscribeActual(SingleObserver observer) { observer.onSubscribe(wr.get()); observer.onError(new TestException()); observer.onError(new IOException()); - }; + } } .onTerminateDetach() .test(); @@ -119,7 +119,7 @@ protected void subscribeActual(SingleObserver observer) { observer.onSubscribe(wr.get()); observer.onSuccess(1); observer.onSuccess(2); - }; + } } .onTerminateDetach() .test(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableFlowableTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableFlowableTest.java index 23b74eb8a4..da9f91c86d 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableFlowableTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableFlowableTest.java @@ -94,7 +94,6 @@ public void fused() { ts.assertFuseable() .assertFusionMode(QueueFuseable.ASYNC) .assertResult(1, 2); - ; } @Test @@ -107,7 +106,6 @@ public void fusedNoSync() { ts.assertFuseable() .assertFusionMode(QueueFuseable.NONE) .assertResult(1, 2); - ; } @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableObservableTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableObservableTest.java index ec106c1f76..1d0666e78b 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableObservableTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/single/SingleFlatMapIterableObservableTest.java @@ -75,7 +75,6 @@ public void fused() { to.assertFuseable() .assertFusionMode(QueueFuseable.ASYNC) .assertResult(1, 2); - ; } @Test @@ -88,7 +87,6 @@ public void fusedNoSync() { to.assertFuseable() .assertFusionMode(QueueFuseable.NONE) .assertResult(1, 2); - ; } @Test diff --git a/src/test/java/io/reactivex/rxjava4/internal/subscribers/QueueDrainSubscriberTest.java b/src/test/java/io/reactivex/rxjava4/internal/subscribers/QueueDrainSubscriberTest.java index 91d7d96134..fb6a51dc62 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/subscribers/QueueDrainSubscriberTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/subscribers/QueueDrainSubscriberTest.java @@ -31,7 +31,7 @@ public class QueueDrainSubscriberTest extends RxJavaTest { - static final QueueDrainSubscriber createUnordered(TestSubscriber ts, final Disposable d) { + static QueueDrainSubscriber createUnordered(TestSubscriber ts, final Disposable d) { return new QueueDrainSubscriber(ts, new SpscArrayQueue<>(4)) { @Override public void onNext(Integer t) { @@ -59,7 +59,7 @@ public boolean accept(Subscriber a, Integer v) { }; } - static final QueueDrainSubscriber createOrdered(TestSubscriber ts, final Disposable d) { + static QueueDrainSubscriber createOrdered(TestSubscriber ts, final Disposable d) { return new QueueDrainSubscriber(ts, new SpscArrayQueue<>(4)) { @Override public void onNext(Integer t) { @@ -87,7 +87,7 @@ public boolean accept(Subscriber a, Integer v) { }; } - static final QueueDrainSubscriber createUnorderedReject(TestSubscriber ts, final Disposable d) { + static QueueDrainSubscriber createUnorderedReject(TestSubscriber ts, final Disposable d) { return new QueueDrainSubscriber(ts, new SpscArrayQueue<>(4)) { @Override public void onNext(Integer t) { @@ -115,7 +115,7 @@ public boolean accept(Subscriber a, Integer v) { }; } - static final QueueDrainSubscriber createOrderedReject(TestSubscriber ts, final Disposable d) { + static QueueDrainSubscriber createOrderedReject(TestSubscriber ts, final Disposable d) { return new QueueDrainSubscriber(ts, new SpscArrayQueue<>(4)) { @Override public void onNext(Integer t) { diff --git a/src/test/java/io/reactivex/rxjava4/schedulers/ExecutorSchedulerInterruptibleTest.java b/src/test/java/io/reactivex/rxjava4/schedulers/ExecutorSchedulerInterruptibleTest.java index 0a2191c787..b37c48169a 100644 --- a/src/test/java/io/reactivex/rxjava4/schedulers/ExecutorSchedulerInterruptibleTest.java +++ b/src/test/java/io/reactivex/rxjava4/schedulers/ExecutorSchedulerInterruptibleTest.java @@ -997,7 +997,6 @@ public void noInterruptAfterRunningDelayedWorker() throws Throwable { }, 100, TimeUnit.MILLISECONDS); Thread.sleep(150); - ; d.dispose(); int i = 50; diff --git a/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java b/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java index 31b6cbcb12..98a18e5063 100644 --- a/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java +++ b/src/test/java/io/reactivex/rxjava4/schedulers/SchedulerLifecycleTest.java @@ -45,7 +45,7 @@ public void shutdown() throws InterruptedException { StringBuilder b = new StringBuilder(); for (Thread t : rxThreads) { if (t.isAlive()) { - b.append("Thread " + t + " failed to shutdown\r\n"); + b.append("Thread ").append(t).append(" failed to shutdown\r\n"); for (StackTraceElement ste : t.getStackTrace()) { b.append(" ").append(ste).append("\r\n"); } @@ -54,7 +54,7 @@ public void shutdown() throws InterruptedException { if (!b.isEmpty()) { System.out.print(b); System.out.println("testShutdown >> Restarting schedulers..."); - Schedulers.start(); // restart them anyways + Schedulers.start(); // restart them anyway fail("Rx Threads were still alive:\r\n" + b); } diff --git a/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java b/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java index 008ec0347a..d5a443c2cb 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java +++ b/src/test/java/io/reactivex/rxjava4/validators/BaseTypeParser.java @@ -129,10 +129,10 @@ public static List parse(File f, String baseClassName) throws Exceptio m.backpressureKind = b.substring(backpressureSpec + 21, backpressureSpecEnd); } - int schhedulerSpec = b.indexOf("@SchedulerSupport(", javadocEnd); - if (schhedulerSpec > 0 && schhedulerSpec < definitionStart) { - int schedulerSpecEnd = b.indexOf(")", schhedulerSpec + 18); - m.schedulerKind = b.substring(schhedulerSpec + 18, schedulerSpecEnd); + int schedulerSpec = b.indexOf("@SchedulerSupport(", javadocEnd); + if (schedulerSpec > 0 && schedulerSpec < definitionStart) { + int schedulerSpecEnd = b.indexOf(")", schedulerSpec + 18); + m.schedulerKind = b.substring(schedulerSpec + 18, schedulerSpecEnd); } list.add(m); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java index d9f72802a0..25f3e8d987 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckAnonClassForLambdaTest.java @@ -28,22 +28,6 @@ */ public class CheckAnonClassForLambdaTest extends RxJavaTest { - String[] header = { - "/*", - " * Copyright (c) 2016-present, RxJava Contributors.", - " *", - " * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in", - " * compliance with the License. You may obtain a copy of the License at", - " *", - " * http://www.apache.org/licenses/LICENSE-2.0", - " *", - " * Unless required by applicable law or agreed to in writing, software distributed under the License is", - " * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See", - " * the License for the specific language governing permissions and limitations under the License.", - " */", - "" - }; - @Test public void checkAndUpdateLicenses() throws Exception { if (System.getenv("CI") != null) { diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java index 474c8a1819..e12d4c93e2 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckBaseTypeAnnotationsTest.java @@ -100,8 +100,8 @@ static void checkSchedulerSupport(Class clazz) { if (ann.value().equals(SchedulerSupport.CUSTOM)) { boolean found = false; - for (Class paramclazz : m.getParameterTypes()) { - if (Scheduler.class.isAssignableFrom(paramclazz)) { + for (Class paramClass : m.getParameterTypes()) { + if (Scheduler.class.isAssignableFrom(paramClass)) { found = true; break; } @@ -110,8 +110,8 @@ static void checkSchedulerSupport(Class clazz) { b.append("Marked with CUSTOM scheduler but no Scheduler parameter: ").append(m).append("\r\n"); } } else { - for (Class paramclazz : m.getParameterTypes()) { - if (Scheduler.class.isAssignableFrom(paramclazz)) { + for (Class paramClass : m.getParameterTypes()) { + if (Scheduler.class.isAssignableFrom(paramClass)) { if (!m.getName().equals("timestamp") && !m.getName().equals("timeInterval")) { b.append("Marked with specific scheduler but Scheduler parameter found: ").append(m).append("\r\n"); break; @@ -157,8 +157,8 @@ static void checkBackpressureSupport(Class clazz) { } } else { boolean found = false; - for (Class paramclazz : m.getParameterTypes()) { - if (Publisher.class.isAssignableFrom(paramclazz)) { + for (Class paramClass : m.getParameterTypes()) { + if (Publisher.class.isAssignableFrom(paramClass)) { found = true; break; } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java index 8e2c2823ad..a7c7a1f0b6 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckInternalWrongNamingTest.java @@ -32,15 +32,15 @@ static void checkInternalOperatorNaming(String baseClassName, String consumerCla return; } - String rxdir = f.getParentFile().getParentFile().getAbsolutePath().replace('\\', '/'); + String directory = f.getParentFile().getParentFile().getAbsolutePath().replace('\\', '/'); - if (!rxdir.endsWith("/")) { - rxdir += "/"; + if (!directory.endsWith("/")) { + directory += "/"; } - rxdir += "internal/operators/" + baseClassName.toLowerCase() + "/"; + directory += "internal/operators/" + baseClassName.toLowerCase() + "/"; - File[] list = new File(rxdir).listFiles(); + File[] list = new File(directory).listFiles(); if (list != null && list.length != 0) { StringBuilder fail = new StringBuilder(); @@ -60,7 +60,11 @@ static void checkInternalOperatorNaming(String baseClassName, String consumerCla String line = lines.get(i); if (line.contains(consumerClassName)) { - fail.append("java.lang.RuntimeException: " + g.getName() + " mentions " + consumerClassName) + fail + .append("java.lang.RuntimeException: ") + .append(g.getName()) + .append(" mentions ") + .append(consumerClassName) .append("\r\n at io.reactivex.internal.operators.") .append(baseClassName.toLowerCase()).append(".").append(g.getName().replace(".java", "")) .append(".method(").append(g.getName()).append(":").append(i + 1).append(")\r\n\r\n"); @@ -147,13 +151,13 @@ public void flowableNoProducers() throws Exception { } @Test - public void flowableNoUnsubscrib() throws Exception { - checkInternalOperatorNaming("Flowable", "unsubscrib"); + public void flowableNoUnsubscribe() throws Exception { + checkInternalOperatorNaming("Flowable", "unsubscribe"); } @Test - public void observableNoUnsubscrib() throws Exception { - checkInternalOperatorNaming("Observable", "unsubscrib"); + public void observableNoUnsubscribe() throws Exception { + checkInternalOperatorNaming("Observable", "unsubscribe"); } @Test diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocCodesAndLinksTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocCodesAndLinksTest.java index 48f019b25b..3400f230c5 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocCodesAndLinksTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocCodesAndLinksTest.java @@ -156,20 +156,18 @@ else if (line.startsWith("@throws") || line.startsWith("@param")) { if (jdxLink < 0) { break; } - if (jdxLink >= 0) { - errorCount++; - errors.append("The subsequent mention should be code: ") - .append("{@code ").append(name) - .append("}\r\n at ") - .append(packageName) - .append(".") - .append(baseClassName) - .append(".method(") - .append(baseClassName) - .append(".java:") - .append(i + 2 + j) - .append(")\r\n"); - } + errorCount++; + errors.append("The subsequent mention should be code: ") + .append("{@code ").append(name) + .append("}\r\n at ") + .append(packageName) + .append(".") + .append(baseClassName) + .append(".method(") + .append(baseClassName) + .append(".java:") + .append(i + 2 + j) + .append(")\r\n"); k = jdxLink + asLink.length(); } } @@ -208,7 +206,7 @@ else if (line.startsWith("@throws") || line.startsWith("@param")) { } } else { if ((idxLink < 0 && idxCode >= 0 && !isAlwaysCode) - || (idxLink >= 0 && idxCode >= 0 && idxCode < idxLink)) { + || (idxCode >= 0 && idxCode < idxLink)) { errorCount++; if (isAlwaysCode) { errors.append("The first mention should be code: ") diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java index 5bee49a727..4f98cc5dc2 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocForAnnotationsTest.java @@ -69,8 +69,8 @@ public static StringBuilder readFile(File f) throws Exception { return b; } - static final void scanFor(StringBuilder sourceCode, String annotation, String inDoc, - StringBuilder e, String baseClassName) { + static void scanFor(StringBuilder sourceCode, String annotation, String inDoc, + StringBuilder e, String baseClassName) { int index = 0; for (;;) { int idx = sourceCode.indexOf(annotation, index); @@ -105,8 +105,8 @@ static final void scanFor(StringBuilder sourceCode, String annotation, String in } } - static final void scanForBadMethod(StringBuilder sourceCode, String annotation, String inDoc, - StringBuilder e, String baseClassName) { + static void scanForBadMethod(StringBuilder sourceCode, String annotation, String inDoc, + StringBuilder e, String baseClassName) { int index = 0; for (;;) { int idx = sourceCode.indexOf(annotation, index); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java index 94f2e1044e..f32eadcb3c 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckJavadocWordingTest.java @@ -993,7 +993,7 @@ static void checkAtReturnAndSignatureMatch(String className, RxMethod m, StringB if (t.contains("Completable")) { regex = "(?s).*?\\s" + t + "\\s+\\w+\\(.*"; } else { - regex = "(?s).*?\\s" + t + "\\<.*?\\>\\s+\\w+\\(.*"; + regex = "(?s).*?\\s" + t + "<.*?>\\s+\\w+\\(.*"; } if (m.signature.matches(regex)) { for (String at : AT_RETURN_WORDS) { @@ -1159,7 +1159,7 @@ static void missingClosingDD(StringBuilder e, RxMethod m, String baseTypeName, S int idx3 = m.javadoc.indexOf("
    ", idx1 + 4); - if (idx1 > 0 && idx2 > 0 && (idx3 < 0 || (idx2 < idx3 && idx3 > 0))) { + if (idx1 > 0 && idx2 > 0 && (idx3 < 0 || idx2 < idx3)) { jdx = idx2 + 5; } else { e.append("java.lang.RuntimeException: unbalanced
    ") @@ -1169,7 +1169,9 @@ static void missingClosingDD(StringBuilder e, RxMethod m, String baseTypeName, S .append(baseTypeName) .append(".method(") .append(baseTypeName) - .append(".java:").append(m.javadocLine + lineNumber(m.javadoc, idx1) - 1).append(")\r\n\r\n"); + .append(".java:") + .append(m.javadocLine + lineNumber(m.javadoc, idx1) - 1) + .append(")\r\n\r\n"); break; } } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckMaybeForSinceTagsTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckMaybeForSinceTagsTest.java index d98ad3d833..b87370bcf4 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckMaybeForSinceTagsTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckMaybeForSinceTagsTest.java @@ -56,7 +56,6 @@ public void noSince20InMaybe() throws Exception { if (line.contains("@since") && line.contains("2.0") && !line.contains("2.0.")) { b.append("java.lang.RuntimeException: @since 2.0 found").append("\r\n") .append(" at io.reactivex.Maybe (Maybe.java:").append(ln).append(")\r\n\r\n"); - ; } } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java index 8767ff99b9..e199d297bd 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckNewLinesBeforeAnnotationTest.java @@ -78,9 +78,7 @@ static void findPattern(int newLines) throws Exception { StringBuilder fail = new StringBuilder(); fail.append("The following code pattern was found: "); fail.append("\\}\\R"); - for (int i = 0; i < newLines; i++) { - fail.append("\\R"); - } + fail.repeat("\\R", Math.max(0, newLines)); fail.append("[ ]+@\n"); File parent = f.getParentFile().getParentFile(); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java index 9f6c25d261..03c0415e89 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckNoAnonymousInnerClassesTest.java @@ -15,6 +15,7 @@ import java.io.*; import java.net.URL; +import java.nio.charset.StandardCharsets; import java.util.*; import io.reactivex.rxjava4.core.RxJavaTest; @@ -25,6 +26,9 @@ public class CheckNoAnonymousInnerClassesTest extends RxJavaTest { @Test public void verify() throws Exception { URL u = CheckNoAnonymousInnerClassesTest.class.getResource(""); + if (u == null) { + throw new FileNotFoundException("CheckNoAnonymousInnerClassesTest.class.''"); + } File f = new File(u.toURI()); String fs = f.toString().toLowerCase().replace("\\", "/"); @@ -77,10 +81,9 @@ public void verify() throws Exception { boolean found = false; try (FileInputStream fin = new FileInputStream(f)) { - byte[] data = new byte[fin.available()]; - fin.read(data); + byte[] data = fin.readAllBytes(); - String content = new String(data, "ISO-8859-1"); + String content = new String(data, StandardCharsets.ISO_8859_1); if (content.contains("$SwitchMap$")) { // the parent class can reference these synthetic inner classes @@ -88,6 +91,9 @@ public void verify() throws Exception { // but the synthetic inner classes should not have further inner classes File[] filesInTheSameDir = f.getParentFile().listFiles(); + if (filesInTheSameDir == null) { + throw new FileNotFoundException(f.getParentFile().toString()); + } for (File fsame : filesInTheSameDir) { String fsameName = fsame.getName(); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationNamingTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationNamingTest.java index a0e3afad1a..37e6c11cb4 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationNamingTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationNamingTest.java @@ -367,7 +367,7 @@ static void processFile(Class clazz) throws Exception { || linei.contains(varPattern + ",") || linei.endsWith(varPattern)) { // ignore nullable-annotated arguments - if (!linei.matches(".*\\@Nullable\\s.*" + validatorStr.code + ".*")) { + if (!linei.matches(".*@Nullable\\s.*" + validatorStr.code + ".*")) { boolean found = false; for (int k = i - 1; k >= 0; k--) { String linek = lines.get(k).trim(); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java index 2027083fbe..4c0bac7f96 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java @@ -707,21 +707,13 @@ public Object apply(Flowable upstream) { static void addIgnore(ParamIgnore ignore) { String key = ignore.toString(); - List list = ignores.get(key); - if (list == null) { - list = new ArrayList<>(); - ignores.put(key, list); - } + List list = ignores.computeIfAbsent(key, k -> new ArrayList<>()); list.add(ignore); } static void addOverride(ParamOverride ignore) { String key = ignore.toString(); - List list = overrides.get(key); - if (list == null) { - list = new ArrayList<>(); - overrides.put(key, list); - } + List list = overrides.computeIfAbsent(key, k -> new ArrayList<>()); list.add(ignore); } @@ -822,7 +814,7 @@ void checkClass(Class clazz) { } else { List defaultInstancesList = defaultInstances.get(clazz); if (defaultInstancesList == null) { - b.append("\r\nNo default instances for " + clazz); + b.append("\r\nNo default instances for ").append(clazz); fail++; continue outer; } @@ -864,7 +856,7 @@ void checkClass(Class clazz) { } Object def = defaultPrimitive(params[j], overrideParam); if (def == null) { - b.append("\r\nMissing default non-null value for " + m + " # " + j + " (" + params[j] + ")"); + b.append("\r\nMissing default non-null value for ").append(m).append(" # ").append(j).append(" (").append(params[j]).append(")"); fail++; continue outer; } @@ -872,7 +864,7 @@ void checkClass(Class clazz) { } else { Object def = defaultValues.get(params[j]); if (def == null) { - b.append("\r\nMissing default non-null value for " + m + " # " + j + " (" + params[j] + ")"); + b.append("\r\nMissing default non-null value for ").append(m).append(" # ").append(j).append(" (").append(params[j]).append(")"); fail++; continue outer; } @@ -891,7 +883,7 @@ void checkClass(Class clazz) { Object def = defaultValues.get(params[i]); if (def == null) { - b.append("\r\nMissing default non-null value for " + m + " # " + i + " (" + params[i] + ")"); + b.append("\r\nMissing default non-null value for ").append(m).append(" # ").append(i).append(" (").append(params[i]).append(")"); fail++; continue outer; } @@ -920,22 +912,19 @@ void checkClass(Class clazz) { if (!success && error.getCause() instanceof NullPointerException) { if (!error.getCause().toString().contains("is null")) { fail++; - b.append("\r\nNPEs should indicate which argument failed: " - + m + " # " + i + " = " + p + ", tag = " + tag + ", params = " + Arrays.toString(callParams2)); + b.append("\r\nNPEs should indicate which argument failed: ").append(m).append(" # ").append(i).append(" = ").append(p).append(", tag = ").append(tag).append(", params = ").append(Arrays.toString(callParams2)); } } if (success != shouldSucceed) { fail++; if (shouldSucceed) { - b.append("\r\nFailed (should have succeeded): " - + m + " # " + i + " = " + p + ", tag = " + tag + ", params = " + Arrays.toString(callParams2)); + b.append("\r\nFailed (should have succeeded): ").append(m).append(" # ").append(i).append(" = ").append(p).append(", tag = ").append(tag).append(", params = ").append(Arrays.toString(callParams2)); b.append("\r\n ").append(error); if (error.getCause() != null) { b.append("\r\n ").append(error.getCause()); } } else { - b.append("\r\nNo failure (should have failed): " - + m + " # " + i + " = " + p + ", tag = " + tag + ", params = " + Arrays.toString(callParams2)); + b.append("\r\nNo failure (should have failed): ").append(m).append(" # ").append(i).append(" = ").append(p).append(", tag = ").append(tag).append(", params = ").append(Arrays.toString(callParams2)); } continue outer; } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckSourceAnnotationTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckSourceAnnotationTest.java index 15261e7128..28881b971f 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckSourceAnnotationTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckSourceAnnotationTest.java @@ -385,7 +385,7 @@ else if (skippingDepth == 0) { } } - for (String typeName : TYPES_REQUIRING_NONNULL_TYPEARG) { + for (String typeName : TYPES_REQUIRING_NONNULL_TYPE_ARG) { String pattern = typeName + ".*"; if (line.contains(pattern) && !line.matches(patternRegex)) { @@ -406,7 +406,7 @@ else if (skippingDepth == 0) { ; } } - for (String typeName : TYPES_FORBIDDEN_NONNULL_TYPEARG) { + for (String typeName : TYPES_FORBIDDEN_NONNULL_TYPE_ARG) { String patternRegex = ".*" + typeName + "<@NonNull (\\? (extends|super) )?" + COMMON_TYPE_ARG_NAMES + ">.*"; if (line.matches(patternRegex)) { @@ -427,8 +427,8 @@ else if (skippingDepth == 0) { } } - for (String typeName : TYPES_REQUIRING_NONNULL_TYPEARG_ON_FUNC) { - if (line.matches(".*Function[\\d]?<.*, (\\? (extends|super) )?" + typeName + ".*")) { + for (String typeName : TYPES_REQUIRING_NONNULL_TYPE_ARG_ON_FUNC) { + if (line.matches(".*Function\\d?<.*, (\\? (extends|super) )?" + typeName + ".*")) { errorCount++; errors.append("L") .append(j) @@ -487,14 +487,14 @@ else if (skippingDepth == 0) { "T", "R", "U", "V" ); - static final List TYPES_REQUIRING_NONNULL_TYPEARG = Arrays.asList( + static final List TYPES_REQUIRING_NONNULL_TYPE_ARG = Arrays.asList( "Iterable", "Stream", "Publisher", "Processor", "Subscriber", "Optional" ); - static final List TYPES_FORBIDDEN_NONNULL_TYPEARG = Arrays.asList( + static final List TYPES_FORBIDDEN_NONNULL_TYPE_ARG = Arrays.asList( "Iterable", "Stream", "Publisher", "Processor", "Subscriber", "Optional" ); - static final List TYPES_REQUIRING_NONNULL_TYPEARG_ON_FUNC = Arrays.asList( + static final List TYPES_REQUIRING_NONNULL_TYPE_ARG_ON_FUNC = Arrays.asList( "Iterable", "Stream", "Publisher", "Processor", "Subscriber", "Optional", "Observer", "SingleObserver", "MaybeObserver", "CompletableObserver" ); diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckTestPrefixInMethodNameTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckTestPrefixInMethodNameTest.java index f1fba90a54..833f3df96f 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckTestPrefixInMethodNameTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckTestPrefixInMethodNameTest.java @@ -28,7 +28,6 @@ public class CheckTestPrefixInMethodNameTest extends RxJavaTest { private static final String pattern = "void\\s+test[a-zA-Z0-9]"; - private static final String replacement = "void "; @Test public void checkAndUpdateTestMethodNames() throws Exception { @@ -63,11 +62,10 @@ public void checkAndUpdateTestMethodNames() throws Exception { if (u.isDirectory()) { dirs.offer(u); } else { - String fname = u.getName(); - if (fname.endsWith(".java")) { + String fileName = u.getName(); + if (fileName.endsWith(".java")) { int lineNum = 0; - List lines = new ArrayList<>(); //boolean found = false; try (BufferedReader in = new BufferedReader(new FileReader(u))) { for (; ; ) { @@ -81,36 +79,14 @@ public void checkAndUpdateTestMethodNames() throws Exception { if (!line.startsWith("//") && !line.startsWith("*") && matcher.find()) { // found = true; fail - .append(fname) + .append(fileName) .append("#L").append(lineNum) .append(" ").append(line) .append("\n"); total++; - - int methodNameStartIndex = matcher.end() - 1; - char firstChar = Character.toLowerCase(line.charAt(methodNameStartIndex)); - - String newLine = matcher.replaceAll(replacement + firstChar); - - lines.add(newLine); - } else { - lines.add(line); } - } } - - /*if (found && System.getenv("CI") == null) { - PrintWriter w = new PrintWriter(new FileWriter(u)); - - try { - for (String s : lines) { - w.println(s); - } - } finally { - w.close(); - } - }*/ } } } diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckTextualAorAnTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckTextualAorAnTest.java index 8609e0c545..7a3e9b7ebd 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckTextualAorAnTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckTextualAorAnTest.java @@ -37,8 +37,6 @@ public void checkFiles() throws Exception { File parent = f.getParentFile().getParentFile(); dirs.offer(parent); -// dirs.offer(new File(parent.getAbsolutePath().replace('\\', '/').replace("src/main/java", "src/perf/java"))); -// dirs.offer(new File(parent.getAbsolutePath().replace('\\', '/').replace("src/main/java", "src/test/java"))); StringBuilder fail = new StringBuilder(); @@ -89,145 +87,121 @@ static void processFile(StringBuilder b, List lines, String className, S if (s.contains(" a Observer")) { b.append("java.lang.RuntimeException: ' a Observer'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("A Observer")) { b.append("java.lang.RuntimeException: 'A Observer'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" a Observable")) { b.append("java.lang.RuntimeException: ' a Observable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("A Observable")) { b.append("java.lang.RuntimeException: 'A Observable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" an Subscriber")) { b.append("java.lang.RuntimeException: ' an Subscriber'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("An Subscriber")) { b.append("java.lang.RuntimeException: 'An Subscriber'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" an Publisher")) { b.append("java.lang.RuntimeException: ' an Publisher'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("An Publisher")) { b.append("java.lang.RuntimeException: 'An Publisher'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" an Flowable")) { b.append("java.lang.RuntimeException: ' an Flowable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("An Flowable")) { b.append("java.lang.RuntimeException: 'An Flowable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" an Single")) { b.append("java.lang.RuntimeException: ' an Single'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("An Single")) { b.append("java.lang.RuntimeException: 'An Single'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" an Maybe")) { b.append("java.lang.RuntimeException: ' an Maybe'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("An Maybe")) { b.append("java.lang.RuntimeException: 'An Maybe'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" an Completable")) { b.append("java.lang.RuntimeException: ' an Completable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("An Completable")) { b.append("java.lang.RuntimeException: 'An Completable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("An Runnable")) { b.append("java.lang.RuntimeException: 'An Runnable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("an Runnable")) { b.append("java.lang.RuntimeException: 'an Runnable'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" a error")) { b.append("java.lang.RuntimeException: 'a error'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" the a ")) { b.append("java.lang.RuntimeException: ' the a '\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" a the ")) { b.append("java.lang.RuntimeException: ' a the '\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("mean time")) { b.append("java.lang.RuntimeException: 'mean time'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains("non null")) { b.append("java.lang.RuntimeException: 'non null'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } if (s.contains(" an cancel")) { b.append("java.lang.RuntimeException: ' an cancel'\r\n at io.reactivex.") .append(className).append(".method(").append(fileName).append(":").append(i).append(")\r\nCaused by: "); - ; } i++; diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckTooManyEmptyNewLinesTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckTooManyEmptyNewLinesTest.java index a1bce5675d..ec9e712a97 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckTooManyEmptyNewLinesTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckTooManyEmptyNewLinesTest.java @@ -78,8 +78,8 @@ static void findPattern(int newLines) throws Exception { if (u.isDirectory()) { dirs.offer(u); } else { - String fname = u.getName(); - if (fname.endsWith(".java")) { + String fileName = u.getName(); + if (fileName.endsWith(".java")) { List lines = new ArrayList<>(); try (BufferedReader in = new BufferedReader(new FileReader(u))) { @@ -106,13 +106,13 @@ static void findPattern(int newLines) throws Exception { if (c == newLines) { fail - .append(fname) + .append(fileName) .append("#L").append(i + 1) .append("\n") .append(" at ") - .append(fname.replace(".java", "")) + .append(fileName.replace(".java", "")) .append(".method(") - .append(fname) + .append(fileName) .append(":").append(i + 1) .append(")\n") ; From bf4421fef403f18fb2de2b7757c386b29028c793 Mon Sep 17 00:00:00 2001 From: akarnokd Date: Fri, 26 Jun 2026 10:47:47 +0200 Subject: [PATCH 5/5] DisposableContainer +tests --- .../validators/CheckParamValidationTest.java | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java index 4c0bac7f96..f8a9fdba41 100644 --- a/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java +++ b/src/test/java/io/reactivex/rxjava4/validators/CheckParamValidationTest.java @@ -707,13 +707,13 @@ public Object apply(Flowable upstream) { static void addIgnore(ParamIgnore ignore) { String key = ignore.toString(); - List list = ignores.computeIfAbsent(key, k -> new ArrayList<>()); + List list = ignores.computeIfAbsent(key, _ -> new ArrayList<>()); list.add(ignore); } static void addOverride(ParamOverride ignore) { String key = ignore.toString(); - List list = overrides.computeIfAbsent(key, k -> new ArrayList<>()); + List list = overrides.computeIfAbsent(key, _ -> new ArrayList<>()); list.add(ignore); } @@ -912,19 +912,46 @@ void checkClass(Class clazz) { if (!success && error.getCause() instanceof NullPointerException) { if (!error.getCause().toString().contains("is null")) { fail++; - b.append("\r\nNPEs should indicate which argument failed: ").append(m).append(" # ").append(i).append(" = ").append(p).append(", tag = ").append(tag).append(", params = ").append(Arrays.toString(callParams2)); + b.append("\r\nNPEs should indicate which argument failed: ") + .append(m) + .append(" # ") + .append(i) + .append(" = ") + .append(p) + .append(", tag = ") + .append(tag) + .append(", params = ") + .append(Arrays.toString(callParams2)); } } if (success != shouldSucceed) { fail++; if (shouldSucceed) { - b.append("\r\nFailed (should have succeeded): ").append(m).append(" # ").append(i).append(" = ").append(p).append(", tag = ").append(tag).append(", params = ").append(Arrays.toString(callParams2)); + b.append("\r\nFailed (should have succeeded): ") + .append(m) + .append(" # ") + .append(i) + .append(" = ") + .append(p) + .append(", tag = ") + .append(tag) + .append(", params = ") + .append(Arrays.toString(callParams2)); b.append("\r\n ").append(error); if (error.getCause() != null) { b.append("\r\n ").append(error.getCause()); } } else { - b.append("\r\nNo failure (should have failed): ").append(m).append(" # ").append(i).append(" = ").append(p).append(", tag = ").append(tag).append(", params = ").append(Arrays.toString(callParams2)); + b.append("\r\nNo failure (should have failed): ") + .append(m) + .append(" # ") + .append(i) + .append(" = ") + .append(p) + .append(", tag = ") + .append(tag) + .append(", params = ") + .append(Arrays.toString(callParams2)); } continue outer; }