title: Rxjava combineLatest - why is BiFunction called twice when only one subject changed?
body: <p>I wrote a simply example in hopes someone can help me understand this code and why its printing the text in the Bifunction twice:</p>
  
  <pre><code> var subject1: BehaviorSubject&lt;String&gt;? = null
      var subject2: BehaviorSubject&lt;String&gt;? = null
  
  
  
  
  
     override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContentView(R.layout.activity_main)
          Log.v("mytag", "oncreate called now")
          subject1 = BehaviorSubject.createDefault("hello")
          subject2 = BehaviorSubject.createDefault("goodbye") //not subscribed to
  
  
          subject1?.subscribe { Log.v("subject1 it1", it) }
  
  
          btn.setOnClickListener {
              subject1?.onNext("hello btnclicked" + Random().nextInt(9000))
  
              ObservableCombineLatest.combineLatest(
                      subject1,subject2, BiFunction&lt;String,String,String&gt;
              { t1, t2 -&gt; "biFun call" }).
                      subscribe { msg-&gt; Log.d("mytag","combined latest update: $msg")}
          }
      }
  
  }
  </code></pre>
  
  <p>when i click the button on the first try, this is the output:</p>
  
  <pre><code> 07-13 00:55:09.124 10559 10559 D mytag   : combined latest update: biFun call
  07-13 00:55:09.130 10559 10559 D mytag   : combined latest update: biFun call
  </code></pre>
  
  <p>but why ? only one subject has changed, thats subject1 variable. when i click the button its invoking onNext which starts an emission.  Why is it printing twice ? i am expecting since subject2 is never used it will not fire.  </p>