You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ch...@apache.org on 2013/03/10 16:19:16 UTC
svn commit: r1454863 -
/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java
Author: challngr
Date: Sun Mar 10 15:19:16 2013
New Revision: 1454863
URL: http://svn.apache.org/r1454863
Log:
UIMA-2728
Serialize removal of .meta files so lingering threads don't rewrite it after a
service is deregistered.
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java?rev=1454863&r1=1454862&r2=1454863&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java Sun Mar 10 15:19:16 2013
@@ -289,20 +289,19 @@ public class ServiceSet
}
- void deleteProperties()
+ synchronized void deleteProperties()
{
- // note that we're NOT synchronized - be sure to call this in a context where that's ok
- // we want to avoid synchronizing on file activity in case somethng hangs. which probably
- // hoses us anyway :(
if ( meta_filename != null ) {
File mf = new File(meta_filename);
mf.delete();
}
+ meta_filename = null;
if ( props_filename != null ) {
File pf = new File(props_filename);
pf.delete();
}
+ props_filename = null;
}
void setIncoming(ServiceSet sset)
@@ -530,9 +529,17 @@ public class ServiceSet
return instances;
}
- void saveMetaProperties()
+ synchronized void saveMetaProperties()
{
String methodName = "saveMetaProperties";
+
+ if ( meta_filename == null ) {
+ // if this is null it was deleted and this is some kind of lingering thread updating, that
+ // we don't really want any more
+ logger.warn(methodName, id, "Meta properties is deleted, bypassing attempt to save.");
+ return;
+ }
+
meta_props.put("stopped", ""+stopped);
meta_props.put("service-state", ""+ getServiceState());
meta_props.put("ping-active", "" + (serviceMeta != null));