summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Direct.java
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2003-02-06 16:42:21 +0000
committerMarc Laukien <marc@zeroc.com>2003-02-06 16:42:21 +0000
commit3eb50209f95f232c7670d246ac2c72a563c58908 (patch)
tree692e609d8446fd132a3af8cf996b180db3d617fb /java/src/IceInternal/Direct.java
parentfix (diff)
downloadice-3eb50209f95f232c7670d246ac2c72a563c58908.tar.bz2
ice-3eb50209f95f232c7670d246ac2c72a563c58908.tar.xz
ice-3eb50209f95f232c7670d246ac2c72a563c58908.zip
fix
Diffstat (limited to 'java/src/IceInternal/Direct.java')
-rw-r--r--java/src/IceInternal/Direct.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/java/src/IceInternal/Direct.java b/java/src/IceInternal/Direct.java
index 333d44c36aa..d61a6187ac5 100644
--- a/java/src/IceInternal/Direct.java
+++ b/java/src/IceInternal/Direct.java
@@ -24,11 +24,18 @@ public final class Direct
Ice.ObjectAdapterI adapter = (Ice.ObjectAdapterI)_current.adapter;
assert(adapter != null);
+ //
+ // Must call incDirectCount() first, because it checks for
+ // adapter deactivation, and prevents deactivation completion
+ // until decDirectCount() is called. This is important,
+ // because getServantManager() may not be called afer
+ // deactivation completion.
+ //
+ adapter.incDirectCount();
+
ServantManager servantManager = adapter.getServantManager();
assert(servantManager != null);
- adapter.incDirectCount();
-
try
{
_servant = servantManager.findServant(_current.id);