diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/src/main/java/Ice/ConnectionI.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/java/src/Ice/src/main/java/Ice/ConnectionI.java b/java/src/Ice/src/main/java/Ice/ConnectionI.java index 9cc6722421c..a5034133193 100644 --- a/java/src/Ice/src/main/java/Ice/ConnectionI.java +++ b/java/src/Ice/src/main/java/Ice/ConnectionI.java @@ -2672,21 +2672,23 @@ public final class ConnectionI extends IceInternal.EventHandler private ConnectionInfo initConnectionInfo() { - if(_info != null) + if(_state > StateNotInitialized && _info != null) // Update the connection information until it's initialized { return _info; } - ConnectionInfo info = _transceiver.getInfo(); - info.connectionId = _endpoint.connectionId(); - info.adapterName = _adapter != null ? _adapter.getName() : ""; - info.incoming = _connector == null; - if(_state > StateNotInitialized) + try + { + _info = _transceiver.getInfo(); + } + catch(Ice.LocalException ex) { - _info = info; // Cache the connection information only if - // initialized. + _info = new ConnectionInfo(); } - return info; + _info.connectionId = _endpoint.connectionId(); + _info.adapterName = _adapter != null ? _adapter.getName() : ""; + _info.incoming = _connector == null; + return _info; } private Ice.Instrumentation.ConnectionState toConnectionState(int state) |