diff options
author | Marc Laukien <marc@zeroc.com> | 2003-02-06 16:42:21 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2003-02-06 16:42:21 +0000 |
commit | 3eb50209f95f232c7670d246ac2c72a563c58908 (patch) | |
tree | 692e609d8446fd132a3af8cf996b180db3d617fb /java/src | |
parent | fix (diff) | |
download | ice-3eb50209f95f232c7670d246ac2c72a563c58908.tar.bz2 ice-3eb50209f95f232c7670d246ac2c72a563c58908.tar.xz ice-3eb50209f95f232c7670d246ac2c72a563c58908.zip |
fix
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/IceInternal/Direct.java | 11 | ||||
-rw-r--r-- | java/src/IceInternal/Reference.java | 8 |
2 files changed, 15 insertions, 4 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); diff --git a/java/src/IceInternal/Reference.java b/java/src/IceInternal/Reference.java index 1a7dab15595..164571d6a84 100644 --- a/java/src/IceInternal/Reference.java +++ b/java/src/IceInternal/Reference.java @@ -248,8 +248,12 @@ public final class Reference for(int i = 0; i < endpoints.length; i++) { - s.append(':'); - s.append(endpoints[i].toString()); + String endp = endpoints[i].toString(); + if(endp != null && endp.length() > 0) + { + s.append(':'); + s.append(endp); + } } } else |