diff options
Diffstat (limited to 'src/net/java')
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/jabber/CallGTalkImpl.java | 19 | ||||
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java | 19 |
2 files changed, 34 insertions, 4 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/CallGTalkImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/CallGTalkImpl.java index 6d9cdb4..a7995fe 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/CallGTalkImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/CallGTalkImpl.java @@ -214,8 +214,23 @@ public class CallGTalkImpl //STUN/TURN addresses in initiateSession() which would take a while. callPeer.setState(CallPeerState.CONNECTING); - callPeer.initiateSession(sessionInitiateExtensions); + // if initializing session fails, set peer to failed + boolean sessionInitiated = false; + try + { - return callPeer; + callPeer.initiateSession(sessionInitiateExtensions); + sessionInitiated = true; + + return callPeer; + } + finally + { + // if initialization throws an exception + if(!sessionInitiated) + { + callPeer.setState(CallPeerState.FAILED); + } + } } } diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java index 66ec67b..d1a4cc6 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/CallJabberImpl.java @@ -305,9 +305,24 @@ public class CallJabberImpl //STUN/TURN addresses in initiateSession() which would take a while. callPeer.setState(CallPeerState.CONNECTING); - callPeer.initiateSession(sessionInitiateExtensions); + // if initializing session fails, set peer to failed + boolean sessionInitiated = false; + try + { - return callPeer; + callPeer.initiateSession(sessionInitiateExtensions); + sessionInitiated = true; + + return callPeer; + } + finally + { + // if initialization throws an exception + if(!sessionInitiated) + { + callPeer.setState(CallPeerState.FAILED); + } + } } /** |