Hi Jair,

it's fixed in CVS. A workaround was posted
by a Gerhard Grosse:

On Thu, 2 Oct 2003 14:39:01 +0200, <[EMAIL PROTECTED]> wrote:

I encountered a problem with class org.apache.ojb.odmg.TransactionImpl: If
a transaction is opened and committed without ever any object being
locked, a NullPointerException is thrown at line 323 (method
doCommitOnObjects):


if(!broker.isInTransaction()) broker.beginTransaction();

I believe the fix would be to use the getBroker() method instead of
referring to the instance variable directly:

if(!getBroker().isInTransaction()) broker.beginTransaction();

Could somebody confirm this?

Gerhard

regards, Armin


On Fri, 3 Oct 2003 01:03:05 -0300, Jair da Silva Ferreira J�nior <[EMAIL PROTECTED]> wrote:


Hi,
I am using ojb1.0_rc4, ODMG api with OJB queries and mysql4. I have a problem on how to recover from an exception thrown inside the commit of an ODMG transaction. Please see the above example code and follow the comments.


    Transaction t=null;
    try{
        t=implementation.newTransaction();
        t.begin();

// do something...

t.commit(); //an exception is thrown here! usually the exception root cause is an SQLException
}
catch(Exception e){
//log exception
if(t!=null){
t.abort(); //here a NullPointerException is thrown. why?
}
}


the stack trace of the NullPointerException thrown in t.abort() is:
java.lang.NullPointerException
at org.apache.ojb.odmg.TransactionImpl.doClose(Unknown Source)
at org.apache.ojb.odmg.TransactionImpl.abort(Unknown Source)
...


Can somebody help me on how to gracefuly recover from an exception in commit? Am I doing something wrong?

Any help would be appreciated.

Thanks,
    Jair Jr




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to