code: @Override
  	public void onSubscribe(@Nullable Subscription s) {
  		if(s != null) {
  			try {
  				setSubscription(s); 
  			} catch(IllegalStateException e) {
  				subscriber.onError(new IllegalArgumentException("already subscribed"));
  				cancel();
  				return;
  			}
  			subscriber.onSubscribe(this);
  		}
  	}
docs: it is up to the calling code to pass a valid subscription or <code>null</code>
  in both cases this class acts as a valid {@link Subscription}, since the real
  {@link Subscriber} uses it for demand signaling. If a not <code>null</code>
  {@link Subscription} is passed, all events are also forwarded and it can be used
  by the owning {@link Publisher}.
  @param s