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 2013/03/26 15:10:28 UTC
svn commit: r1461142 -
/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
Author: cwiklik
Date: Tue Mar 26 14:10:27 2013
New Revision: 1461142
URL: http://svn.apache.org/r1461142
Log:
UIMA-2651 Throw exception if unable to deliver ServiceInfo msg to client. Mark CasStateEntry as failed if unable to deliver a CAS to client
Modified:
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
Modified: uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java?rev=1461142&r1=1461141&r2=1461142&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java Tue Mar 26 14:10:27 2013
@@ -53,6 +53,7 @@ import org.apache.uima.aae.controller.Ag
import org.apache.uima.aae.controller.AnalysisEngineController;
import org.apache.uima.aae.controller.BaseAnalysisEngineController;
import org.apache.uima.aae.controller.Endpoint;
+import org.apache.uima.aae.controller.LocalCache.CasStateEntry;
import org.apache.uima.aae.delegate.Delegate;
import org.apache.uima.aae.error.AsynchAEException;
import org.apache.uima.aae.error.DelegateConnectionLostException;
@@ -516,10 +517,11 @@ public class JmsEndpointConnection_impl
public boolean send(final Message aMessage, long msgSize, boolean startTimer, boolean failOnJMSException) {
String destinationName = "";
String target = "Delegate";
-
+ int msgType = 0;
+ int command = 0;
try {
- int msgType = aMessage.getIntProperty(AsynchAEMessage.MessageType);
- int command = aMessage.getIntProperty(AsynchAEMessage.Command);
+ msgType = aMessage.getIntProperty(AsynchAEMessage.MessageType);
+ command = aMessage.getIntProperty(AsynchAEMessage.Command);
boolean newCAS = false;
if ( aMessage.propertyExists(AsynchAEMessage.CasSequence) &&
aMessage.getLongProperty(AsynchAEMessage.CasSequence) > 0 ) {
@@ -613,6 +615,30 @@ public class JmsEndpointConnection_impl
"send", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAJMS_invalid_destination__INFO",
new Object[] { controller.getComponentName(),endpointName });
+ if ( command == AsynchAEMessage.ServiceInfo ) {
+ return false;
+ }
+ if ( (msgType == AsynchAEMessage.Response || msgType == AsynchAEMessage.Request ) &&
+ command == AsynchAEMessage.Process ) {
+ String casReferenceId="";
+ try {
+ casReferenceId = aMessage.getStringProperty(AsynchAEMessage.CasReference);
+ } catch( Exception exx ) {
+ String key = "";
+ String endpointName = "";
+ if ( delegateEndpoint != null ) {
+ delegateEndpoint.getDelegateKey();
+ endpointName = ((ActiveMQDestination) delegateEndpoint.getDestination())
+ .getPhysicalName();
+ }
+ UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, CLASS_NAME.getName(),
+ "send", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
+ "UIMAEE_service_delivery_exception__WARNING",new Object[] { controller.getComponentName(), key, endpointName});
+ }
+ CasStateEntry casStateEntry = controller.getLocalCache().lookupEntry(casReferenceId);
+ // Mark the CAS as failed so that the CAS is released and cache cleaned up
+ casStateEntry.setDeliveryToClientFailed();
+ }
return true; // expect the client can go away at any time. Not an error
}