public void terminated(ClientCnx cnx) { State previousState = getAndUpdateState(state -> (state == State.Closed ? State.Closed : State.Terminated)); if (previousState != State.Terminated && previousState != State.Closed) { log.info("[{}] [{}] The topic has been terminated", topic, producerName); setClientCnx(null); failPendingMessages(cnx, new PulsarClientException.TopicTerminatedException("The topic has been terminated")); } }
failPendingMessages(cnx(), te); stats.incrementSendFailed(pendingMessages.size());
failPendingMessages(cnx(), bqe); failPendingMessages(cnx(), (PulsarClientException) cause); producerCreatedFuture.completeExceptionally(cause); client.cleanupProducer(this);