Program: 21169
Project: 21169
Buggy source:
static UserInfo createFromIdTokenClaims(final JWTClaimsSet claims) throws java.text.ParseException {
  if (claims == null || claims.getClaims().size() == 0) {
    return null;
  }
  String uniqueId=null;
  String displayableId=null;
  if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_OBJECT_ID))) {
    uniqueId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_OBJECT_ID);
  }
 else   if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_SUBJECT))) {
    uniqueId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_SUBJECT);
  }
  if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_UPN))) {
    displayableId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_UPN);
  }
 else   if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_EMAIL))) {
    displayableId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_EMAIL);
  }
  final UserInfo userInfo=new UserInfo();
  userInfo.uniqueId=uniqueId;
  userInfo.displayableId=displayableId;
  userInfo.familyName=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_FAMILY_NAME);
  userInfo.givenName=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_GIVEN_NAME);
  userInfo.identityProvider=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_IDENTITY_PROVIDER);
  if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_CHANGE_URL))) {
    userInfo.passwordChangeUrl=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_CHANGE_URL);
  }
  if (claims.getClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_EXPIRES_ON) != null) {
    int claimExpiry=Integer.valueOf((String)claims.getClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_EXPIRES_ON));
    if (claimExpiry > 0) {
      Calendar expires=new GregorianCalendar();
      expires.add(Calendar.SECOND,claimExpiry);
      userInfo.passwordExpiresOn=expires.getTime();
    }
  }
  return userInfo;
}

Fixed version (ground truth):
static UserInfo createFromIdTokenClaims(final JWTClaimsSet claims) throws java.text.ParseException {
  if (claims == null || claims.getClaims().size() == 0) {
    return null;
  }
  String uniqueId=null;
  String displayableId=null;
  if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_OBJECT_ID))) {
    uniqueId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_OBJECT_ID);
  }
 else   if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_SUBJECT))) {
    uniqueId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_SUBJECT);
  }
  if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_UPN))) {
    displayableId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_UPN);
  }
 else   if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_EMAIL))) {
    displayableId=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_EMAIL);
  }
  final UserInfo userInfo=new UserInfo();
  userInfo.uniqueId=uniqueId;
  userInfo.displayableId=displayableId;
  userInfo.familyName=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_FAMILY_NAME);
  userInfo.givenName=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_GIVEN_NAME);
  userInfo.identityProvider=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_IDENTITY_PROVIDER);
  if (!StringHelper.isBlank(claims.getStringClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_CHANGE_URL))) {
    userInfo.passwordChangeUrl=claims.getStringClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_CHANGE_URL);
  }
  if (claims.getClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_EXPIRES_ON) != null) {
    int claimExpiry=Integer.parseInt((String)claims.getClaim(AuthenticationConstants.ID_TOKEN_PASSWORD_EXPIRES_ON));
    if (claimExpiry > 0) {
      Calendar expires=new GregorianCalendar();
      expires.add(Calendar.SECOND,claimExpiry);
      userInfo.passwordExpiresOn=expires.getTime();
    }
  }
  return userInfo;
}