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 2011/09/21 21:27:18 UTC
svn commit: r1173802 -
/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
Author: cwiklik
Date: Wed Sep 21 19:27:18 2011
New Revision: 1173802
URL: http://svn.apache.org/viewvc?rev=1173802&view=rev
Log:
UIMA-2231 handle InterruptedException while blocking in sendAndReceive
Modified:
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
Modified: uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java?rev=1173802&r1=1173801&r2=1173802&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java Wed Sep 21 19:27:18 2011
@@ -1859,6 +1859,16 @@ public abstract class BaseUIMAAsynchrono
try {
threadMonitor.getMonitor().acquire();
} catch (InterruptedException e) {
+ if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
+ UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, CLASS_NAME.getName(),
+ "sendAndReceiveCAS", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+ "UIMAJMS_client_interrupted_INFO", new Object[] { casReferenceId, aCAS.hashCode()});
+ }
+ // cancel the timer if it is associated with a CAS this thread is waiting for. This would be
+ // the oldest CAS submitted to a queue for processing. The timer will be canceled and restarted
+ // for the second oldest CAS in the outstanding list.
+ serviceDelegate.cancelTimerForCasOrPurge(casReferenceId);
+ throw new ResourceProcessException(e);
}
}
try {
@@ -1905,7 +1915,16 @@ public abstract class BaseUIMAAsynchrono
break; // done here, received a reply or the client is not running
}
} catch (InterruptedException e) {
-
+ if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
+ UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, CLASS_NAME.getName(),
+ "sendAndReceiveCAS", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+ "UIMAJMS_client_interrupted_INFO", new Object[] { casReferenceId, aCAS.hashCode()});
+ }
+ // cancel the timer if it is associated with a CAS this thread is waiting for. This would be
+ // the oldest CAS submitted to a queue for processing. The timer will be canceled and restarted
+ // for the second oldest CAS in the outstanding list.
+ serviceDelegate.cancelTimerForCasOrPurge(casReferenceId);
+ throw new ResourceProcessException(e);
} finally {
threadMonitor.getMonitor().release();
}