Hi Armin, I oblige to have a broker instance because I use the getObjectByQuery(query) treatment
broker.getObjectByQuery(query); -----Message d'origine----- De�: Armin Waibel [mailto:[EMAIL PROTECTED] Envoy�: mardi 17 juin 2003 14:46 ��: OJB Users List Objet�: Re: Lock bug ?? Hi Emmanuel, did you have tried without broker.begin... broker.commit... statements? regards, Armin ----- Original Message ----- From: "Emmanuel Dupont" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Tuesday, June 17, 2003 12:53 PM Subject: Lock bug ?? Hi all, Can someone tell me what is wrong with this piece of code ?? I'm using OJB, rc1. When I call this method twice it failed on the second call on the lock line. I have only one column in my table. IT is an OID table generator. Whith : [org.apache.ojb.odmg.TransactionImpl] INFO: Abort transaction was called on tx [EMAIL PROTECTED], associated PB was [EMAIL PROTECTED] [org.apache.ojb.broker.accesslayer.ConnectionManagerImpl] INFO: Rollback was called, do rollback on current connection [EMAIL PROTECTED] [BOjects] null java.lang.ClassCastException TransactionImpl.lock(JwtTransactionImpl.java:86) BOjects.getNextOId(BOjects.java:112) org.apache.ojb.broker.TransactionNotInProgressException: ConnectionManager is NOT in transaction at org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.commitTransaction(P ersi stenceBrokerImpl.java:390) at org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.commitTransac tion (DelegatingPersistenceBroker.java:117) at BOjects.getNextOId(JwtBOjects.java:124) Exception in thread "main" When I try to parse the code in the debugger, I doesn't failed ..??? Does that means there is some synchronization problems ? Tx, a lot, any help would be appreciated.. -------------------------------------------- public long getNextOId(Class oidObjectClass) { JwtTransaction tx = jwtImpl.newJwtTransaction(); tx.begin(); JwtDatabase db = jwtImpl.getJwtDatabase(null); PersistenceBroker broker = ((HasBroker) tx).getBroker(); broker.beginTransaction(); long result = -1; try { Query query = new QueryByCriteria(oidObjectClass, null); IObject oidObject = (IObject) broker.getObjectByQuery(query); // Check and increment the Oid ID result = oidObject.getId(); // Delete the old oidObject db.deletePersistent(oidObject); // Create a new OidObject oidObject newOidObject = new oidObject (); // Lock the nextObject for write access tx.lock(newOidObject, WRITE); ///FAILED ON THE SECOND CALL // Set the modification oidObject.setId(result+1); } catch (Exception e) { // rollback in case of errors tx.abort(); System.err.println("[BOjects] " + e.getMessage()); e.printStackTrace(); } broker.commitTransaction(); tx.commit(); return result; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
