Commit c5f5efb12c3c11cdd08761a7c86069701efba0e9
Exists in
master
and in
1 other branch
Merge pull request #797 from felixbuenemann/fix-gtalk-keepalive-thread-leak
Fix GtalkService Keeaplive-Thread leak
Showing
2 changed files
with
7 additions
and
0 deletions
Show diff stats
app/models/notification_services/gtalk_service.rb
... | ... | @@ -53,6 +53,8 @@ class NotificationServices::GtalkService < NotificationService |
53 | 53 | # post the issue to the xmpp room(s) |
54 | 54 | send_to_users(client, message) unless user_id.blank? |
55 | 55 | send_to_muc(client, message) unless room_id.blank? |
56 | + ensure | |
57 | + client.close unless client.nil? | |
56 | 58 | end |
57 | 59 | |
58 | 60 | private | ... | ... |
spec/models/notification_service/gtalk_service_spec.rb
... | ... | @@ -28,6 +28,7 @@ describe NotificationService::GtalkService do |
28 | 28 | |
29 | 29 | #assert |
30 | 30 | expect(gtalk).to receive(:send).exactly(2).times.with(message) |
31 | + expect(gtalk).to receive(:close) | |
31 | 32 | |
32 | 33 | notification_service.create_notification(problem) |
33 | 34 | end |
... | ... | @@ -57,6 +58,7 @@ describe NotificationService::GtalkService do |
57 | 58 | expect(Jabber::Message).to receive(:new).with("fourth@domain.org", @error_msg) |
58 | 59 | expect(Jabber::MUC::SimpleMUCClient).to_not receive(:new) |
59 | 60 | expect(@gtalk).to receive(:send).exactly(4).times |
61 | + expect(@gtalk).to receive(:close) | |
60 | 62 | |
61 | 63 | @notification_service.user_id = "first@domain.org,second@domain.org, third@domain.org , fourth@domain.org " |
62 | 64 | @notification_service.room_id = "" |
... | ... | @@ -69,6 +71,7 @@ describe NotificationService::GtalkService do |
69 | 71 | expect(Jabber::Message).to receive(:new).with("fourth@domain.org", @error_msg) |
70 | 72 | expect(Jabber::MUC::SimpleMUCClient).to_not receive(:new) |
71 | 73 | expect(@gtalk).to receive(:send).exactly(4).times |
74 | + expect(@gtalk).to receive(:close) | |
72 | 75 | |
73 | 76 | @notification_service.user_id = "first@domain.org;second@domain.org; third@domain.org ; fourth@domain.org " |
74 | 77 | @notification_service.room_id = "" |
... | ... | @@ -81,6 +84,7 @@ describe NotificationService::GtalkService do |
81 | 84 | expect(Jabber::Message).to receive(:new).with("fourth@domain.org", @error_msg) |
82 | 85 | expect(Jabber::MUC::SimpleMUCClient).to_not receive(:new) |
83 | 86 | expect(@gtalk).to receive(:send).exactly(4).times |
87 | + expect(@gtalk).to receive(:close) | |
84 | 88 | |
85 | 89 | @notification_service.user_id = "first@domain.org second@domain.org third@domain.org fourth@domain.org " |
86 | 90 | @notification_service.room_id = "" |
... | ... | @@ -117,6 +121,7 @@ describe NotificationService::GtalkService do |
117 | 121 | |
118 | 122 | #assert |
119 | 123 | expect(gtalk).to receive(:send).with(message) |
124 | + expect(gtalk).to receive(:close) | |
120 | 125 | |
121 | 126 | notification_service.create_notification(problem) |
122 | 127 | end | ... | ... |