[Mulgara-svn] r979 - trunk/src/jar/server-rmi/java/org/mulgara/server/rmi
ronald at mulgara.org
ronald at mulgara.org
Fri Jun 6 06:39:50 UTC 2008
Author: ronald
Date: 2008-06-05 23:39:49 -0700 (Thu, 05 Jun 2008)
New Revision: 979
Modified:
trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/SessionWrapperRemoteSession.java
Log:
Detect when the session becomes unreferenced (e.g. because the client dropped
the session or the client died) and close the session.
This closes #123.
Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/SessionWrapperRemoteSession.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/SessionWrapperRemoteSession.java 2008-06-06 06:35:08 UTC (rev 978)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/SessionWrapperRemoteSession.java 2008-06-06 06:39:49 UTC (rev 979)
@@ -32,6 +32,7 @@
import java.io.*;
import java.net.URI;
import java.rmi.*;
+import java.rmi.server.Unreferenced;
import java.util.*;
// Third party packages
@@ -63,7 +64,7 @@
* Software Pty Ltd</A>
* @licence <a href="{@docRoot}/../../LICENCE">Mozilla Public License v1.1</a>
*/
-class SessionWrapperRemoteSession implements RemoteSession {
+class SessionWrapperRemoteSession implements RemoteSession, Unreferenced {
@SuppressWarnings("unused")
/** Logger. */
@@ -484,7 +485,17 @@
}
}
+ public void unreferenced() {
+ if (logger.isDebugEnabled())
+ logger.debug("Closing unreferenced remote session " + session);
+ try {
+ close();
+ } catch (Exception e) {
+ logger.warn("Error closing unreferenced session " + session, e);
+ }
+ }
+
// Construct an exception chain that will pass over RMI.
protected Throwable mapThrowable(Throwable t) {
Throwable cause = t.getCause();
More information about the Mulgara-svn
mailing list