@Override
public void run() {
MessageEncoderDecoder crypt = getOrInitCrypt();
Map<Integer, PlatformEncDec> platformEncDecMap = getOrInitMap(platformProtocols);
try {
ClientSync request = decodeRequest(message, crypt, platformEncDecMap);
LOG.trace("Processing request {}", request);
BootstrapClientSync bsRequest = request.getBootstrapSync();
Set<ProtocolConnectionData> transports = opsListService.filter(bsRequest.getKeys());
BootstrapServerSync bsResponse = new BootstrapServerSync(
bsRequest.getRequestId(), transports);
ServerSync response = new ServerSync();
response.setRequestId(request.getRequestId());
response.setStatus(SyncStatus.SUCCESS);
response.setBootstrapSync(bsResponse);
LOG.trace("Response {}", response);
encodeAndForward(message, crypt, platformEncDecMap, response);
LOG.trace("Response forwarded to specific transport {}", response);
} catch (Exception ex) {
processErrors(message.getChannelContext(), message.getErrorBuilder(), ex);
}
}