title: Why onCompleted is not called in this code?
body: <p>I have this subject in the viewmodel:</p>
  
  <pre><code>private PublishSubject&lt;String&gt; articleSubject;
  
  public Observable&lt;Article&gt; newArticleSubject() {
      articleSubject = PublishSubject.create();
      return articleSubject.flatMap(new Func1&lt;String, Observable&lt;Article&gt;&gt;() {         
          @Override
          public Observable&lt;Article&gt; call(String articleId) {
              return dataModel.getArticleById(articleId).subscribeOn(Schedulers.newThread());
          }
      });
  }
  </code></pre>
  
  <p>I bind the view like this:</p>
  
  <pre><code>viewModel.newArticleSubject()
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe(new ArticleSubscriber());
  </code></pre>
  
  <p>And this is my subscriber:</p>
  
  <pre><code> private class ArticleSubscriber extends Subscriber&lt;Article&gt; {
  
          @Override
          public void onCompleted() {
              Log.d("test", "This is not ever printed");
          }
  
          @Override
          public void onError(Throwable e) {
              //do stuff
          }
  
          @Override
          public void onNext(Article article) {
              //do stuff
          }
  }
  </code></pre>
  
  <p><code>onCompleted</code> is never called, but <code>onError</code> and <code>onNext</code> are. Why? Inside <code>dataModel.getArticleById(articleId)</code>, <code>subscriber.onCompleted();</code> is called.</p>