void addOrReplaceNodeCategory(final String foreignId, final RequisitionCategory category) {
   final Requisition req = getActiveRequisition(true);
   if (req != null) {
     final RequisitionNode node = req.getNode(foreignId);
     if (node != null) {
       req.updateDateStamp();
       node.putCategory(category);
       save(req);
     }
   }
 }
  /** {@inheritDoc} */
  @Override
  public Requisition addCategoryToNode(
      final String groupName, final String pathToNode, final String categoryName) {
    m_writeLock.lock();
    try {
      final Requisition group = getProvisioningGroup(groupName);

      final RequisitionNode node =
          PropertyUtils.getPathValue(group, pathToNode, RequisitionNode.class);

      // final int catCount = node.getCategoryCount();
      final RequisitionCategory category = new RequisitionCategory();
      category.setName(categoryName);
      node.putCategory(category);
      // Assert.isTrue(node.getCategoryCount() == (catCount + 1), "Category was not added
      // correctly");

      m_pendingForeignSourceRepository.save(group);
      m_pendingForeignSourceRepository.flush();
      return m_pendingForeignSourceRepository.getRequisition(groupName);
    } finally {
      m_writeLock.unlock();
    }
  }