Program: 6928
Project: 6928
Buggy source:
public void login(final String email,final String password) throws IOException, SerializationException {
  if (!started) {
    startupLock.lock();
    try {
      try {
        log.debug("String_Node_Str");
        startupCondition.await();
      }
 catch (      InterruptedException e) {
        return;
      }
    }
  finally {
      startupLock.unlock();
    }
  }
  MetadataServerConfig msc=new MetadataServerConfig(rbnb.getConfig().getMetadataServerUrl());
  log.info("String_Node_Str" + email);
  try {
    UserMsg.Builder ub=UserMsg.newBuilder();
    SerializationManager sm=rbnb.getSerializationManager();
    sm.setCreds(email,password);
    sm.getObjectFromUrl(ub,msc.getUserUrl(email));
    User tryUser=new User(ub.build());
    tryUser.setPassword(password);
    rbnb.getConfig().setMetadataServerUsername(email);
    rbnb.getConfig().setMetadataServerPassword(password);
    rbnb.saveConfig();
    usersByEmail.clear();
    usersById.clear();
    playlists.clear();
    myPlaylistIdsByTitle.clear();
    usersByEmail.put(email,tryUser);
    usersById.put(tryUser.getUserId(),tryUser);
    this.msc=msc;
    me=tryUser;
    log.info("String_Node_Str" + email + "String_Node_Str");
    rbnb.getExecutor().execute(new CatchingRunnable(){
      public void doRun() throws Exception {
        rbnb.getEventService().fireLoggedIn();
synchronized (UserService.this) {
          usersByEmail.put(me.getEmail(),me);
          usersById.put(me.getUserId(),me);
        }
        rbnb.getEventService().fireUserChanged(me);
        rbnb.getTaskService().runTask(new InitialFetchTask());
      }
    }
);
    if (rbnb.getMina() != null & rbnb.getMina().isConnectedToSupernode()) {
      rbnb.setStatus(RobonoboStatus.Connected);
      rbnb.getEventService().fireStatusChanged();
    }
  }
 catch (  IOException e) {
    log.error("String_Node_Str",e);
    throw e;
  }
catch (  SerializationException e) {
    log.error("String_Node_Str",e);
    throw e;
  }
}

Fixed version (ground truth):
public void login(final String email,final String password) throws IOException, SerializationException {
  if (!started) {
    startupLock.lock();
    try {
      try {
        log.debug("String_Node_Str");
        startupCondition.await();
      }
 catch (      InterruptedException e) {
        return;
      }
    }
  finally {
      startupLock.unlock();
    }
  }
  MetadataServerConfig msc=new MetadataServerConfig(rbnb.getConfig().getMetadataServerUrl());
  log.info("String_Node_Str" + email);
  try {
    UserMsg.Builder ub=UserMsg.newBuilder();
    SerializationManager sm=rbnb.getSerializationManager();
    sm.setCreds(email,password);
    sm.getObjectFromUrl(ub,msc.getUserUrl(email));
    User tryUser=new User(ub.build());
    tryUser.setPassword(password);
    rbnb.getConfig().setMetadataServerUsername(email);
    rbnb.getConfig().setMetadataServerPassword(password);
    rbnb.saveConfig();
    usersByEmail.clear();
    usersById.clear();
    playlists.clear();
    myPlaylistIdsByTitle.clear();
    usersByEmail.put(email,tryUser);
    usersById.put(tryUser.getUserId(),tryUser);
    this.msc=msc;
    me=tryUser;
    log.info("String_Node_Str" + email + "String_Node_Str");
    rbnb.getExecutor().execute(new CatchingRunnable(){
      public void doRun() throws Exception {
        rbnb.getEventService().fireLoggedIn();
synchronized (UserService.this) {
          usersByEmail.put(me.getEmail(),me);
          usersById.put(me.getUserId(),me);
        }
        rbnb.getEventService().fireUserChanged(me);
        rbnb.getTaskService().runTask(new InitialFetchTask());
      }
    }
);
    if (rbnb.getMina() != null && rbnb.getMina().isConnectedToSupernode()) {
      rbnb.setStatus(RobonoboStatus.Connected);
      rbnb.getEventService().fireStatusChanged();
    }
  }
 catch (  IOException e) {
    log.error("String_Node_Str",e);
    throw e;
  }
catch (  SerializationException e) {
    log.error("String_Node_Str",e);
    throw e;
  }
}