Search in sources :

Example 1 with CoordinatorNotAvailableException

use of org.apache.kafka.common.errors.CoordinatorNotAvailableException in project kafka by apache.

the class ListTransactionsHandler method handleResponse.

@Override
public ApiResult<AllBrokersStrategy.BrokerKey, Collection<TransactionListing>> handleResponse(Node broker, Set<AllBrokersStrategy.BrokerKey> keys, AbstractResponse abstractResponse) {
    int brokerId = broker.id();
    AllBrokersStrategy.BrokerKey key = requireSingleton(keys, brokerId);
    ListTransactionsResponse response = (ListTransactionsResponse) abstractResponse;
    Errors error = Errors.forCode(response.data().errorCode());
    if (error == Errors.COORDINATOR_LOAD_IN_PROGRESS) {
        log.debug("The `ListTransactions` request sent to broker {} failed because the " + "coordinator is still loading state. Will try again after backing off", brokerId);
        return ApiResult.empty();
    } else if (error == Errors.COORDINATOR_NOT_AVAILABLE) {
        log.debug("The `ListTransactions` request sent to broker {} failed because the " + "coordinator is shutting down", brokerId);
        return ApiResult.failed(key, new CoordinatorNotAvailableException("ListTransactions " + "request sent to broker " + brokerId + " failed because the coordinator is shutting down"));
    } else if (error != Errors.NONE) {
        log.error("The `ListTransactions` request sent to broker {} failed because of an " + "unexpected error {}", brokerId, error);
        return ApiResult.failed(key, error.exception("ListTransactions request " + "sent to broker " + brokerId + " failed with an unexpected exception"));
    } else {
        List<TransactionListing> listings = response.data().transactionStates().stream().map(transactionState -> new TransactionListing(transactionState.transactionalId(), transactionState.producerId(), TransactionState.parse(transactionState.transactionState()))).collect(Collectors.toList());
        return ApiResult.completed(key, listings);
    }
}
Also used : CoordinatorNotAvailableException(org.apache.kafka.common.errors.CoordinatorNotAvailableException) Logger(org.slf4j.Logger) AbstractResponse(org.apache.kafka.common.requests.AbstractResponse) Collection(java.util.Collection) Set(java.util.Set) ListTransactionsRequest(org.apache.kafka.common.requests.ListTransactionsRequest) Collectors(java.util.stream.Collectors) ListTransactionsRequestData(org.apache.kafka.common.message.ListTransactionsRequestData) ArrayList(java.util.ArrayList) TransactionState(org.apache.kafka.clients.admin.TransactionState) ListTransactionsResponse(org.apache.kafka.common.requests.ListTransactionsResponse) List(java.util.List) LogContext(org.apache.kafka.common.utils.LogContext) ListTransactionsOptions(org.apache.kafka.clients.admin.ListTransactionsOptions) Errors(org.apache.kafka.common.protocol.Errors) TransactionListing(org.apache.kafka.clients.admin.TransactionListing) Node(org.apache.kafka.common.Node) Errors(org.apache.kafka.common.protocol.Errors) ListTransactionsResponse(org.apache.kafka.common.requests.ListTransactionsResponse) CoordinatorNotAvailableException(org.apache.kafka.common.errors.CoordinatorNotAvailableException) TransactionListing(org.apache.kafka.clients.admin.TransactionListing)

Aggregations

ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 List (java.util.List)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 ListTransactionsOptions (org.apache.kafka.clients.admin.ListTransactionsOptions)1 TransactionListing (org.apache.kafka.clients.admin.TransactionListing)1 TransactionState (org.apache.kafka.clients.admin.TransactionState)1 Node (org.apache.kafka.common.Node)1 CoordinatorNotAvailableException (org.apache.kafka.common.errors.CoordinatorNotAvailableException)1 ListTransactionsRequestData (org.apache.kafka.common.message.ListTransactionsRequestData)1 Errors (org.apache.kafka.common.protocol.Errors)1 AbstractResponse (org.apache.kafka.common.requests.AbstractResponse)1 ListTransactionsRequest (org.apache.kafka.common.requests.ListTransactionsRequest)1 ListTransactionsResponse (org.apache.kafka.common.requests.ListTransactionsResponse)1 LogContext (org.apache.kafka.common.utils.LogContext)1 Logger (org.slf4j.Logger)1