You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ea...@apache.org on 2008/03/12 16:27:14 UTC

svn commit: r636365 - in /incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client: BaseMessageSender.java BaseUIMAAsynchronousEngineCommon_impl.java

Author: eae
Date: Wed Mar 12 08:27:13 2008
New Revision: 636365

URL: http://svn.apache.org/viewvc?rev=636365&view=rev
Log:
UIMA-876 apply patches.

Modified:
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java?rev=636365&r1=636364&r2=636365&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java Wed Mar 12 08:27:13 2008
@@ -200,11 +200,31 @@
 						JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
 						"UIMAJMS_sending_msg_to_endpoint__FINEST",
 						new Object[] { destination });
-				if ( pm.getMessageType() == AsynchAEMessage.Process )
+				
+				if ( pm.containsKey(AsynchAEMessage.CasReference) )
 				{
 					ClientRequest cacheEntry = (ClientRequest)
-						engine.getCache().get(pm.get(AsynchAEMessage.CasReference));
-					cacheEntry.setCASDepartureTime(System.nanoTime());
+					engine.getCache().get(pm.get(AsynchAEMessage.CasReference));
+					if ( cacheEntry != null )
+					{
+						//	Use Process Timeout value for the time-to-live property in the 
+						//	outgoing JMS message. When this time is exceeded
+						//	while the message sits in a queue, the JMS Server will remove it from
+						//	the queue. What happens with the expired message depends on the 
+						//	configuration. Most JMS Providers create a special dead-letter queue
+						//	where all expired messages are placed.
+						long timeoutValue = cacheEntry.getProcessTimeout();
+						if ( timeoutValue > 0 )
+						{
+							message.setJMSExpiration(timeoutValue);
+						}
+						if (  pm.getMessageType() == AsynchAEMessage.Process )
+						{
+							//					ClientRequest cacheEntry = (ClientRequest)
+							//						engine.getCache().get(pm.get(AsynchAEMessage.CasReference));
+							cacheEntry.setCASDepartureTime(System.nanoTime());
+						}
+					}
 				}
 				producer.send(message);
 			} catch (Exception e) {

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java?rev=636365&r1=636364&r2=636365&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java Wed Mar 12 08:27:13 2008
@@ -539,7 +539,7 @@
 			requestToCache.setEndpoint(getEndPointName());
 			requestToCache.setProcessTimeout(processTimeout);
 			requestToCache.setThreadId(Thread.currentThread().getId());
-      requestToCache.clearTimeoutException();
+            requestToCache.clearTimeoutException();
 
 			if (remoteService)
 			{
@@ -1450,7 +1450,10 @@
 		{
 			processTimeout = aTimeout;
 		}
-		
+		public long getProcessTimeout()
+		{
+			return processTimeout;
+		}
 		public void setCpcTimeout( int aTimeout )
 		{
 			cpcTimeout = aTimeout;