I uploaded a revised version of the patch that fixes bugs in both the
FlatQueueStrategy.GetTimeoutMessages AND the
SubQueueStrategy.GetTimeoutMessages methods.
The SubQueueStrategy.GetTimeoutMessages method was deserializing the
DateTime to be sent via the following line:
Time = DateTime.FromBinary(BitConverter.ToInt64(message.Extension, 0))
I was having all kinds of weird dates show up when the messages were
restored from the queue, and I discovered it should actually be this:
Time = DateTime.FromBinary(BitConverter.ToInt64(message.Extension,
16))
Notice the change from "0" to "16". This is because the first 16
bytes of the message.Extension property are set to the message id in
the MsmqTransport.GenerateMsmqMessageFromMessageBatch method. I have
verified that my changes restore the _correct_ times to be sent.
Let me know your thoughts. Thanks!
-tyler