Author: cmueller Date: Mon Feb 28 18:41:22 2011 New Revision: 1075473 URL: http://svn.apache.org/viewvc?rev=1075473&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=1075473&r1=1075472&r2=1075473&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 Mon Feb 28 18:41:22 2011 @@ -192,9 +192,14 @@ public class SmppConsumer extends Defaul private void closeSession(SMPPSession session) { if (session != null) { - session.unbindAndClose(); - // throws the java.util.ConcurrentModificationException - //session.removeSessionStateListener(this.sessionStateListener); + session.removeSessionStateListener(this.sessionStateListener); + // remove this hack after http://code.google.com/p/jsmpp/issues/detail?id=93 is fixed + try { + Thread.sleep(1000); + session.unbindAndClose(); + } catch (Exception e) { + LOG.warn("Could not close session " + session); + } session = null; } } 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=1075473&r1=1075472&r2=1075473&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 Mon Feb 28 18:41:22 2011 @@ -180,9 +180,14 @@ public class SmppProducer extends Defaul private void closeSession(SMPPSession session) { if (session != null) { - session.unbindAndClose(); - // throws the java.util.ConcurrentModificationException - //session.removeSessionStateListener(this.sessionStateListener); + session.removeSessionStateListener(this.sessionStateListener); + // remove this hack after http://code.google.com/p/jsmpp/issues/detail?id=93 is fixed + try { + Thread.sleep(1000); + session.unbindAndClose(); + } catch (Exception e) { + LOG.warn("Could not close session " + session); + } session = null; } }