@ -596,6 +596,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
ToDeviceRpcRequestMetadata md = toDeviceRpcPendingMap . get ( responseMsg . getRequestId ( ) ) ;
ToDeviceRpcRequestMetadata md = toDeviceRpcPendingMap . get ( responseMsg . getRequestId ( ) ) ;
if ( md ! = null ) {
if ( md ! = null ) {
JsonNode response = null ;
if ( status . equals ( RpcStatus . DELIVERED ) ) {
if ( status . equals ( RpcStatus . DELIVERED ) ) {
if ( md . getMsg ( ) . getMsg ( ) . isOneway ( ) ) {
if ( md . getMsg ( ) . getMsg ( ) . isOneway ( ) ) {
toDeviceRpcPendingMap . remove ( responseMsg . getRequestId ( ) ) ;
toDeviceRpcPendingMap . remove ( responseMsg . getRequestId ( ) ) ;
@ -611,13 +612,14 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
if ( maxRpcRetries < = md . getRetries ( ) ) {
if ( maxRpcRetries < = md . getRetries ( ) ) {
toDeviceRpcPendingMap . remove ( responseMsg . getRequestId ( ) ) ;
toDeviceRpcPendingMap . remove ( responseMsg . getRequestId ( ) ) ;
status = RpcStatus . FAILED ;
status = RpcStatus . FAILED ;
response = JacksonUtil . newObjectNode ( ) . put ( "error" , "There was a Timeout and all retry attempts have been exhausted. Retry attempts set: " + maxRpcRetries ) ;
} else {
} else {
md . setRetries ( md . getRetries ( ) + 1 ) ;
md . setRetries ( md . getRetries ( ) + 1 ) ;
}
}
}
}
if ( md . getMsg ( ) . getMsg ( ) . isPersisted ( ) ) {
if ( md . getMsg ( ) . getMsg ( ) . isPersisted ( ) ) {
systemContext . getTbRpcService ( ) . save ( tenantId , new RpcId ( rpcId ) , status , null ) ;
systemContext . getTbRpcService ( ) . save ( tenantId , new RpcId ( rpcId ) , status , response ) ;
}
}
if ( status ! = RpcStatus . SENT ) {
if ( status ! = RpcStatus . SENT ) {
sendNextPendingRequest ( context ) ;
sendNextPendingRequest ( context ) ;