|
Lines 916-921
Link Here
|
| 916 |
private final void sendMessage( MessageOutputStream out ) |
916 |
private final void sendMessage( MessageOutputStream out ) |
| 917 |
throws IOException |
917 |
throws IOException |
| 918 |
{ |
918 |
{ |
|
|
919 |
boolean releaseWriteLockCalled = false; |
| 919 |
try |
920 |
try |
| 920 |
{ |
921 |
{ |
| 921 |
incPendingWrite (); |
922 |
incPendingWrite (); |
|
Lines 937-943
Link Here
|
| 937 |
try |
938 |
try |
| 938 |
{ |
939 |
{ |
| 939 |
transport.connect (profile, timeout); |
940 |
transport.connect (profile, timeout); |
| 940 |
connect_sync.notifyAll(); |
|
|
| 941 |
} |
941 |
} |
| 942 |
catch (RuntimeException ex) |
942 |
catch (RuntimeException ex) |
| 943 |
{ |
943 |
{ |
|
Lines 950-955
Link Here
|
| 950 |
} |
950 |
} |
| 951 |
throw ex; |
951 |
throw ex; |
| 952 |
} |
952 |
} |
|
|
953 |
finally { |
| 954 |
connect_sync.notifyAll(); |
| 955 |
} |
| 953 |
} |
956 |
} |
| 954 |
|
957 |
|
| 955 |
} |
958 |
} |
|
Lines 988-993
Link Here
|
| 988 |
// concurrently (unfortunately write lock is requested |
991 |
// concurrently (unfortunately write lock is requested |
| 989 |
// during streamClosed()) |
992 |
// during streamClosed()) |
| 990 |
releaseWriteLock(); |
993 |
releaseWriteLock(); |
|
|
994 |
releaseWriteLockCalled = true; |
| 991 |
|
995 |
|
| 992 |
// It makes no sense to use this transport any longer |
996 |
// It makes no sense to use this transport any longer |
| 993 |
// examples: firewall dropped connection silently, |
997 |
// examples: firewall dropped connection silently, |
|
Lines 1001-1007
Link Here
|
| 1001 |
finally |
1005 |
finally |
| 1002 |
{ |
1006 |
{ |
| 1003 |
decPendingWrite(); |
1007 |
decPendingWrite(); |
| 1004 |
releaseWriteLock(); |
1008 |
if (releaseWriteLockCalled == false) { |
|
|
1009 |
releaseWriteLock(); |
| 1010 |
} |
| 1005 |
} |
1011 |
} |
| 1006 |
} |
1012 |
} |
| 1007 |
|
1013 |
|