You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2011/02/15 19:47:11 UTC
svn commit: r1071012 - in
/camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp:
SmppConsumer.java SmppProducer.java
Author: cmueller
Date: Tue Feb 15 18:47:11 2011
New Revision: 1071012
URL: http://svn.apache.org/viewvc?rev=1071012&view=rev
Log:
CAMEL-3650: SMSC initiated unbind spawns exponential amounts of reconnect threads
Modified:
camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
Modified: camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java?rev=1071012&r1=1071011&r2=1071012&view=diff
==============================================================================
--- camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java (original)
+++ camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java Tue Feb 15 18:47:11 2011
@@ -200,10 +200,9 @@ public class SmppConsumer extends Defaul
private void reconnect(final long initialReconnectDelay) {
if (reconnectLock.tryLock()) {
- new Thread() {
- @Override
- public void run() {
- try {
+ try {
+ Runnable r = new Runnable() {
+ public void run() {
boolean reconnected = false;
LOG.info("Schedule reconnect after " + initialReconnectDelay + " millis");
@@ -231,11 +230,17 @@ public class SmppConsumer extends Defaul
if (reconnected) {
LOG.info("Reconnected to " + getEndpoint().getConnectionString());
}
- } finally {
- reconnectLock.unlock();
}
- }
- }.start();
+ };
+
+ Thread t = new Thread(r);
+ t.start();
+ t.join();
+ } catch (InterruptedException e) {
+ // noop
+ } finally {
+ reconnectLock.unlock();
+ }
}
}
Modified: camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java?rev=1071012&r1=1071011&r2=1071012&view=diff
==============================================================================
--- camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java (original)
+++ camel/trunk/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java Tue Feb 15 18:47:11 2011
@@ -188,10 +188,11 @@ public class SmppProducer extends Defaul
private void reconnect(final long initialReconnectDelay) {
if (reconnectLock.tryLock()) {
- new Thread() {
- @Override
- public void run() {
- try {
+ try {
+ Runnable r = new Runnable() {
+ public void run() {
+ boolean reconnected = false;
+
LOG.info("Schedule reconnect after " + initialReconnectDelay + " millis");
try {
Thread.sleep(initialReconnectDelay);
@@ -203,6 +204,7 @@ public class SmppProducer extends Defaul
try {
LOG.info("Trying to reconnect to " + getEndpoint().getConnectionString() + " - attempt #" + (++attempt) + "...");
session = createSession();
+ reconnected = true;
} catch (IOException e) {
LOG.info("Failed to reconnect to " + getEndpoint().getConnectionString());
closeSession(session);
@@ -212,12 +214,21 @@ public class SmppProducer extends Defaul
}
}
}
- LOG.info("Reconnected to " + getEndpoint().getConnectionString());
- } finally {
- reconnectLock.unlock();
+
+ if (reconnected) {
+ LOG.info("Reconnected to " + getEndpoint().getConnectionString());
+ }
}
- }
- }.start();
+ };
+
+ Thread t = new Thread(r);
+ t.start();
+ t.join();
+ } catch (InterruptedException e) {
+ // noop
+ } finally {
+ reconnectLock.unlock();
+ }
}
}