@SuppressWarnings("incomplete-switch")
 private void restart() {
   switch (state.get()) {
     case STARTING:
       Trace.debug(
           "Returning early from restart.  Already starting for project {0} and kind {1}",
           project.getName(), kind);
     case DISCONNECTED:
       Trace.debug(
           "Endpoint disconnected and skipping restart for project {0} and kind {1}",
           project.getName(), kind);
       return;
   }
   try {
     // TODO enhance fix to only check project once
     conn.refresh(project);
     Trace.debug(
         "WatchManager Rescheduling watch job for project {0} and kind {1}",
         project.getName(), kind);
     startWatch(project, backoff, lastConnect, this);
   } catch (Exception e) {
     Trace.debug(
         "WatchManager Unable to rescheduling watch job for project {0} and kind {1}",
         e, project.getName(), kind);
     stopWatch(project, conn);
   }
 }