My problem went away after freshening my jars from a fresh trunk build. I
think I caused this problem with mismatched jar files. If so, sorry for
wasting anyone's time.
David
On 9/14/07 4:40 AM, "Marcel Reutegger" <[EMAIL PROTECTED]> wrote:
> that's very strange. does this also happen if you connect jcr2spi directly
> with
> spi2jcr without your intermediary layer?
>
> regards
> marcel
>
> David Rauschenbach wrote:
>> My removeNodeTest doesn't seem to want to work through jcr2spi. When I
>> remove a node and save its parent, jcr2spi ChangeLog throws
>> ConstraintViolationException("ChangeLog is not self contained"), because:
>>
>> 1. opStates (returned by op.getAffectedItemStates()) contains two entries:
>>
>> 1a. Status.EXISTING_REMOVED of the node being removed
>> 1b. Status.EXISTING_MODIFIED of its parent, the root node.
>>
>> whereas
>>
>> 2. affectedStates contains only one entry:
>>
>> 2a. Status.EXISTING_MODIFIED of the root node
>>
>> Any idea why the affectedStates var would only contain the one entry, not
>> both? Maybe some metadata drives that?
>>
>> I'm using a web service SPI I implemented, in conjunction with the jcr2spi
>> and spi2jcr bridges, coupled with a back-end Jackrabbit in-memory
>> filesystem. So there's always the possibility that node or property SPI
>> calls inject errors and cause this downstream problem.
>>
>> Here's my invoking code;
>>
>>> final String NODE = "block";
>>>
>>> Session serverSession = login(repository, creds);
>>> Node serverRootNode = serverSession.getRootNode();
>>> assertFalse(serverRootNode.hasNode(NODE));
>>> Node serverNode = serverRootNode.addNode(NODE, "nt:folder");
>>> serverSession.save();
>>> assertTrue(serverRootNode.hasNode(NODE));
>>>
>>> Session clientSession = login(clientRepository, creds);
>>> Node clientRootNode = clientSession.getRootNode();
>>> Node clientNode = clientRootNode.getNode(NODE);
>>> clientNode.remove();
>>> clientRootNode.save(); <== THROWS "ChangeLog is not self contained"
>>>
>>> serverSession.refresh(false);
>>> assertFalse(serverRootNode.hasNode(NODE));
>>
>> Thanks
>>
>>
>>
>