summaryrefslogtreecommitdiff
path: root/java/src/Freeze/ConnectionI.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/Freeze/ConnectionI.java')
-rw-r--r--java/src/Freeze/ConnectionI.java119
1 files changed, 47 insertions, 72 deletions
diff --git a/java/src/Freeze/ConnectionI.java b/java/src/Freeze/ConnectionI.java
index 9b403b345bb..94fd8cfb656 100644
--- a/java/src/Freeze/ConnectionI.java
+++ b/java/src/Freeze/ConnectionI.java
@@ -9,9 +9,8 @@
package Freeze;
-class ConnectionI implements Connection
+public class ConnectionI implements Connection
{
-
public Transaction
beginTransaction()
{
@@ -37,7 +36,7 @@ class ConnectionI implements Connection
{
throw new DatabaseException("Closed connection");
}
-
+
try
{
_dbEnv.getEnv().removeDatabase(dbTxn(), mapName + "." + indexName, null);
@@ -60,42 +59,11 @@ class ConnectionI implements Connection
}
}
-
public void
close()
{
- close(false);
- }
-
- public Ice.Communicator
- getCommunicator()
- {
- return _communicator;
- }
-
- public String
- getName()
- {
- return _envName;
- }
-
- protected void
- finalize()
- {
- close(true);
- }
-
- void
- close(boolean finalizing)
- {
if(_transaction != null)
{
- if(finalizing)
- {
- _communicator.getLogger().warning
- ("Finalizing Connection on DbEnv \"" + _envName + "\" with active transaction");
- }
-
try
{
_transaction.rollback();
@@ -108,16 +76,11 @@ class ConnectionI implements Connection
}
}
-
- synchronized(this)
+ java.util.Iterator<Map> p = _mapList.iterator();
+ while(p.hasNext())
{
- java.util.Iterator p = _mapList.iterator();
- while(p.hasNext())
- {
- ((Map) p.next()).close(finalizing);
- }
+ p.next().close();
}
-
if(_dbEnv != null)
{
@@ -132,17 +95,40 @@ class ConnectionI implements Connection
}
}
+ public Ice.Communicator
+ getCommunicator()
+ {
+ return _communicator;
+ }
+
+ public String
+ getName()
+ {
+ return _envName;
+ }
+
+ protected void
+ finalize()
+ throws Throwable
+ {
+ if(_dbEnv != null)
+ {
+ _logger.warning("leaked Connection for DbEnv \"" + _envName + "\"");
+ }
+ super.finalize();
+ }
+
ConnectionI(SharedDbEnv dbEnv)
{
_dbEnv = dbEnv;
_communicator = dbEnv.getCommunicator();
+ _logger = _communicator.getLogger();
_envName = dbEnv.getEnvName();
_trace = _communicator.getProperties().getPropertyAsInt("Freeze.Trace.Map");
_txTrace = _communicator.getProperties().getPropertyAsInt("Freeze.Trace.Transaction");
-
+
Ice.Properties properties = _communicator.getProperties();
_deadlockWarning = properties.getPropertyAsInt("Freeze.Warn.Deadlocks") > 0;
- _closeInFinalizeWarning = properties.getPropertyAsIntWithDefault("Freeze.Warn.CloseInFinalize", 1) > 0;
}
ConnectionI(Ice.Communicator communicator, String envName, com.sleepycat.db.Environment dbEnv)
@@ -150,31 +136,26 @@ class ConnectionI implements Connection
this(SharedDbEnv.get(communicator, envName, dbEnv));
}
-
- //
- // The synchronization is only needed only during finalization
- //
-
- synchronized void
+ public void
closeAllIterators()
{
- java.util.Iterator p = _mapList.iterator();
+ java.util.Iterator<Map> p = _mapList.iterator();
while(p.hasNext())
{
- ((Map) p.next()).closeAllIterators();
+ p.next().closeAllIterators();
}
}
- synchronized java.util.Iterator
+ public java.util.Iterator
registerMap(Map map)
{
_mapList.addFirst(map);
- java.util.Iterator p = _mapList.iterator();
+ java.util.Iterator<Map> p = _mapList.iterator();
p.next();
return p;
}
- synchronized void
+ public void
unregisterMap(java.util.Iterator p)
{
p.remove();
@@ -186,7 +167,7 @@ class ConnectionI implements Connection
_transaction = null;
}
- com.sleepycat.db.Transaction
+ public com.sleepycat.db.Transaction
dbTxn()
{
if(_transaction == null)
@@ -199,61 +180,55 @@ class ConnectionI implements Connection
}
}
- SharedDbEnv
+ public SharedDbEnv
dbEnv()
{
return _dbEnv;
}
- String
+ public String
envName()
{
return _envName;
}
- Ice.Communicator
+ public Ice.Communicator
communicator()
{
return _communicator;
}
- final int
+ public final int
trace()
{
return _trace;
}
- final int
+ public final int
txTrace()
{
return _txTrace;
}
- final boolean
+ public final boolean
deadlockWarning()
{
return _deadlockWarning;
}
- final boolean
- closeInFinalizeWarning()
- {
- return _closeInFinalizeWarning;
- }
-
- private String errorPrefix()
+ private String
+ errorPrefix()
{
return "DbEnv(\"" + _envName + "\"): ";
}
-
private Ice.Communicator _communicator;
+ private Ice.Logger _logger;
private SharedDbEnv _dbEnv;
private String _envName;
private TransactionI _transaction;
- private LinkedList _mapList = new Freeze.LinkedList();
+ private LinkedList<Map> _mapList = new LinkedList<Map>();
private int _trace;
private int _txTrace;
private boolean _deadlockWarning;
- private boolean _closeInFinalizeWarning;
}