Search in sources :

Example 1 with FromExceptionRemoteCommandRequest

use of com.eightkdata.mongowp.client.core.MongoConnection.FromExceptionRemoteCommandRequest in project torodb by torodb.

the class TopologyHeartbeatHandler method handleHeartbeatError.

@Nonnull
private RemoteCommandResponse<ReplSetHeartbeatReply> handleHeartbeatError(Throwable t, Instant start) {
    Duration d = Duration.between(clock.instant(), start);
    ErrorCode errorCode;
    if (t instanceof MongoException) {
        return new FromExceptionRemoteCommandRequest((MongoException) t, d);
    } else if (t instanceof UnreachableMongoServerException) {
        errorCode = ErrorCode.HOST_UNREACHABLE;
    } else {
        if (!(t instanceof MongoRuntimeException) && !(t instanceof UnreachableMongoServerException)) {
            LOGGER.warn("Unexpected exception {} catched by the topology " + "heartbeat handler", t.getClass().getSimpleName());
        }
        errorCode = ErrorCode.UNKNOWN_ERROR;
    }
    return new ErroneousRemoteCommandResponse<>(errorCode, t.getLocalizedMessage(), d);
}
Also used : MongoException(com.eightkdata.mongowp.exceptions.MongoException) UnreachableMongoServerException(com.eightkdata.mongowp.client.core.UnreachableMongoServerException) Duration(java.time.Duration) MongoRuntimeException(com.eightkdata.mongowp.server.api.MongoRuntimeException) ErrorCode(com.eightkdata.mongowp.ErrorCode) ErroneousRemoteCommandResponse(com.eightkdata.mongowp.client.core.MongoConnection.ErroneousRemoteCommandResponse) FromExceptionRemoteCommandRequest(com.eightkdata.mongowp.client.core.MongoConnection.FromExceptionRemoteCommandRequest) Nonnull(javax.annotation.Nonnull)

Aggregations

ErrorCode (com.eightkdata.mongowp.ErrorCode)1 ErroneousRemoteCommandResponse (com.eightkdata.mongowp.client.core.MongoConnection.ErroneousRemoteCommandResponse)1 FromExceptionRemoteCommandRequest (com.eightkdata.mongowp.client.core.MongoConnection.FromExceptionRemoteCommandRequest)1 UnreachableMongoServerException (com.eightkdata.mongowp.client.core.UnreachableMongoServerException)1 MongoException (com.eightkdata.mongowp.exceptions.MongoException)1 MongoRuntimeException (com.eightkdata.mongowp.server.api.MongoRuntimeException)1 Duration (java.time.Duration)1 Nonnull (javax.annotation.Nonnull)1