Hi Duncan,
that's more an issue of how the test is written: the sent messages
should have set a valid processorId and sequenceNr but they don't.
When re-writing the test to
respondTo(Message("a", processorId = 1, sequenceNr = 12L)) must
be("re: a")
respondTo(Message("b", processorId = 1, sequenceNr = 13L)) must
be("re: b")
you'll get
out key = Key
(2147483647,1,1,0)
ack key = Key(1,0,12,1)
out key = Key
(2147483647,1,2,0)
ack key = Key(1,0,13,1)
and the ack keys are unique. ProcessorId and sequenceNr are always
valid when the channel is used from within a processor. This is
currently the only allowed/supported way to use channels (but the
tests are using them standalone). If used from within a processor,
you won't see duplicate keys.
I'll soon work on an
enhancement
that will officially allow standalone channel usage. When
implemented and a channel receives a message with an invalid
processorId and/or sequenceNr it won't generate an ack (so there's
no chance for a duplicate).
So you can safely turn of unique key constraints, for the moment.
When
ticket
#84 is implemented, parts of the channel specs will probably
need to be rewritten and then the tests will pass even with unique
key constraints enabled.
Cheers,
Martin
Am 03.04.13 07:25, schrieb ddevore: