Author: cwiklik
Date: Fri Jun 24 17:02:02 2016
New Revision: 1750136
URL: http://svn.apache.org/viewvc?rev=1750136&view=rev
Log:
UIMA-4989 - synchronized access to service state using Lock instead of
synchronization block
Modified:
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/service/ServiceComponent.java
Modified:
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/service/ServiceComponent.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/service/ServiceComponent.java?rev=1750136&r1=1750135&r2=1750136&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/service/ServiceComponent.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/service/ServiceComponent.java
Fri Jun 24 17:02:02 2016
@@ -24,6 +24,8 @@ import java.util.Properties;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
import org.apache.camel.CamelContext;
import org.apache.uima.ducc.common.component.AbstractDuccComponent;
@@ -49,6 +51,7 @@ public class ServiceComponent extends Ab
protected String dd;
private Object processorInstance = null;
private CountDownLatch exitLatch = new CountDownLatch(1);
+ private Lock stateLock = new ReentrantLock();
public ServiceComponent(String componentName, CamelContext ctx,
ServiceConfiguration jpc) {
@@ -62,7 +65,8 @@ public class ServiceComponent extends Ab
}
public void setState(ProcessState state) {
- synchronized (currentState) {
+ try {
+ stateLock.lock();
if (currentState.name().equals(
ProcessState.FailedInitialization.name())) {
return;
@@ -71,6 +75,8 @@ public class ServiceComponent extends Ab
currentState = state;
agent.notify(currentState,
super.getProcessJmxUrl());
}
+ } finally {
+ stateLock.unlock();
}
}