test_class.file: rxjava/src/test/java/io/reactivex/internal/util/BackpressureHelperTest.java
test_class.identifier: BackpressureHelperTest
test_case.body: @Test
      public void producedMore() {
          List<Throwable> list = TestHelper.trackPluginErrors();
  
          try {
              AtomicLong requested = new AtomicLong(1);
  
              assertEquals(0, BackpressureHelper.produced(requested, 2));
  
              TestHelper.assertError(list, 0, IllegalStateException.class, "More produced than requested: -1");
          } finally {
              RxJavaPlugins.reset();
          }
      }
test_case.class_method_signature: BackpressureHelperTest.producedMore()
test_case.full_signature: @Test public void producedMore()
test_case.identifier: producedMore
test_case.invocations: trackPluginErrors assertEquals produced assertError reset
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void producedMore()
focal_class.file: rxjava/src/main/java/io/reactivex/internal/util/BackpressureHelper.java
focal_class.identifier: BackpressureHelper
focal_class.class_method_signature: BackpressureHelper.BackpressureHelper()
focal_class.full_signature: private  BackpressureHelper()
focal_class.identifier: BackpressureHelper
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  BackpressureHelper()
focal_class.class_method_signature: BackpressureHelper.addCap(long a, long b)
focal_class.full_signature: public static long addCap(long a, long b)
focal_class.identifier: addCap
focal_class.modifiers: public static
focal_class.parameters: (long a, long b)
focal_class.return: long
focal_class.signature: long addCap(long a, long b)
focal_class.class_method_signature: BackpressureHelper.multiplyCap(long a, long b)
focal_class.full_signature: public static long multiplyCap(long a, long b)
focal_class.identifier: multiplyCap
focal_class.modifiers: public static
focal_class.parameters: (long a, long b)
focal_class.return: long
focal_class.signature: long multiplyCap(long a, long b)
focal_class.class_method_signature: BackpressureHelper.add(AtomicLong requested, long n)
focal_class.full_signature: public static long add(AtomicLong requested, long n)
focal_class.identifier: add
focal_class.modifiers: public static
focal_class.parameters: (AtomicLong requested, long n)
focal_class.return: long
focal_class.signature: long add(AtomicLong requested, long n)
focal_class.class_method_signature: BackpressureHelper.addCancel(AtomicLong requested, long n)
focal_class.full_signature: public static long addCancel(AtomicLong requested, long n)
focal_class.identifier: addCancel
focal_class.modifiers: public static
focal_class.parameters: (AtomicLong requested, long n)
focal_class.return: long
focal_class.signature: long addCancel(AtomicLong requested, long n)
focal_class.class_method_signature: BackpressureHelper.produced(AtomicLong requested, long n)
focal_class.full_signature: public static long produced(AtomicLong requested, long n)
focal_class.identifier: produced
focal_class.modifiers: public static
focal_class.parameters: (AtomicLong requested, long n)
focal_class.return: long
focal_class.signature: long produced(AtomicLong requested, long n)
focal_class.class_method_signature: BackpressureHelper.producedCancel(AtomicLong requested, long n)
focal_class.full_signature: public static long producedCancel(AtomicLong requested, long n)
focal_class.identifier: producedCancel
focal_class.modifiers: public static
focal_class.parameters: (AtomicLong requested, long n)
focal_class.return: long
focal_class.signature: long producedCancel(AtomicLong requested, long n)
focal_method.body: public static long produced(AtomicLong requested, long n) {
          for (;;) {
              long current = requested.get();
              if (current == Long.MAX_VALUE) {
                  return Long.MAX_VALUE;
              }
              long update = current - n;
              if (update < 0L) {
                  RxJavaPlugins.onError(new IllegalStateException("More produced than requested: " + update));
                  update = 0L;
              }
              if (requested.compareAndSet(current, update)) {
                  return update;
              }
          }
      }
focal_method.class_method_signature: BackpressureHelper.produced(AtomicLong requested, long n)
focal_method.full_signature: public static long produced(AtomicLong requested, long n)
focal_method.identifier: produced
focal_method.invocations: get onError compareAndSet
focal_method.modifiers: public static
focal_method.parameters: (AtomicLong requested, long n)
focal_method.return: long
focal_method.signature: long produced(AtomicLong requested, long n)