You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2017/04/13 16:10:33 UTC
svn commit: r1791271 -
/uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java
Author: burn
Date: Thu Apr 13 16:10:32 2017
New Revision: 1791271
URL: http://svn.apache.org/viewvc?rev=1791271&view=rev
Log:
UIMA-5372 After review made getServicesForApi check the url as before. Also in handleModifiedServices restored handling of an already-removed instance
Modified:
uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java
Modified: uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java?rev=1791271&r1=1791270&r2=1791271&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java Thu Apr 13 16:10:32 2017
@@ -532,8 +532,6 @@ public class ServiceHandler
//
for ( DuccId id : work.keySet() ) {
DuccWorkJob w = (DuccWorkJob) work.get(id);
- String url = w.getServiceEndpoint();
-
IDuccProcessMap pm = w.getProcessMap();
String node = "<unknown>";
Long share_id = -1L;
@@ -549,16 +547,25 @@ public class ServiceHandler
}
}
- if (url == null ) { // probably impossible but lets not chance NPE
- logger.warn(methodName, id, "Missing service endpoint/url, ignoring.");
+ // Use the service id in case the url has been removed while unregistering
+ String ssid = w.getServiceId();
+ if (ssid == null ) { // probably impossible but lets not chance NPE
+ logger.warn(methodName, id, "Missing service id, ignoring.");
continue;
}
ServiceSet sset = serviceStateHandler.getServiceByImplementor(id.getFriendly());
if (sset == null) {
- // leftover junk publication maybe? can't tell
- logger.info(methodName, id, "Update for active service instance", id.toString(), "but have no registration for it. Job state:", w.getJobState());
- continue;
+ // If already removed try via the service id (the url may have been removed while unregistering)
+ long sid = Long.valueOf(ssid);
+ sset = serviceStateHandler.getServiceById(sid);
+ if ( sset == null ) {
+ // leftover junk publication maybe? can't tell
+ logger.info(methodName, id, "Active service instance update for", w.getServiceId(),
+ "but have no registration for it. Job state:", w.getJobState());
+ continue;
+ }
+ logger.info(methodName, id, "Update for possibly unregistered service. Job State:", w.getJobState());
}
if ( !sset.containsImplementor(id) ) {
@@ -1515,7 +1522,7 @@ public class ServiceHandler
// API passes in either an id or an endpoint but not both.
synchronized ServiceSet getServiceForApi(long id, String n)
{
- return id == -1 ? getServiceByUrl(n) : getServiceById(id);
+ return n == null ? getServiceById(id) : getServiceByUrl(n);
}
synchronized void removeService(ServiceSet sset)