private SubscriptionProxy(Observable<T> upstreamObservable, Action0 onTerminate) { ReplaySubject<T> replaySubject = ReplaySubject.create(); upstreamSubscription = upstreamObservable.subscribe(replaySubject); proxy = replaySubject.doOnTerminate(onTerminate); subscriptionList = new CompositeSubscription(upstreamSubscription); }