Program: 89750
Project: 89750
Buggy source:
@Override @DB public boolean start(){
  if (s_logger.isInfoEnabled()) {
    s_logger.info("String_Node_Str" + _id);
  }
  Transaction txn=Transaction.currentTxn();
  try {
    txn.start();
    final Class<?> c=this.getClass();
    String version=c.getPackage().getImplementationVersion();
    ManagementServerHostVO mshost=_mshostDao.findByMsid(_id);
    if (mshost == null) {
      mshost=new ManagementServerHostVO();
      mshost.setMsid(_id);
      mshost.setName(NetUtils.getHostName());
      mshost.setVersion(version);
      mshost.setServiceIP(_clusterNodeIP);
      mshost.setServicePort(_currentServiceAdapter.getServicePort());
      mshost.setLastUpdateTime(DateUtil.currentGMTTime());
      mshost.setRemoved(null);
      mshost.setAlertCount(0);
      _mshostDao.persist(mshost);
      if (s_logger.isInfoEnabled()) {
        s_logger.info("String_Node_Str" + _id + "String_Node_Str");
      }
    }
 else {
      if (s_logger.isInfoEnabled()) {
        s_logger.info("String_Node_Str" + _id + "String_Node_Str");
      }
      _mshostDao.update(mshost.getId(),NetUtils.getHostName(),version,_clusterNodeIP,_currentServiceAdapter.getServicePort(),DateUtil.currentGMTTime());
    }
    txn.commit();
    _mshostId=mshost.getId();
    if (s_logger.isInfoEnabled()) {
      s_logger.info("String_Node_Str" + _mshostId + "String_Node_Str"+ _clusterNodeIP+ "String_Node_Str"+ _currentServiceAdapter.getServicePort());
    }
    _heartbeatScheduler.scheduleAtFixedRate(getHeartbeatTask(),heartbeatInterval,heartbeatInterval,TimeUnit.MILLISECONDS);
    _peerScanScheduler.scheduleAtFixedRate(getPeerScanTask(),heartbeatInterval,heartbeatInterval,TimeUnit.MILLISECONDS);
  }
 catch (  Throwable e) {
    s_logger.error("String_Node_Str",e);
    txn.rollback();
    throw new CloudRuntimeException("String_Node_Str");
  }
  if (s_logger.isInfoEnabled()) {
    s_logger.info("String_Node_Str");
  }
  return true;
}

Fixed version (ground truth):
@Override @DB public boolean start(){
  if (s_logger.isInfoEnabled()) {
    s_logger.info("String_Node_Str" + _msid);
  }
  Transaction txn=Transaction.currentTxn();
  try {
    txn.start();
    final Class<?> c=this.getClass();
    String version=c.getPackage().getImplementationVersion();
    ManagementServerHostVO mshost=_mshostDao.findByMsid(_msid);
    if (mshost == null) {
      mshost=new ManagementServerHostVO();
      mshost.setMsid(_msid);
      mshost.setName(NetUtils.getHostName());
      mshost.setVersion(version);
      mshost.setServiceIP(_clusterNodeIP);
      mshost.setServicePort(_currentServiceAdapter.getServicePort());
      mshost.setLastUpdateTime(DateUtil.currentGMTTime());
      mshost.setRemoved(null);
      mshost.setAlertCount(0);
      _mshostDao.persist(mshost);
      if (s_logger.isInfoEnabled()) {
        s_logger.info("String_Node_Str" + _msid + "String_Node_Str");
      }
    }
 else {
      if (s_logger.isInfoEnabled()) {
        s_logger.info("String_Node_Str" + _msid + "String_Node_Str");
      }
      _mshostDao.update(mshost.getId(),NetUtils.getHostName(),version,_clusterNodeIP,_currentServiceAdapter.getServicePort(),DateUtil.currentGMTTime());
    }
    txn.commit();
    _mshostId=mshost.getId();
    if (s_logger.isInfoEnabled()) {
      s_logger.info("String_Node_Str" + _mshostId + "String_Node_Str"+ _clusterNodeIP+ "String_Node_Str"+ _currentServiceAdapter.getServicePort());
    }
    _heartbeatScheduler.scheduleAtFixedRate(getHeartbeatTask(),heartbeatInterval,heartbeatInterval,TimeUnit.MILLISECONDS);
    _peerScanScheduler.scheduleAtFixedRate(getPeerScanTask(),heartbeatInterval,heartbeatInterval,TimeUnit.MILLISECONDS);
  }
 catch (  Throwable e) {
    s_logger.error("String_Node_Str",e);
    txn.rollback();
    throw new CloudRuntimeException("String_Node_Str");
  }
  if (s_logger.isInfoEnabled()) {
    s_logger.info("String_Node_Str");
  }
  return true;
}