Zwave getRoutingInfo around 5 seconds delay issue

My understanding is
in ZwaveController.java/ZWaveSendThread
supposedly transactionComplete semaphore is set upon packet receive.
I thing “Checking transaction complete” log is a good indicator to indicate that.

if (!transactionCompleted.tryAcquire(1, zWaveResponseTimeout, TimeUnit.MILLISECONDS)) {

However, below log, we can see 4,5 seconds between “Checking transaction complete” & “Response processed after 4304ms/4304ms”.
For me, it seems there’s something block to set the [transaction complete] semaphore even after “Checking transaction complete” is printed out.

Can some expert shed some light whether this is acceptable as normal case or it shows something wrong here? Thank you very much.

[Related Log:]

2017-09-27 21:27:10.291 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 255: Sending REQUEST Message = 01 07 00 80 10 00 00 03 6B

2017-09-27 21:27:10.324 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=GetRoutingInfo, callback id=0, expected=GetRoutingInfo, cancelled=false transaction complete!

2017-09-27 21:27:14.596 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 255: Response processed after 4304ms/4304ms.