Skip to content
This repository has been archived by the owner on Feb 25, 2024. It is now read-only.

Commit

Permalink
Application 3.0.1, MainForm 4.1.1: исправление возможной ошибки, связ…
Browse files Browse the repository at this point in the history
…анной с непоявлением уведомления об отклонении соединения и последующей "невключением" полей об удалённом пользователе.
  • Loading branch information
M-Sh-97 committed Jan 7, 2016
1 parent ade3e93 commit 1474419
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
3 changes: 1 addition & 2 deletions src/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -310,14 +310,13 @@ public void acceptIncomingCall() {
public void rejectIncomingCall() {
try {
incomingConnection.reject();
closeConnection();
} catch (IOException e) {
e.printStackTrace();
}
}

public void finishCall() {
if ((outcomingConnection != null) && (outcomingConnection.isConnected()))
if (outcomingConnection.isConnected())
try {
outcomingConnection.disconnect();
} catch (IOException e) {
Expand Down
7 changes: 7 additions & 0 deletions src/MainForm.java
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,9 @@ public void actionPerformed(ActionEvent e) {
public void actionPerformed(ActionEvent e) {
blockDialogComponents(true);
logicModel.finishCall();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {}
logicModel.closeConnection();
blockRemoteUserInfo(false);
}
Expand Down Expand Up @@ -253,6 +256,10 @@ public void showIncomingCallDialog(String nick, String IP) {
blockDialogComponents(false);
} else {
logicModel.rejectIncomingCall();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {}
logicModel.closeConnection();
}
}

Expand Down

1 comment on commit 1474419

@M61Shaforostov
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

При отладке программы происходило следующее: после попытки соединения с самим собой и выбора "Отклонить" в окне уведомления о входящем подключении (как адресата), что точно приводило к отправке "REJECT" и закрытии соединения (MainForm.showIncomingCallDialog(), Application.rejectIncomingCall()), прослушка исходящая (Application.outcomingConnectionObserver.update(...)) не получала (не успевала, что ли, получить) соответствующую команду.
Когда была поставлена точка остановки после вызова Connection.reject() и перед вызовами CommandListenerThread.stop() (в них содержится Connection.close()), ошибка не наблюдалась ввиду такой задержки закрытия соединения со стороны условного адресата.
На всякий случай подстраховал отправку-приём "DISCONNECT", хотя с этим такая проблема не обнаруживалась.

Please sign in to comment.