title: why rx-java zip code failed
body: <p>Here is test code</p>
  
  <pre><code>    final Flowable&lt;Integer&gt; f1 = Flowable.fromPublisher(s -&gt; {
          s.onNext(Integer.valueOf(1));
          s.onComplete();
      });
  
  
      final Flowable&lt;Integer&gt; f2 = Flowable.fromPublisher(s -&gt; {
          s.onNext(Integer.valueOf(2));
          s.onComplete();
      });
  
      Flowable.zip(f1, f2, (i1, i2) -&gt; "" + i1 + i2)
              .blockingSubscribe(System.out::println);
  </code></pre>
  
  <p>It will get </p>
  
  <pre><code>Exception in thread "main" java.lang.NullPointerException
      at io.reactivex.internal.operators.flowable.FlowableZip$ZipSubscriber.onNext(FlowableZip.java:386)
  </code></pre>
  
  <p>I don't understand why?</p>
  
  <p>And if I update code like this</p>
  
  <pre><code>    final Flowable&lt;Integer&gt; f1 = Flowable.&lt;Integer&gt;fromPublisher(s -&gt; {
          s.onNext(Integer.valueOf(1));
          s.onComplete();
      }).onErrorResumeNext(Flowable.empty());
  
  
      final Flowable&lt;Integer&gt; f2 = Flowable.&lt;Integer&gt;fromPublisher(s -&gt; {
          s.onNext(Integer.valueOf(2));
          s.onComplete();
      }).onErrorResumeNext(Flowable.empty());
  
      Flowable.zip(f1, f2, (i1, i2) -&gt; "" + i1 + i2)
              .blockingSubscribe(System.out::println);
  </code></pre>
  
  <p>It will print 12 as expected. but why? It doesn't make sense.</p>