test_class.file: rxjava/src/test/java/io/reactivex/subjects/UnicastSubjectTest.java
test_class.identifier: UnicastSubjectTest
test_class.superclass: extends SubjectTest<Integer>
test_case.body: @Test
      public void subscribeRace() {
          for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
              final UnicastSubject<Integer> us = UnicastSubject.create();
  
              final TestObserver<Integer> to1 = new TestObserver<Integer>();
              final TestObserver<Integer> to2 = new TestObserver<Integer>();
  
              Runnable r1 = new Runnable() {
                  @Override
                  public void run() {
                      us.subscribe(to1);
                  }
              };
  
              Runnable r2 = new Runnable() {
                  @Override
                  public void run() {
                      us.subscribe(to2);
                  }
              };
  
              TestHelper.race(r1, r2);
  
              if (to1.errorCount() == 0) {
                  to2.assertFailure(IllegalStateException.class);
              } else
              if (to2.errorCount() == 0) {
                  to1.assertFailure(IllegalStateException.class);
              } else {
                  fail("Neither TestObserver failed");
              }
          }
      }
test_case.class_method_signature: UnicastSubjectTest.subscribeRace()
test_case.full_signature: @Test public void subscribeRace()
test_case.identifier: subscribeRace
test_case.invocations: create subscribe subscribe race errorCount assertFailure errorCount assertFailure fail
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void subscribeRace()
focal_class.declarator: queue
focal_class.modifier: final
focal_class.original_string: final SpscLinkedArrayQueue<T> queue;
focal_class.type: SpscLinkedArrayQueue<T>
focal_class.var_name: queue
focal_class.declarator: actual
focal_class.modifier: final
focal_class.original_string: final AtomicReference<Observer<? super T>> actual;
focal_class.type: AtomicReference<Observer<? super T>>
focal_class.var_name: actual
focal_class.declarator: onTerminate
focal_class.modifier: final
focal_class.original_string: final AtomicReference<Runnable> onTerminate;
focal_class.type: AtomicReference<Runnable>
focal_class.var_name: onTerminate
focal_class.declarator: delayError
focal_class.modifier: final
focal_class.original_string: final boolean delayError;
focal_class.type: boolean
focal_class.var_name: delayError
focal_class.declarator: disposed
focal_class.modifier: volatile
focal_class.original_string: volatile boolean disposed;
focal_class.type: boolean
focal_class.var_name: disposed
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.declarator: error
focal_class.original_string: Throwable error;
focal_class.type: Throwable
focal_class.var_name: error
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: wip
focal_class.modifier: final
focal_class.original_string: final BasicIntQueueDisposable<T> wip;
focal_class.type: BasicIntQueueDisposable<T>
focal_class.var_name: wip
focal_class.declarator: enableOperatorFusion
focal_class.original_string: boolean enableOperatorFusion;
focal_class.type: boolean
focal_class.var_name: enableOperatorFusion
focal_class.file: rxjava/src/main/java/io/reactivex/subjects/UnicastSubject.java
focal_class.identifier: UnicastSubject
focal_class.class_method_signature: UnicastSubject.create()
focal_class.full_signature: @CheckReturnValue @NonNull public static UnicastSubject<T> create()
focal_class.identifier: create
focal_class.modifiers: @CheckReturnValue @NonNull public static
focal_class.parameters: ()
focal_class.return: UnicastSubject<T>
focal_class.signature: UnicastSubject<T> create()
focal_class.class_method_signature: UnicastSubject.create(int capacityHint)
focal_class.full_signature: @CheckReturnValue @NonNull public static UnicastSubject<T> create(int capacityHint)
focal_class.identifier: create
focal_class.modifiers: @CheckReturnValue @NonNull public static
focal_class.parameters: (int capacityHint)
focal_class.return: UnicastSubject<T>
focal_class.signature: UnicastSubject<T> create(int capacityHint)
focal_class.class_method_signature: UnicastSubject.create(int capacityHint, Runnable onTerminate)
focal_class.full_signature: @CheckReturnValue @NonNull public static UnicastSubject<T> create(int capacityHint, Runnable onTerminate)
focal_class.identifier: create
focal_class.modifiers: @CheckReturnValue @NonNull public static
focal_class.parameters: (int capacityHint, Runnable onTerminate)
focal_class.return: UnicastSubject<T>
focal_class.signature: UnicastSubject<T> create(int capacityHint, Runnable onTerminate)
focal_class.class_method_signature: UnicastSubject.create(int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.full_signature: @CheckReturnValue @Experimental @NonNull public static UnicastSubject<T> create(int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.identifier: create
focal_class.modifiers: @CheckReturnValue @Experimental @NonNull public static
focal_class.parameters: (int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.return: UnicastSubject<T>
focal_class.signature: UnicastSubject<T> create(int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.class_method_signature: UnicastSubject.create(boolean delayError)
focal_class.full_signature: @CheckReturnValue @Experimental @NonNull public static UnicastSubject<T> create(boolean delayError)
focal_class.identifier: create
focal_class.modifiers: @CheckReturnValue @Experimental @NonNull public static
focal_class.parameters: (boolean delayError)
focal_class.return: UnicastSubject<T>
focal_class.signature: UnicastSubject<T> create(boolean delayError)
focal_class.class_method_signature: UnicastSubject.UnicastSubject(int capacityHint, boolean delayError)
focal_class.full_signature:   UnicastSubject(int capacityHint, boolean delayError)
focal_class.identifier: UnicastSubject
focal_class.parameters: (int capacityHint, boolean delayError)
focal_class.signature:  UnicastSubject(int capacityHint, boolean delayError)
focal_class.class_method_signature: UnicastSubject.UnicastSubject(int capacityHint, Runnable onTerminate)
focal_class.full_signature:   UnicastSubject(int capacityHint, Runnable onTerminate)
focal_class.identifier: UnicastSubject
focal_class.parameters: (int capacityHint, Runnable onTerminate)
focal_class.signature:  UnicastSubject(int capacityHint, Runnable onTerminate)
focal_class.class_method_signature: UnicastSubject.UnicastSubject(int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.full_signature:   UnicastSubject(int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.identifier: UnicastSubject
focal_class.parameters: (int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.signature:  UnicastSubject(int capacityHint, Runnable onTerminate, boolean delayError)
focal_class.class_method_signature: UnicastSubject.subscribeActual(Observer<? super T> observer)
focal_class.full_signature: @Override protected void subscribeActual(Observer<? super T> observer)
focal_class.identifier: subscribeActual
focal_class.modifiers: @Override protected
focal_class.parameters: (Observer<? super T> observer)
focal_class.return: void
focal_class.signature: void subscribeActual(Observer<? super T> observer)
focal_class.class_method_signature: UnicastSubject.doTerminate()
focal_class.full_signature:  void doTerminate()
focal_class.identifier: doTerminate
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void doTerminate()
focal_class.class_method_signature: UnicastSubject.onSubscribe(Disposable s)
focal_class.full_signature: @Override public void onSubscribe(Disposable s)
focal_class.identifier: onSubscribe
focal_class.modifiers: @Override public
focal_class.parameters: (Disposable s)
focal_class.return: void
focal_class.signature: void onSubscribe(Disposable s)
focal_class.class_method_signature: UnicastSubject.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: UnicastSubject.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: UnicastSubject.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.class_method_signature: UnicastSubject.drainNormal(Observer<? super T> a)
focal_class.full_signature:  void drainNormal(Observer<? super T> a)
focal_class.identifier: drainNormal
focal_class.parameters: (Observer<? super T> a)
focal_class.return: void
focal_class.signature: void drainNormal(Observer<? super T> a)
focal_class.class_method_signature: UnicastSubject.drainFused(Observer<? super T> a)
focal_class.full_signature:  void drainFused(Observer<? super T> a)
focal_class.identifier: drainFused
focal_class.parameters: (Observer<? super T> a)
focal_class.return: void
focal_class.signature: void drainFused(Observer<? super T> a)
focal_class.class_method_signature: UnicastSubject.errorOrComplete(Observer<? super T> a)
focal_class.full_signature:  void errorOrComplete(Observer<? super T> a)
focal_class.identifier: errorOrComplete
focal_class.parameters: (Observer<? super T> a)
focal_class.return: void
focal_class.signature: void errorOrComplete(Observer<? super T> a)
focal_class.class_method_signature: UnicastSubject.failedFast(final SimpleQueue<T> q, Observer<? super T> a)
focal_class.full_signature:  boolean failedFast(final SimpleQueue<T> q, Observer<? super T> a)
focal_class.identifier: failedFast
focal_class.parameters: (final SimpleQueue<T> q, Observer<? super T> a)
focal_class.return: boolean
focal_class.signature: boolean failedFast(final SimpleQueue<T> q, Observer<? super T> a)
focal_class.class_method_signature: UnicastSubject.drain()
focal_class.full_signature:  void drain()
focal_class.identifier: drain
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void drain()
focal_class.class_method_signature: UnicastSubject.hasObservers()
focal_class.full_signature: @Override public boolean hasObservers()
focal_class.identifier: hasObservers
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasObservers()
focal_class.class_method_signature: UnicastSubject.getThrowable()
focal_class.full_signature: @Override @Nullable public Throwable getThrowable()
focal_class.identifier: getThrowable
focal_class.modifiers: @Override @Nullable public
focal_class.parameters: ()
focal_class.return: Throwable
focal_class.signature: Throwable getThrowable()
focal_class.class_method_signature: UnicastSubject.hasThrowable()
focal_class.full_signature: @Override public boolean hasThrowable()
focal_class.identifier: hasThrowable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasThrowable()
focal_class.class_method_signature: UnicastSubject.hasComplete()
focal_class.full_signature: @Override public boolean hasComplete()
focal_class.identifier: hasComplete
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasComplete()
focal_class.superclass: extends Subject<T>
focal_method.body: @CheckReturnValue
      @NonNull
      public static <T> UnicastSubject<T> create() {
          return new UnicastSubject<T>(bufferSize(), true);
      }
focal_method.class_method_signature: UnicastSubject.create()
focal_method.full_signature: @CheckReturnValue @NonNull public static UnicastSubject<T> create()
focal_method.identifier: create
focal_method.invocations: bufferSize
focal_method.modifiers: @CheckReturnValue @NonNull public static
focal_method.parameters: ()
focal_method.return: UnicastSubject<T>
focal_method.signature: UnicastSubject<T> create()