private synchronized void onEvaluatorFailed ( final EvaluatorStatusPOJO evaluatorStatus ) { assert evaluatorStatus . getState ( ) == State . FAILED ; final EvaluatorException evaluatorException ; if ( evaluatorStatus . hasError ( ) ) { final Optional < Throwable > exception = this . exceptionCodec . fromBytes ( evaluatorStatus . getError ( ) ) ; evaluatorException = new EvaluatorException ( getId ( ) , exception . isPresent ( ) ? exception . get ( ) : new NonSerializableException ( "Exception sent, but can't be deserialized" , evaluatorStatus . getError ( ) ) ) ; } else { evaluatorException = new EvaluatorException ( getId ( ) , new Exception ( "No exception sent" ) ) ; } this . onEvaluatorException ( evaluatorException ) ; }
Process an evaluator message that indicates a crash .