On Feb 20, 2007, at 10:02 AM, Vincent Massol wrote:
  Hi,
 I'd like to clean a bit the XWikiHibernateVersioningStore class but
 I'd like to confirm my changes as I don't want to break anything.
 There are several methods like this one:
     public void updateXWikiDocArchive(XWikiDocument doc, String
 text, boolean bTransaction, XWikiContext context) throws
 XWikiException {
         try {
             if (bTransaction) {
                 checkHibernate(context);
                 bTransaction = beginTransaction(false, context);
             }
             Session session = getSession(context);
             XWikiDocumentArchive archivedoc =
 getXWikiDocumentArchive(doc, context);
             archivedoc.updateArchive(doc.getFullName(), text);
             saveXWikiDocArchive(archivedoc, bTransaction, context);
             if (bTransaction) {
                 endTransaction(context, true, false);
             }
         } catch (Exception e) {
             Object[] args = { doc.getFullName() };
             throw new XWikiException
 ( XWikiException.MODULE_XWIKI_STORE,
 XWikiException.ERROR_XWIKI_STORE_HIBERNATE_SAVING_OBJECT,
                     "Exception while updating archive {0}", e, args);
         } finally {
             try {
                 if (bTransaction)
                     endTransaction(context, false, false);
             } catch (Exception e) {}
         }
     }
 1) Why is checkHibernate done only when the operation is done in a
 transaction?
 2) Why is getSession called as the session object is not used?
 3) I think the endTransaction is called twice...
 4) Shouldn't we log something if the endTransaction fails?
 Thus I'd like to:
 a) move the checkHibernate outside of the if(bTransaction)
 b) remove getSession call
 c) remove the first endTransaction and leave the one in the finally
 clause 
Ah just noticed the 2 endTransactions are not called with the same
parameters. Is that something wanted?
Thanks
-Vincent
  d) add a warn log if the end transaction fail
 ok with everyone?
 Thanks
 -Vincent
 
___________________________________________________________________________
Yahoo! Mail r�invente le mail ! D�couvrez le nouveau Yahoo! Mail et son interface
r�volutionnaire.
http://fr.mail.yahoo.com