stapfen 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module Stapfen
2
- VERSION = '1.4.0'
2
+ VERSION = '1.4.1'
3
3
  end
@@ -106,12 +106,16 @@ module Stapfen
106
106
  end
107
107
 
108
108
  begin
109
- # Performing this join/open loop to make sure that we don't
109
+ # Performing this join/runningloop to make sure that we don't
110
110
  # experience potential deadlocks between signal handlers who might
111
111
  # close the connection, and an infinite Client#join call
112
- while client.open? do
112
+ #
113
+ # Instead of using client#open? we use #running which will still be
114
+ # true even if the client is currently in an exponential reconnect loop
115
+ while client.running do
113
116
  client.join(1)
114
117
  end
118
+ warn("Exiting the runloop for #{self}")
115
119
  rescue Interrupt
116
120
  exit_cleanly
117
121
  end
@@ -122,7 +126,8 @@ module Stapfen
122
126
  def exit_cleanly
123
127
  self.class.destructor.call if self.class.destructor
124
128
 
125
- unless client.closed?
129
+ # Only close the client if we have one sitting around
130
+ if client && !client.closed?
126
131
  client.close
127
132
  end
128
133
  end
data/spec/worker_spec.rb CHANGED
@@ -54,7 +54,7 @@ describe Stapfen::Worker do
54
54
  end
55
55
 
56
56
  context 'unreceive behavior' do
57
- let(:client) { mock('Stomp::Client', :open? => false) }
57
+ let(:client) { double('Stomp::Client', :running => false) }
58
58
  let(:name) { '/queue/some_queue' }
59
59
  before :each do
60
60
  Stomp::Client.stub(:new).and_return(client)
@@ -130,6 +130,18 @@ describe Stapfen::Worker do
130
130
  client.should_receive(:close)
131
131
  worker.exit_cleanly
132
132
  end
133
+
134
+ context 'with out having connected a client yet' do
135
+ before :each do
136
+ worker.stub(:client).and_return(nil)
137
+ end
138
+
139
+ it 'should not raise any errors' do
140
+ expect {
141
+ worker.exit_cleanly
142
+ }.not_to raise_error
143
+ end
144
+ end
133
145
  end
134
146
  end
135
147
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stapfen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -63,7 +63,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
63
  version: '0'
64
64
  segments:
65
65
  - 0
66
- hash: -2279092950717578506
66
+ hash: -1743593967546898414
67
67
  required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  none: false
69
69
  requirements:
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  segments:
74
74
  - 0
75
- hash: -2279092950717578506
75
+ hash: -1743593967546898414
76
76
  requirements: []
77
77
  rubyforge_project:
78
78
  rubygems_version: 1.8.25