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 2014/03/04 21:46:10 UTC
svn commit: r1574193 -
/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jms_adapter/JmsAnalysisEngineServiceStub.java
Author: cwiklik
Date: Tue Mar 4 20:46:10 2014
New Revision: 1574193
URL: http://svn.apache.org/r1574193
Log:
UIMA-3665 Modified to manage lifecycle of shared instance of uima-as client
Modified:
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jms_adapter/JmsAnalysisEngineServiceStub.java
Modified: uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jms_adapter/JmsAnalysisEngineServiceStub.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jms_adapter/JmsAnalysisEngineServiceStub.java?rev=1574193&r1=1574192&r2=1574193&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jms_adapter/JmsAnalysisEngineServiceStub.java (original)
+++ uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jms_adapter/JmsAnalysisEngineServiceStub.java Tue Mar 4 20:46:10 2014
@@ -40,6 +40,7 @@ package org.apache.uima.aae.jms_adapter;
import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.uima.UIMAFramework;
import org.apache.uima.aae.client.UimaAsBaseCallbackListener;
@@ -103,6 +104,8 @@ public class JmsAnalysisEngineServiceStu
@SuppressWarnings("rawtypes")
private static HashMap enginemap = new HashMap();
+ private static AtomicInteger instanceCounter = new AtomicInteger();
+
private UimaAsynchronousEngine uimaEEEngine;
@SuppressWarnings("unchecked")
@@ -115,6 +118,8 @@ public class JmsAnalysisEngineServiceStu
int getMetaTimeout = 0;
int cpcTimeout = 0;
+ instanceCounter.incrementAndGet();
+
String binary_serialization = null;
for (int i = 0; i < parameters.length; i++) {
if (PARAM_BROKER_URL.equalsIgnoreCase(parameters[i].getName())) {
@@ -239,12 +244,19 @@ public class JmsAnalysisEngineServiceStu
* @see org.apache.uima.resource.service.impl.ResourceServiceStub#destroy()
*/
public void destroy() {
- try {
- uimaEEEngine.stop();
+ int howManyInstancesLeft = 0;
+ try {
+ if ( (howManyInstancesLeft = instanceCounter.decrementAndGet()) == 0 ) {
+ uimaEEEngine.stop();
+ }
} catch (Exception e) {
if (UIMAFramework.getLogger().isLoggable(Level.WARNING)) {
UIMAFramework.getLogger().log(Level.WARNING, e.getMessage(), e);
}
+ } finally {
+ if ( howManyInstancesLeft == 0 ) {
+ enginemap.clear();
+ }
}
}