Program: 147509
Project: 147509
Buggy source:
/** 
 * This method allows to create a new requirement.
 * @param requirement requirement as a JSON object
 * @return Response with the created requirement as a JSON object.
 */
@POST @Path("String_Node_Str") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value="String_Node_Str") @ApiResponses(value={@ApiResponse(code=HttpURLConnection.HTTP_CREATED,message="String_Node_Str"),@ApiResponse(code=HttpURLConnection.HTTP_UNAUTHORIZED,message="String_Node_Str"),@ApiResponse(code=HttpURLConnection.HTTP_NOT_FOUND,message="String_Node_Str"),@ApiResponse(code=HttpURLConnection.HTTP_INTERNAL_ERROR,message="String_Node_Str")}) public HttpResponse createRequirement(@ApiParam(value="String_Node_Str",required=true) String requirement){
  DALFacade dalFacade=null;
  try {
    long userId=((UserAgent)getActiveAgent()).getId();
    String registratorErrors=bazaarService.notifyRegistrators(EnumSet.of(BazaarFunction.VALIDATION,BazaarFunction.USER_FIRST_LOGIN_HANDLING));
    if (registratorErrors != null) {
      ExceptionHandler.getInstance().throwException(ExceptionLocation.BAZAARSERVICE,ErrorCode.UNKNOWN,registratorErrors);
    }
    dalFacade=bazaarService.createConnection();
    Gson gson=new Gson();
    Requirement requirementToCreate=gson.fromJson(requirement,Requirement.class);
    Integer internalUserId=dalFacade.getUserIdByLAS2PeerId(userId);
    requirementToCreate.setCreatorId(internalUserId);
    if (requirementToCreate.getLeadDeveloperId() == 0) {
      requirementToCreate.setLeadDeveloperId(1);
    }
    Vtor vtor=bazaarService.getValidators();
    vtor.useProfiles("String_Node_Str");
    vtor.validate(requirementToCreate);
    if (vtor.hasViolations()) {
      ExceptionHandler.getInstance().handleViolations(vtor.getViolations());
    }
    vtor.resetProfiles();
    for (    Component component : requirementToCreate.getComponents()) {
      component=dalFacade.getComponentById(component.getId());
      if (requirementToCreate.getProjectId() != component.getProjectId()) {
        ExceptionHandler.getInstance().throwException(ExceptionLocation.BAZAARSERVICE,ErrorCode.VALIDATION,"String_Node_Str");
      }
    }
    boolean authorized=new AuthorizationManager().isAuthorized(internalUserId,PrivilegeEnum.Create_REQUIREMENT,String.valueOf(requirementToCreate.getProjectId()),dalFacade);
    if (!authorized) {
      ExceptionHandler.getInstance().throwException(ExceptionLocation.BAZAARSERVICE,ErrorCode.AUTHORIZATION,Localization.getInstance().getResourceBundle().getString("String_Node_Str"));
    }
    Requirement createdRequirement=dalFacade.createRequirement(requirementToCreate,internalUserId);
    return new HttpResponse(gson.toJson(createdRequirement),HttpURLConnection.HTTP_CREATED);
  }
 catch (  BazaarException bex) {
    if (bex.getErrorCode() == ErrorCode.AUTHORIZATION) {
      return new HttpResponse(ExceptionHandler.getInstance().toJSON(bex),HttpURLConnection.HTTP_UNAUTHORIZED);
    }
 else     if (bex.getErrorCode() == ErrorCode.NOT_FOUND) {
      return new HttpResponse(ExceptionHandler.getInstance().toJSON(bex),HttpURLConnection.HTTP_NOT_FOUND);
    }
 else {
      return new HttpResponse(ExceptionHandler.getInstance().toJSON(bex),HttpURLConnection.HTTP_INTERNAL_ERROR);
    }
  }
catch (  Exception ex) {
    BazaarException bazaarException=ExceptionHandler.getInstance().convert(ex,ExceptionLocation.BAZAARSERVICE,ErrorCode.UNKNOWN,"String_Node_Str");
    return new HttpResponse(ExceptionHandler.getInstance().toJSON(bazaarException),HttpURLConnection.HTTP_INTERNAL_ERROR);
  }
 finally {
    bazaarService.closeConnection(dalFacade);
  }
}

