Author: challngr Date: Tue Feb 12 11:56:15 2013 New Revision: 1445116 URL: http://svn.apache.org/r1445116 Log: UIMA-2658 Insure service id is valid on modify. Insure that running service is not altered if count of services instances is set to 0.
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java?rev=1445116&r1=1445115&r2=1445116&view=diff ============================================================================== --- uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java Tue Feb 12 11:56:15 2013 @@ -930,6 +930,10 @@ public class ServiceHandler String epname = ev.getEndpoint(); String serviceIdString = extractId(friendly, epname); ServiceSet sset = serviceStateHandler.getServiceForApi(friendly, epname); + + if ( sset == null ) { + return new ServiceReplyEvent(ServiceCode.NOTOK, "Unrecognized service ID[" + friendly + "] Endpoint[" + epname + "]", "?", null); + } if ( sset.isRegistered() ) { ApiHandler apih = new ApiHandler(ev, this); @@ -938,7 +942,7 @@ public class ServiceHandler t.start(); return new ServiceReplyEvent(ServiceCode.OK, "Service " + serviceIdString + " modify request accepted.", sset.getKey(), sset.getId()); } else { - return new ServiceReplyEvent(ServiceCode.NOTOK, "Service " + friendly + " is not a registered service.", sset.getKey(), null); + return new ServiceReplyEvent(ServiceCode.NOTOK, "Service " + friendly + " is not a known service.", sset.getKey(), null); } } @@ -956,7 +960,7 @@ public class ServiceHandler sset.setAutostart(autostart.decode()); } - if ( activate ) { + if ( activate && (instances >0) ) { int running = sset.countImplementors(); int diff = instances - running;