You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2017/07/05 20:18:03 UTC
svn commit: r1800945 -
/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java
Author: cwiklik
Date: Wed Jul 5 20:18:02 2017
New Revision: 1800945
URL: http://svn.apache.org/viewvc?rev=1800945&view=rev
Log:
UIMA-5477 Modified to catch a stale session and create a new one along with a new JMS producer
Modified:
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java
Modified: uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java?rev=1800945&r1=1800944&r2=1800945&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java (original)
+++ uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java Wed Jul 5 20:18:02 2017
@@ -24,14 +24,13 @@ import javax.jms.BytesMessage;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
+import javax.jms.IllegalStateException;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
-import org.apache.activemq.ActiveMQMessageProducer;
-import org.apache.activemq.ActiveMQSession;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.uima.UIMAFramework;
import org.apache.uima.aae.UIMAEE_Constants;
@@ -48,7 +47,7 @@ import org.apache.uima.util.Level;
*
*/
public class ActiveMQMessageSender extends BaseMessageSender {
- private static final Class CLASS_NAME = ActiveMQMessageSender.class;
+ private static final Class<?> CLASS_NAME = ActiveMQMessageSender.class;
private volatile Connection connection = null;
@@ -176,20 +175,46 @@ public class ActiveMQMessageSender exten
return producer;
}
- public TextMessage createTextMessage() throws Exception {
- if (session == null) {
- // Force initialization of Producer
- initializeProducer();
- }
- return session.createTextMessage("");
- }
+ public TextMessage createTextMessage() throws Exception {
+ synchronized (ActiveMQMessageSender.class) {
+ if (session == null) {
+ // Force initialization of Producer
+ initializeProducer();
+ }
+ // return session.createTextMessage("");
+ TextMessage msg = null;
+ try {
+ msg = session.createTextMessage("");
+ } catch (IllegalStateException e) {
+ // stale Session
+ session = null;
+ initializeProducer();
+ msg = session.createTextMessage("");
+ }
+ return msg;
+ }
+
+ }
public BytesMessage createBytesMessage() throws Exception {
- if (session == null) {
- // Force initialization of Producer
- initializeProducer();
- }
- return session.createBytesMessage();
+ synchronized (ActiveMQMessageSender.class) {
+ if (session == null) {
+ // Force initialization of Producer
+ initializeProducer();
+ }
+ BytesMessage msg = null;
+ try {
+ msg = session.createBytesMessage();
+ } catch (IllegalStateException e) {
+ // stale Session
+ session = null;
+ initializeProducer();
+ msg = session.createBytesMessage();
+ }
+ return msg;
+ }
+
+ // return session.createBytesMessage();
}
/**