summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Outgoing.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/Outgoing.java')
-rw-r--r--java/src/IceInternal/Outgoing.java24
1 files changed, 11 insertions, 13 deletions
diff --git a/java/src/IceInternal/Outgoing.java b/java/src/IceInternal/Outgoing.java
index 9fb47f07e54..2f373e46323 100644
--- a/java/src/IceInternal/Outgoing.java
+++ b/java/src/IceInternal/Outgoing.java
@@ -49,7 +49,7 @@ public final class Outgoing
}
else
{
- _os.writeString(_reference.identity);
+ _reference.identity.__write(_os);
_os.writeString(_reference.facet);
}
_os.writeString(operation);
@@ -123,9 +123,9 @@ public final class Outgoing
wait(timeout);
if (_state == StateInProgress)
{
+ timedOut = true;
_state = StateLocalException;
_exception = new Ice.TimeoutException();
- timedOut = true;
}
}
else
@@ -139,17 +139,17 @@ public final class Outgoing
}
}
- if (_exception != null)
+ if (timedOut)
{
- if (timedOut)
- {
- //
- // Must be called outside the synchronization of
- // this object
- //
- _emitter.exception(_exception);
- }
+ //
+ // Must be called outside the synchronization of
+ // this object
+ //
+ _emitter.exception(_exception);
+ }
+ if (_exception != null)
+ {
//
// A CloseConnectionException indicates graceful
// server shutdown, and is therefore always repeatable
@@ -217,7 +217,6 @@ public final class Outgoing
public synchronized void
finished(BasicStream is)
{
- assert(_state != StateUnsent);
if (_state == StateInProgress)
{
_is.swap(is);
@@ -310,7 +309,6 @@ public final class Outgoing
public synchronized void
finished(Ice.LocalException ex)
{
- assert(_state != StateUnsent);
if (_state == StateInProgress)
{
_state = StateLocalException;