test_class.declarator: THROWING_DISPOSABLE = new Disposable() {
  
          @Override
          public boolean isDisposed() {
              // TODO Auto-generated method stub
              return false;
          }
  
          @Override
          public void dispose() {
              // break contract by throwing exception
              throw new SafeObserverTestException("failure from unsubscribe");
          }
      }
test_class.modifier: static final
test_class.original_string: static final Disposable THROWING_DISPOSABLE = new Disposable() {
  
          @Override
          public boolean isDisposed() {
              // TODO Auto-generated method stub
              return false;
          }
  
          @Override
          public void dispose() {
              // break contract by throwing exception
              throw new SafeObserverTestException("failure from unsubscribe");
          }
      };
test_class.type: Disposable
test_class.var_name: THROWING_DISPOSABLE
test_class.file: rxjava/src/test/java/io/reactivex/observers/SafeObserverTest.java
test_class.identifier: SafeObserverTest
test_case.body: @Test
      public void onNextWithoutOnSubscribe() {
          TestObserver<Integer> to = new TestObserver<Integer>();
  
          SafeObserver<Integer> so = new SafeObserver<Integer>(to);
  
          so.onNext(1);
  
          to.assertFailureAndMessage(NullPointerException.class, "Subscription not set!");
      }
test_case.class_method_signature: SafeObserverTest.onNextWithoutOnSubscribe()
test_case.full_signature: @Test public void onNextWithoutOnSubscribe()
test_case.identifier: onNextWithoutOnSubscribe
test_case.invocations: onNext assertFailureAndMessage
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void onNextWithoutOnSubscribe()
focal_class.declarator: actual
focal_class.modifier: final
focal_class.original_string: final Observer<? super T> actual;
focal_class.type: Observer<? super T>
focal_class.var_name: actual
focal_class.declarator: s
focal_class.original_string: Disposable s;
focal_class.type: Disposable
focal_class.var_name: s
focal_class.declarator: done
focal_class.original_string: boolean done;
focal_class.type: boolean
focal_class.var_name: done
focal_class.file: rxjava/src/main/java/io/reactivex/observers/SafeObserver.java
focal_class.identifier: SafeObserver
focal_class.interfaces: implements Observer<T>, Disposable
focal_class.class_method_signature: SafeObserver.SafeObserver(@NonNull Observer<? super T> actual)
focal_class.full_signature: public  SafeObserver(@NonNull Observer<? super T> actual)
focal_class.identifier: SafeObserver
focal_class.modifiers: public
focal_class.parameters: (@NonNull Observer<? super T> actual)
focal_class.signature:  SafeObserver(@NonNull Observer<? super T> actual)
focal_class.class_method_signature: SafeObserver.onSubscribe(@NonNull Disposable s)
focal_class.full_signature: @Override public void onSubscribe(@NonNull Disposable s)
focal_class.identifier: onSubscribe
focal_class.modifiers: @Override public
focal_class.parameters: (@NonNull Disposable s)
focal_class.return: void
focal_class.signature: void onSubscribe(@NonNull Disposable s)
focal_class.class_method_signature: SafeObserver.dispose()
focal_class.full_signature: @Override public void dispose()
focal_class.identifier: dispose
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dispose()
focal_class.class_method_signature: SafeObserver.isDisposed()
focal_class.full_signature: @Override public boolean isDisposed()
focal_class.identifier: isDisposed
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isDisposed()
focal_class.class_method_signature: SafeObserver.onNext(@NonNull T t)
focal_class.full_signature: @Override public void onNext(@NonNull T t)
focal_class.identifier: onNext
focal_class.modifiers: @Override public
focal_class.parameters: (@NonNull T t)
focal_class.return: void
focal_class.signature: void onNext(@NonNull T t)
focal_class.class_method_signature: SafeObserver.onNextNoSubscription()
focal_class.full_signature:  void onNextNoSubscription()
focal_class.identifier: onNextNoSubscription
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onNextNoSubscription()
focal_class.class_method_signature: SafeObserver.onError(@NonNull Throwable t)
focal_class.full_signature: @Override public void onError(@NonNull Throwable t)
focal_class.identifier: onError
focal_class.modifiers: @Override public
focal_class.parameters: (@NonNull Throwable t)
focal_class.return: void
focal_class.signature: void onError(@NonNull Throwable t)
focal_class.class_method_signature: SafeObserver.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: SafeObserver.onCompleteNoSubscription()
focal_class.full_signature:  void onCompleteNoSubscription()
focal_class.identifier: onCompleteNoSubscription
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onCompleteNoSubscription()
focal_method.body: @Override
      public void onNext(@NonNull T t) {
          if (done) {
              return;
          }
          if (s == null) {
              onNextNoSubscription();
              return;
          }
  
          if (t == null) {
              Throwable ex = new NullPointerException("onNext called with null. Null values are generally not allowed in 2.x operators and sources.");
              try {
                  s.dispose();
              } catch (Throwable e1) {
                  Exceptions.throwIfFatal(e1);
                  onError(new CompositeException(ex, e1));
                  return;
              }
              onError(ex);
              return;
          }
  
          try {
              actual.onNext(t);
          } catch (Throwable e) {
              Exceptions.throwIfFatal(e);
              try {
                  s.dispose();
              } catch (Throwable e1) {
                  Exceptions.throwIfFatal(e1);
                  onError(new CompositeException(e, e1));
                  return;
              }
              onError(e);
          }
      }
focal_method.class_method_signature: SafeObserver.onNext(@NonNull T t)
focal_method.full_signature: @Override public void onNext(@NonNull T t)
focal_method.identifier: onNext
focal_method.invocations: onNextNoSubscription dispose throwIfFatal onError onError onNext throwIfFatal dispose throwIfFatal onError onError
focal_method.modifiers: @Override public
focal_method.parameters: (@NonNull T t)
focal_method.return: void
focal_method.signature: void onNext(@NonNull T t)