When I was reading the Federation Protocol Spec, I actually had a similar
use case in mind, but if you read the elementStart operation description,
you'll notice that it only allows insert operations, and retain() is
classified as an update operation. This seems to indicate that the spec
itself prohibits wrapping existing content with new elements.

Mark Adamcin
(Sent from phone)

On Oct 1, 2009 6:10 PM, "Daniel Spiewak" <[email protected]> wrote:


I'm using a very recent Mercurial clone (c4cd3e60e80f) of the wave-
protocol sources.  Prior to the most recent batch of updates, I could
create an operation like the following:

elementStart("p", { })
retain(14)
elementEnd()

This would be applied to a document which already contains 14
components.  This worked fine in previous versions, resulting in a
document which contained those original 14 components wrapped in a <p>
element.

Unfortunately, the latest batch of updates (for GWT compatibility)
seem to have broken this case.  Now I get the following exception:

java.lang.IllegalStateException: Attempt to build ill-formed operation
(ViolationCollector[1: ill-formed: retain inside insert or delete at
original document position 0 / resulting document position 1]): << p
{}; __14; >>;
       at
org.waveprotocol.wave.model.document.operation.impl.BufferedDocOpImpl.checkWellformedness
(BufferedDocOpImpl.java:84)
       at
org.waveprotocol.wave.model.document.operation.impl.BufferedDocOpImpl.create
(BufferedDocOpImpl.java:59)
       at
org.waveprotocol.wave.model.document.operation.impl.UncheckedDocOpBuffer.finishChecked
(UncheckedDocOpBuffer.java:74)
       at
org.waveprotocol.wave.model.document.operation.impl.DocOpBuffer.finish
(DocOpBuffer.java:35)
       at
org.waveprotocol.wave.model.document.operation.impl.DocOpUtil.buffer
(DocOpUtil.java:56)
       ...

XML operations which do not retain() between startElement and
endElement don't seem to have any problems.  Is this indeed a
regression, or was this behavior never supposed to be permissible?

Daniel


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to