@GET
 @Path("/release/{process}/{token}")
 public void release(@PathParam("process") String processName, @PathParam("token") String token) {
   UUID tokenUuid;
   try {
     tokenUuid = UUID.fromString(token);
   } catch (Exception e) {
     final String errMsg = "[" + token + "] doesn't seem a valid UUID";
     throw new SynchronizerServiceException(SynchronizerServiceException.Status.ERROR, errMsg);
   }
   LoggableSynchronizer synchronizer = instanceManager.getSynchronizer();
   try {
     synchronizer.release(processName, tokenUuid);
   } catch (AlreadyReleasedSynchronizerException e) {
     throw new SynchronizerServiceException(
         SynchronizerServiceException.Status.RELEASED, e.getMessage());
   } catch (ReleaseNotPermittedSynchronizerException e) {
     throw new SynchronizerServiceException(
         SynchronizerServiceException.Status.WAIT, e.getMessage());
   } catch (WrongTurnSynchronizerException e) {
     throw new SynchronizerServiceException(
         SynchronizerServiceException.Status.WAIT, e.getMessage());
   } catch (SynchronizerException e) {
     throw new SynchronizerServiceException(
         SynchronizerServiceException.Status.ERROR, e.getMessage());
   }
   throw new SynchronizerServiceException(
       SynchronizerServiceException.Status.OK, "[" + processName + "] releases");
 }
 @GET
 @Path("/status")
 public Status getStatus() {
   LoggableSynchronizer synchronizer = instanceManager.getSynchronizer();
   try {
     return synchronizer.getStatus();
   } catch (SynchronizerException e) {
     throw new SynchronizerServiceException(
         SynchronizerServiceException.Status.ERROR, e.getMessage());
   }
 }
 @GET
 @Path("/token/{process}")
 public UUID getToken(@PathParam("process") String processName) {
   LoggableSynchronizer synchronizer = instanceManager.getSynchronizer();
   try {
     return synchronizer.getToken(processName);
   } catch (SynchronizerException e) {
     throw new SynchronizerServiceException(
         SynchronizerServiceException.Status.ERROR, e.getMessage());
   }
 }
 @GET
 @Path("/latest")
 public Action latest() {
   LoggableSynchronizer synchronizer = instanceManager.getSynchronizer();
   try {
     return synchronizer.getLogger().getLatest();
   } catch (LoggerException e) {
     throw new SynchronizerServiceException(
         SynchronizerServiceException.Status.ERROR, e.getMessage());
   }
 }