Program: 15238
Project: 15238
Buggy source:
@Override public boolean start() throws Exception {
  ServiceBootstrapper.execute(new Predicate<ServiceConfiguration>(){
    @Override public boolean apply(    final ServiceConfiguration config){
      final Component comp=config.lookupComponent();
      try {
        final CheckedListenableFuture<ServiceConfiguration> future=comp.startTransition(config);
        Future<?> runResult=Threads.lookup(ConfigurationService.class,ServiceBootstrapper.class).submit(getTransitionRunnable(config,comp,future));
        try {
          runResult.get(100,TimeUnit.MILLISECONDS);
        }
 catch (        InterruptedException ex) {
          LOG.error(ex,ex);
          Thread.currentThread().interrupt();
        }
        return true;
      }
 catch (      Exception e) {
        LOG.error(e,e);
        return false;
      }
    }
    private Runnable getTransitionRunnable(    final ServiceConfiguration config,    final Component comp,    final CheckedListenableFuture<ServiceConfiguration> future){
      Runnable followRunner=new Runnable(){
        @Override public void run(){
          try {
            future.get();
            try {
              comp.enableTransition(config).get(100,TimeUnit.MILLISECONDS);
            }
 catch (            ServiceRegistrationException ex) {
              LOG.error(ex,ex);
            }
catch (            IllegalStateException ex) {
              LOG.error(ex,ex);
            }
catch (            InterruptedException ex) {
              LOG.error(ex,ex);
            }
catch (            ExecutionException ex) {
              LOG.error(ex,ex);
            }
          }
 catch (          Exception ex) {
            LOG.error(ex,ex);
          }
        }
      }
;
      return followRunner;
    }
  }
);
  return true;
}

Fixed version (ground truth):
@Override public boolean start() throws Exception {
  ServiceBootstrapper.execute(new Predicate<ServiceConfiguration>(){
    @Override public boolean apply(    final ServiceConfiguration config){
      final Component comp=config.lookupComponent();
      try {
        final CheckedListenableFuture<ServiceConfiguration> future=comp.startTransition(config);
        Future<?> runResult=Threads.lookup(ConfigurationService.class,ServiceBootstrapper.class).submit(getTransitionRunnable(config,comp,future));
        try {
          runResult.get(100,TimeUnit.MILLISECONDS);
        }
 catch (        TimeoutException ex) {
          LOG.error(ex);
        }
catch (        InterruptedException ex) {
          LOG.error(ex,ex);
          Thread.currentThread().interrupt();
        }
        return true;
      }
 catch (      Exception e) {
        LOG.error(e,e);
        return false;
      }
    }
    private Runnable getTransitionRunnable(    final ServiceConfiguration config,    final Component comp,    final CheckedListenableFuture<ServiceConfiguration> future){
      Runnable followRunner=new Runnable(){
        @Override public void run(){
          try {
            future.get();
            try {
              comp.enableTransition(config).get(100,TimeUnit.MILLISECONDS);
            }
 catch (            ServiceRegistrationException ex) {
              LOG.error(ex,ex);
            }
catch (            IllegalStateException ex) {
              LOG.error(ex,ex);
            }
catch (            InterruptedException ex) {
              LOG.error(ex,ex);
            }
catch (            ExecutionException ex) {
              LOG.error(ex,ex);
            }
catch (            TimeoutException ex) {
              LOG.error(ex,ex);
            }
          }
 catch (          Exception ex) {
            LOG.error(ex,ex);
          }
        }
      }
;
      return followRunner;
    }
  }
);
  return true;
}