Author: sergeyb Date: Wed May 6 11:03:32 2009 New Revision: 772143 URL: http://svn.apache.org/viewvc?rev=772143&view=rev Log: CXF-2002 : applying a patch on behalf of Freeman
Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java?rev=772143&r1=772142&r2=772143&view=diff ============================================================================== --- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java (original) +++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSFactory.java Wed May 6 11:03:32 2009 @@ -29,7 +29,6 @@ import javax.naming.NamingException; import org.apache.cxf.common.logging.LogUtils; -import org.springframework.core.task.SimpleAsyncTaskExecutor; import org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.JmsTemplate102; @@ -166,11 +165,8 @@ } if (jmsConfig.getTaskExecutor() != null) { jmsListener.setTaskExecutor(jmsConfig.getTaskExecutor()); - } else { - SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor(); - taskExecutor.setConcurrencyLimit(jmsConfig.getMaxConcurrentTasks()); - jmsListener.setTaskExecutor(taskExecutor); - } + } + if (jmsConfig.isAutoResolveDestination()) { jmsListener.setDestinationName(destinationName); } else { Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java?rev=772143&r1=772142&r2=772143&view=diff ============================================================================== --- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java (original) +++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuation.java Wed May 6 11:03:32 2009 @@ -22,11 +22,9 @@ import java.util.Collection; import java.util.Timer; import java.util.TimerTask; -import java.util.logging.Logger; import org.apache.cxf.Bus; import org.apache.cxf.BusFactory; -import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.continuations.Continuation; import org.apache.cxf.continuations.SuspendedInvocationException; import org.apache.cxf.message.Message; @@ -36,8 +34,7 @@ public class JMSContinuation implements Continuation { - static final String BOGUS_MESSAGE_SELECTOR = "org.apache.cxf.transports.jms.continuations=too-many"; - private static final Logger LOG = LogUtils.getL7dLogger(JMSContinuation.class); + static final String BOGUS_MESSAGE_SELECTOR = "orgApacheCxfTransportsJmsContinuations='too-many'"; private Bus bus; private Message inMessage; @@ -153,28 +150,24 @@ protected void updateContinuations(boolean remove) { - modifyList(remove); - if (jmsConfig.getMaxSuspendedContinuations() < 0 || jmsListener.getCacheLevel() >= DefaultMessageListenerContainer.CACHE_CONSUMER) { + modifyList(remove); return; } // throttle the flow if there're too many continuation instances in memory - if (remove && !BOGUS_MESSAGE_SELECTOR.equals(currentMessageSelector)) { - LOG.fine("A number of continuations has dropped below the limit of " - + jmsConfig.getMaxSuspendedContinuations() - + ", resetting JMS MessageSelector to " + currentMessageSelector); - jmsListener.setMessageSelector(currentMessageSelector); - currentMessageSelector = BOGUS_MESSAGE_SELECTOR; - } else if (!remove && continuations.size() >= jmsConfig.getMaxSuspendedContinuations()) { - currentMessageSelector = jmsListener.getMessageSelector(); - if (!BOGUS_MESSAGE_SELECTOR.equals(currentMessageSelector)) { - LOG.fine("A number of continuations has reached the limit of " - + jmsConfig.getMaxSuspendedContinuations() - + ", setting JMS MessageSelector to " + BOGUS_MESSAGE_SELECTOR); - jmsListener.setMessageSelector(BOGUS_MESSAGE_SELECTOR); - + synchronized (continuations) { + modifyList(remove); + if (remove && !BOGUS_MESSAGE_SELECTOR.equals(currentMessageSelector)) { + jmsListener.setMessageSelector(currentMessageSelector); + currentMessageSelector = BOGUS_MESSAGE_SELECTOR; + } else if (!remove && continuations.size() >= jmsConfig.getMaxSuspendedContinuations()) { + currentMessageSelector = jmsListener.getMessageSelector(); + if (!BOGUS_MESSAGE_SELECTOR.equals(currentMessageSelector)) { + jmsListener.setMessageSelector(BOGUS_MESSAGE_SELECTOR); + + } } }