jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frédéric Esnault <f...@legisway.com>
Subject RE: XASession and hasPendingChanges
Date Fri, 01 Jun 2007 13:29:55 GMT
I agree on this, hasPendingChanges returning true in case of saved but uncommitted tx would
create some difficulties, especially in a case like the one you submitted.

But...wouldn't it be dangerous to allow a merge of two nodes if one of them is potentially
modified by an uncommitted transaction? The merge can succeed before tx commit, and fail after
commit, which is a situation hasPendingChanges not taking care of tx would allow. Am I wrong?

Frédéric Esnault - Ingénieur R&D
Legisway
60 boulevard de la mission Marchand
92400 Courbevoie La Défense
 

-----Message d'origine-----
De : dominique.pfister@gmail.com [mailto:dominique.pfister@gmail.com] De la part de Dominique
Pfister
Envoyé : vendredi 1 juin 2007 15:17
À : users@jackrabbit.apache.org
Objet : Re: XASession and hasPendingChanges

Hi Frédéric,

according to the specification, hasPendingChanges should return true
if the session has unsaved changes. Some operations (e.g.
javax.jcr.Node.merge(String, boolean)) rely on a session not having
any pending changes. Some client could perfectly use code such as

node.addNode("child");
node.getSession().save();
node.merge("sourcews", true);

If an XASessionImpl has saved but uncommitted changes - this is
probably the case you're referring to, isn't it? - it could decide to
return true in its hasPendingChanges implementation. However, the same
client, unaware of the transactional nature of its session, would
never be able to execute the same piece of code shown above, because
the session would still report pending changes. In other words, a
client would have to detect whether or not it runs in a transactional
environment, which is probably not what you want.

Kind regards
Dominique

On 6/1/07, Frédéric Esnault <fesn@legisway.com> wrote:
> I have a question about the transactional version of the SessionImpl object.
>
> It inherits the hasPendingChanges from the SessionImpl class, but my question is :
>
>
>
> Shouldn't the  hasPendingChanges from XASessionImpl take into consideration the tx status?
>
> Or am I missing something?
>
>
>
> Frederic Esnault
>
>

Mime
View raw message