@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);
		}
	}
@ 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 ) ; } }
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