You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2006/07/11 18:29:26 UTC
svn commit: r420915 -
/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/LocalTxManager.java
Author: arminw
Date: Tue Jul 11 09:29:24 2006
New Revision: 420915
URL: http://svn.apache.org/viewvc?rev=420915&view=rev
Log:
override finalize() to add check for unclosed tx
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/LocalTxManager.java
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/LocalTxManager.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/LocalTxManager.java?rev=420915&r1=420914&r2=420915&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/LocalTxManager.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/LocalTxManager.java Tue Jul 11 09:29:24 2006
@@ -16,20 +16,24 @@
*/
import java.util.Hashtable;
+import java.util.ArrayList;
import org.apache.ojb.broker.util.configuration.Configuration;
+import org.apache.ojb.broker.util.logging.Logger;
+import org.apache.ojb.broker.util.logging.LoggerFactory;
import org.odmg.TransactionNotInProgressException;
+import org.odmg.TransactionInProgressException;
/**
* In a non-appserver environment, without a transaction manager, we can
* safely associate the current ODMG transaction with the calling thread.
*
- * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
- * @author <a href="mailto:mattbaird@yahoo.com">Matthew Baird</a>
* @version $Id$
*/
public class LocalTxManager implements OJBTxManager
{
+ private static Logger log = LoggerFactory.getLogger(LocalTxManager.class);
+
/**
* Internal table which provides mapping between threads and transactions.
* This is required because a Thread can join a Transaction already in
@@ -159,6 +163,18 @@
public void remove(Thread key_thread)
{
m_table.remove(key_thread);
+ }
+
+ protected void finalize() throws Throwable
+ {
+ super.finalize();
+ if(m_table.size() > 0)
+ {
+ log.error("Found registered transactions on shutdown, please check your tx-demarcation," +
+ " tx's are: " + new ArrayList(m_table.values()));
+ throw new TransactionInProgressException("Found registered transactions on shutdown, please check your tx-demarcation");
+
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org