Is there a way to list the currently open sessions in the server, so I
can trace this problem?
Carlos
Carlos Villegas wrote:
Hmmm... We had problems before because the application didn't close the
sessions on exit and the RMI client leaves them open on the server even
though the client VM exits. We may still have session leakage.
Shouldn't the RMI server close sessions if the client dies, or there's
no way to know that a client has died?
Thanks for the explanation!
Carlos
Stefan Guggisberg wrote:
On 2/27/06, Carlos Villegas <[EMAIL PROTECTED]> wrote:
What does the following exception mean:
javax.jcr.InvalidItemStateException:
d35eb7b6-ca1a-4c18-98fc-0aa0ee9b8987: the item cannot be saved because
it has been modified externally.
There's only one application using the repository. What could be
happening?
this exception indicates that you have 2 separate sessions that try to
modify
the *same* item.
the following code fragment illustrates this:
Node a1 = session1.getRootNode().getNode("a");
Node a2 = session2.getRootNode().getNode("a");
// session 1 modifies node a
a1.addNode("b");
// session 2 modifies node a
a2.addNode("c");
// session 1 saves its changes
a1.save();
// session 2 tries to save its changes but gets
// an InvalidItemStateException because its
// changes have become stale
a2.save(); // throws
you can avoid such situations if you lock the node before
you start modifiying it.
cheers
stefan
Carlos