title: RxJava2 dispose() doesn't work if called on the object returned by doOnSubscribe()
body: <p>I've got a problem with understanding why the following code doesn't work. Am I doing something wrong or is it some kind of bug in RxJava2 implementation?</p>
  
  <pre><code>private Disposable savedDisposable;
  
  @Test
  public void test() {
      final TestObserver&lt;Integer&gt; observer = new TestObserver&lt;&gt;();
  
      Observable&lt;Integer&gt; t = Observable.just(10)
              .delay(100, TimeUnit.MILLISECONDS)
              .doOnSubscribe(disposable -&gt; savedDisposable = disposable);
  
      t.subscribe(observer);
  
      savedDisposable.dispose();  //this doesn't work
      //observer.dispose();       //this works  
  
      assertTrue(observer.isDisposed());
  }
  </code></pre>