diff --git a/matrix-util.js b/matrix-util.js index 55b205b..76a5046 100644 --- a/matrix-util.js +++ b/matrix-util.js @@ -127,26 +127,43 @@ MatrixUtil.prototype._updateLastResponseTime = function(partner) { let matrix = this.matrix; let logger = this.logger; - if (!matrix.buddies[partner]['last_outgoing']) { - logger.verbose('No outgoing yet, skip updateLastResponseTime'); - return; + try { + if (!matrix.buddies[partner]['last_outgoing']) { + logger.verbose('No outgoing yet, skip updateLastResponseTime'); + return; + } + + if (!matrix.buddies[partner]['last_outgoing']['last_update_ts']) { + logger.verbose('No outgoing timestamp yet, skip updateLastResponseTime'); + return; + } + } + catch(e) { + logger.warn('Exception when preparing updateLastResponseTime', {err: e}); } - if (!matrix.buddies[partner]['last_outgoing']['last_update_ts']) { - logger.verbose('No outgoing timestamp yet, skip updateLastResponseTime'); - return; + try { + if ( + matrix.buddies[partner]['last_incoming'] + && (Number(matrix.buddies[partner]['last_incoming']['last_update_ts']) > Number(matrix.buddies[partner]['last_outgoing']['last_update_ts'])) + ) { + return; + } + } + catch(e) { + logger.warn('Exception when checking if last_incoming > last_outgoing', {err: e}); } - if ( - matrix.buddies[partner]['last_incoming'] - && (Number(matrix.buddies[partner]['last_incoming']['last_update_ts']) > Number(matrix.buddies[partner]['last_outgoing']['last_update_ts'])) - ) { - return; + + try { + let delta = Date.now() - Number(matrix.buddies[partner]['last_outgoing']['last_update_ts']); + logger.verbose('Response time in ' + delta + 'ms'); + matrix.buddies[partner]['last_response_time'] = Math.round(delta/1000); + } + catch(e) { + logger.warn('Exception when calculating last_response_time', {err: e}); } - let delta = Date.now() - Number(matrix.buddies[partner]['last_outgoing']['last_update_ts']); - logger.verbose('Response time in ' + delta + 'ms'); - matrix.buddies[partner]['last_response_time'] = Math.round(delta/1000); } MatrixUtil.prototype._updateLastMessage = function(partner, msg, direction) {