Fixed version (ground truth):
/** 
 * This method allows to create a new requirement.
 * @param requirement requirement as a JSON object
 * @return Response with the created requirement as a JSON object.
 */
@POST @Path("String_Node_Str") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value="String_Node_Str") @ApiResponses(value={@ApiResponse(code=HttpURLConnection.HTTP_CREATED,message="String_Node_Str"),@ApiResponse(code=HttpURLConnection.HTTP_UNAUTHORIZED,message="String_Node_Str"),@ApiResponse(code=HttpURLConnection.HTTP_NOT_FOUND,message="String_Node_Str"),@ApiResponse(code=HttpURLConnection.HTTP_INTERNAL_ERROR,message="String_Node_Str")}) public HttpResponse createRequirement(@ApiParam(value="String_Node_Str",required=true) @ContentParam String requirement){
  DALFacade dalFacade=null;
  try {
    long userId=((UserAgent)getActiveAgent()).getId();
    String registratorErrors=bazaarService.notifyRegistrators(EnumSet.of(BazaarFunction.VALIDATION,BazaarFunction.USER_FIRST_LOGIN_HANDLING));
    if (registratorErrors != null) {
      ExceptionHandler.getInstance().throwException(ExceptionLocation.BAZAARSERVICE,ErrorCode.UNKNOWN,registratorErrors);
    }
    dalFacade=bazaarService.createConnection();
    Gson gson=new Gson();
    Requirement requirementToCreate=gson.fromJson(requirement,Requirement.class);
    Integer internalUserId=dalFacade.getUserIdByLAS2PeerId(userId);
    requirementToCreate.setCreatorId(internalUserId);
    if (requirementToCreate.getLeadDeveloperId() == 0) {
      requirementToCreate.setLeadDeveloperId(1);
    }
    Vtor vtor=bazaarService.getValidators();
    vtor.useProfiles("String_Node_Str");
    vtor.validate(requirementToCreate);
    if (vtor.hasViolations()) {
      ExceptionHandler.getInstance().handleViolations(vtor.getViolations());
    }
    vtor.resetProfiles();
    for (    Component component : requirementToCreate.getComponents()) {
      component=dalFacade.getComponentById(component.getId());
      if (requirementToCreate.getProjectId() != component.getProjectId()) {
        ExceptionHandler.getInstance().throwException(ExceptionLocation.BAZAARSERVICE,ErrorCode.VALIDATION,"String_Node_Str");
      }
    }
    boolean authorized=new AuthorizationManager().isAuthorized(internalUserId,PrivilegeEnum.Create_REQUIREMENT,String.valueOf(requirementToCreate.getProjectId()),dalFacade);
    if (!authorized) {
      ExceptionHandler.getInstance().throwException(ExceptionLocation.BAZAARSERVICE,ErrorCode.AUTHORIZATION,Localization.getInstance().getResourceBundle().getString("String_Node_Str"));
    }
    Requirement createdRequirement=dalFacade.createRequirement(requirementToCreate,internalUserId);
    return new HttpResponse(gson.toJson(createdRequirement),HttpURLConnection.HTTP_CREATED);
  }
 catch (  BazaarException bex) {
    if (bex.getErrorCode() == ErrorCode.AUTHORIZATION) {
      return new HttpResponse(ExceptionHandler.getInstance().toJSON(bex),HttpURLConnection.HTTP_UNAUTHORIZED);
    }
 else     if (bex.getErrorCode() == ErrorCode.NOT_FOUND) {
      return new HttpResponse(ExceptionHandler.getInstance().toJSON(bex),HttpURLConnection.HTTP_NOT_FOUND);
    }
 else {
      return new HttpResponse(ExceptionHandler.getInstance().toJSON(bex),HttpURLConnection.HTTP_INTERNAL_ERROR);
    }
  }
catch (  Exception ex) {
    BazaarException bazaarException=ExceptionHandler.getInstance().convert(ex,ExceptionLocation.BAZAARSERVICE,ErrorCode.UNKNOWN,"String_Node_Str");
    return new HttpResponse(ExceptionHandler.getInstance().toJSON(bazaarException),HttpURLConnection.HTTP_INTERNAL_ERROR);
  }
 finally {
    bazaarService.closeConnection(dalFacade);
  }
}