Class FluxFlatMapUsage

java.lang.Object
com.google.errorprone.bugpatterns.BugChecker
tech.picnic.errorprone.bugpatterns.FluxFlatMapUsage
All Implemented Interfaces:
com.google.errorprone.bugpatterns.BugChecker.MemberReferenceTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.MethodInvocationTreeMatcher, com.google.errorprone.matchers.Suppressible, Serializable

@AutoService(com.google.errorprone.bugpatterns.BugChecker.class) public final class FluxFlatMapUsage extends com.google.errorprone.bugpatterns.BugChecker implements com.google.errorprone.bugpatterns.BugChecker.MethodInvocationTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.MemberReferenceTreeMatcher
A BugChecker that flags usages of Flux.flatMap(Function) and Flux.flatMapSequential(Function).

Flux.flatMap(Function) and Flux.flatMapSequential(Function) eagerly perform up to Queues.SMALL_BUFFER_SIZE subscriptions. Additionally, the former interleaves values as they are emitted, yielding nondeterministic results. In most cases Flux.concatMap(Function) should be preferred, as it produces consistent results and avoids potentially saturating the thread pool on which subscription happens. If concatMap's sequential-subscription semantics are undesirable one should invoke a flatMap or flatMapSequential overload with an explicit concurrency level.

NB: The rarely-used overload Flux.flatMap(Function, Function, java.util.function.Supplier) is not flagged by this check because there is no clear alternative to point to.

See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.google.errorprone.bugpatterns.BugChecker

    com.google.errorprone.bugpatterns.BugChecker.AnnotatedTypeTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.AnnotationTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ArrayAccessTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ArrayTypeTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.AssertTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.AssignmentTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.BinaryTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.BlockTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.BreakTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.CaseTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.CatchTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ClassTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.CompilationUnitTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.CompoundAssignmentTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ConditionalExpressionTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ContinueTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.DoWhileLoopTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.EmptyStatementTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.EnhancedForLoopTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ExpressionStatementTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ForLoopTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.IdentifierTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.IfTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ImportTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.InstanceOfTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.IntersectionTypeTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.LabeledStatementTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.LambdaExpressionTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.LiteralTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.MemberReferenceTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.MemberSelectTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.MethodInvocationTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.MethodTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ModifiersTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.NewArrayTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.NewClassTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ParameterizedTypeTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ParenthesizedTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.PrimitiveTypeTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ReturnTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.SuppressibleTreePathScanner<A extends Object,B extends Object>, com.google.errorprone.bugpatterns.BugChecker.SwitchTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.SynchronizedTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.ThrowTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.TryTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.TypeCastTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.TypeParameterTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.UnaryTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.UnionTypeTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.VariableTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.WhileLoopTreeMatcher, com.google.errorprone.bugpatterns.BugChecker.WildcardTreeMatcher
  • Constructor Summary

    Constructors
    Constructor
    Description
    Instantiates a new FluxFlatMapUsage instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    com.google.errorprone.matchers.Description
    matchMemberReference(MemberReferenceTree tree, com.google.errorprone.VisitorState state)
     
    com.google.errorprone.matchers.Description
    matchMethodInvocation(MethodInvocationTree tree, com.google.errorprone.VisitorState state)
     

    Methods inherited from class com.google.errorprone.bugpatterns.BugChecker

    allNames, buildDescription, buildDescription, buildDescription, canonicalName, customSuppressionAnnotations, defaultSeverity, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, disableable, equals, hashCode, isSuppressed, isSuppressed, isSuppressed, isSuppressed, linkUrl, message, supportsSuppressWarnings, suppressedByAnyOf, suppressedRegions

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.google.errorprone.matchers.Suppressible

    allNames, canonicalName, customSuppressionAnnotations, supportsSuppressWarnings, suppressedByAnyOf
  • Constructor Details

    • FluxFlatMapUsage

      public FluxFlatMapUsage()
      Instantiates a new FluxFlatMapUsage instance.
  • Method Details

    • matchMethodInvocation

      public com.google.errorprone.matchers.Description matchMethodInvocation(MethodInvocationTree tree, com.google.errorprone.VisitorState state)
      Specified by:
      matchMethodInvocation in interface com.google.errorprone.bugpatterns.BugChecker.MethodInvocationTreeMatcher
    • matchMemberReference

      public com.google.errorprone.matchers.Description matchMemberReference(MemberReferenceTree tree, com.google.errorprone.VisitorState state)
      Specified by:
      matchMemberReference in interface com.google.errorprone.bugpatterns.BugChecker.MemberReferenceTreeMatcher