test_class.file: rxjava/src/test/java/io/reactivex/internal/subscribers/StrictSubscriberTest.java
test_class.identifier: StrictSubscriberTest
test_case.body: @Test
      public void doubleOnSubscribe() {
          TestSubscriber<Integer> ts = new TestSubscriber<Integer>();
          SubscriberWrapper<Integer> wrapper = new SubscriberWrapper<Integer>(ts);
  
          new Flowable<Integer>() {
              @Override
              protected void subscribeActual(Subscriber<? super Integer> s) {
                  BooleanSubscription b1 = new BooleanSubscription();
                  s.onSubscribe(b1);
  
                  BooleanSubscription b2 = new BooleanSubscription();
                  s.onSubscribe(b2);
  
                  assertTrue(b1.isCancelled());
                  assertTrue(b2.isCancelled());
              }
          }.subscribe(wrapper);
  
          ts.assertFailure(IllegalStateException.class);
          assertTrue(ts.errors().toString(), ts.errors().get(0).getMessage().contains("2.12"));
      }
test_case.class_method_signature: StrictSubscriberTest.doubleOnSubscribe()
test_case.full_signature: @Test public void doubleOnSubscribe()
test_case.identifier: doubleOnSubscribe
test_case.invocations: subscribe onSubscribe onSubscribe assertTrue isCancelled assertTrue isCancelled assertFailure assertTrue toString errors contains getMessage get errors
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void doubleOnSubscribe()
focal_class.declarator: serialVersionUID = -4945028590049415624L
focal_class.modifier: private static final
focal_class.original_string: private static final long serialVersionUID = -4945028590049415624L;
focal_class.type: long
focal_class.var_name: serialVersionUID
focal_class.declarator: actual
focal_class.modifier: final
focal_class.original_string: final Subscriber<? super T> actual;
focal_class.type: Subscriber<? super T>
focal_class.var_name: actual
focal_class.declarator: error
focal_class.modifier: final
focal_class.original_string: final AtomicThrowable error;
focal_class.type: AtomicThrowable
focal_class.var_name: error
focal_class.declarator: requested
focal_class.modifier: final
focal_class.original_string: final AtomicLong requested;
focal_class.type: AtomicLong
focal_class.var_name: requested
focal_class.declarator: s
focal_class.modifier: final
focal_class.original_string: final AtomicReference<Subscription> s;
focal_class.type: AtomicReference<Subscription>
focal_class.var_name: s
focal_class.declarator: once
focal_class.modifier: final
focal_class.original_string: final AtomicBoolean once;
focal_class.type: AtomicBoolean
focal_class.var_name: once
focal_class.declarator: done
focal_class.modifier: volatile
focal_class.original_string: volatile boolean done;
focal_class.type: boolean
focal_class.var_name: done
focal_class.file: rxjava/src/main/java/io/reactivex/internal/subscribers/StrictSubscriber.java
focal_class.identifier: StrictSubscriber
focal_class.interfaces: implements FlowableSubscriber<T>, Subscription
focal_class.class_method_signature: StrictSubscriber.StrictSubscriber(Subscriber<? super T> actual)
focal_class.full_signature: public  StrictSubscriber(Subscriber<? super T> actual)
focal_class.identifier: StrictSubscriber
focal_class.modifiers: public
focal_class.parameters: (Subscriber<? super T> actual)
focal_class.signature:  StrictSubscriber(Subscriber<? super T> actual)
focal_class.class_method_signature: StrictSubscriber.request(long n)
focal_class.full_signature: @Override public void request(long n)
focal_class.identifier: request
focal_class.modifiers: @Override public
focal_class.parameters: (long n)
focal_class.return: void
focal_class.signature: void request(long n)
focal_class.class_method_signature: StrictSubscriber.cancel()
focal_class.full_signature: @Override public void cancel()
focal_class.identifier: cancel
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void cancel()
focal_class.class_method_signature: StrictSubscriber.onSubscribe(Subscription s)
focal_class.full_signature: @Override public void onSubscribe(Subscription s)
focal_class.identifier: onSubscribe
focal_class.modifiers: @Override public
focal_class.parameters: (Subscription s)
focal_class.return: void
focal_class.signature: void onSubscribe(Subscription s)
focal_class.class_method_signature: StrictSubscriber.onNext(T t)
focal_class.full_signature: @Override public void onNext(T t)
focal_class.identifier: onNext
focal_class.modifiers: @Override public
focal_class.parameters: (T t)
focal_class.return: void
focal_class.signature: void onNext(T t)
focal_class.class_method_signature: StrictSubscriber.onError(Throwable t)
focal_class.full_signature: @Override public void onError(Throwable t)
focal_class.identifier: onError
focal_class.modifiers: @Override public
focal_class.parameters: (Throwable t)
focal_class.return: void
focal_class.signature: void onError(Throwable t)
focal_class.class_method_signature: StrictSubscriber.onComplete()
focal_class.full_signature: @Override public void onComplete()
focal_class.identifier: onComplete
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onComplete()
focal_class.superclass: extends AtomicInteger
focal_method.body: @Override
      public void onSubscribe(Subscription s) {
          if (once.compareAndSet(false, true)) {
  
              actual.onSubscribe(this);
  
              SubscriptionHelper.deferredSetOnce(this.s, requested, s);
          } else {
              s.cancel();
              cancel();
              onError(new IllegalStateException("§2.12 violated: onSubscribe must be called at most once"));
          }
      }
focal_method.class_method_signature: StrictSubscriber.onSubscribe(Subscription s)
focal_method.full_signature: @Override public void onSubscribe(Subscription s)
focal_method.identifier: onSubscribe
focal_method.invocations: compareAndSet onSubscribe deferredSetOnce cancel cancel onError
focal_method.modifiers: @Override public
focal_method.parameters: (Subscription s)
focal_method.return: void
focal_method.signature: void onSubscribe(Subscription s)