Seems that this problem is a known bug.
Found this in ClientFrontendImpl.java:
// TODO: Because of the way we create the fake digest edit ops for the
// index wave, if the listener is subscribing to the index wave
then it
// may be that this requires fewer ops than the existing
listeners have
// seen, leaving this listener at a different end version than
other
// listeners on the same wavelet. Fix!
I think the proper fix might be to return the real version number at
the end of the indexwave update.
Thus, the indexwave reports an update that is applied at version 2 and
has a resulting_version of 4.
This skips 3, but at least the client can see that nothing is missing.
Torben
On Oct 27, 10:51 pm, Torben <[email protected]> wrote:
> Hi,
>
> it seems that there is a bug in the version counting of the indexwave.
> It can happen that the version numbers of the indexwave updates skip
> some numbers.
> I can reproduce the bug as follows:
>
> User d...@localhost creates a wave and adds tor...@localhost.
> At this time tor...@localhost is offline.
> Now user depp posts two messages "Hallo" and "trulla" (see message
> below)
> This accounts for two updates of the indexwave.
>
> Now tor...@localhost connects. My client receives one update message,
> which lifts it up to version 3. Please note that FedOne compressed the
> two
> messages into one. It simply tells the digest is "Hallotrulla".
>
> Now d...@localhost sends the message "Error".
> The corresponding indexwave update claims to build on version 4, which
> my client never got
> (see the second message below). If tor...@localhost is online from the
> very beginning,
> version 4 is obviously correct, but not when the compressed version
> has been received.
>
> The quick fix for me is to totally ignore version numbers. But it
> seems incorrect somehow.
>
> ----------------------------------------------------------------------------------------------------------
>
> wavelet_name: "wave://localhost/!indexwave/w+lRfApxOF0iKK"
> applied_delta {
> hashed_version {
> version: 0
> history_hash: ""
> }
> author: "digest-author"
> operation {
> mutate_document {
> document_id: "digest"
> document_operation {
> component {
> characters: "Hallotrulla"
> }
> }
> }
> }}
>
> applied_delta {
> hashed_version {
> version: 1
> history_hash: ""
> }
> author: "d...@localhost"
> operation {
> add_participant: "d...@localhost"
> }}
>
> applied_delta {
> hashed_version {
> version: 2
> history_hash: ""
> }
> author: "d...@localhost"
> operation {
> add_participant: "tor...@localhost"
> }}
>
> resulting_version {
> version: 3
> history_hash: ""
>
> }
>
> ---------------------------------------------
>
> applied_delta {
> hashed_version {
> version: 4
> history_hash: ""
> }
> author: "digest-author"
> operation {
> mutate_document {
> document_id: "digest"
> document_operation {
> component {
> retain_item_count: 11
> }
> component {
> characters: "Error"
> }
> }
> }
> }}
>
> resulting_version {
> version: 5
> history_hash: ""
>
> }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Wave
Protocol" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/wave-protocol?hl=en
-~----------~----~----~----~------~----~------~--~---