When marking an existing offline payment as completed (no recurring), it generates this same error, even with the latest patch.
Aug 03 01:09:16 [info] $backTrace = #0 public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Error.php(378): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 public_html/administrator/components/com_civicrm/civicrm/CRM/Utils/Type.php(476): CRM_Core_Error::fatal("One of parameters (value: ) is not of the type Integer")
#2 public_html/administrator/components/com_civicrm/civicrm/CRM/Core/DAO.php(1385): CRM_Utils_Type::validate(NULL, "Integer")
#3 public_html/administrator/components/com_civicrm/civicrm/CRM/Core/DAO.php(1302): CRM_Core_DAO::composeQuery("UPDATE civicrm_financial_item SET status_id = %1 WHERE entity_id = %2 and ent...", (Array:2), TRUE)
#4 public_html/administrator/components/com_civicrm/civicrm/CRM/Contribute/BAO/Contribution.php(3610): CRM_Core_DAO::executeQuery("UPDATE civicrm_financial_item SET status_id = %1 WHERE entity_id = %2 and ent...", (Array:2))
#5 public_html/administrator/components/com_civicrm/civicrm/CRM/Contribute/BAO/Contribution.php(3369): CRM_Contribute_BAO_Contribution::updateFinancialAccounts((Array:59), "changedStatus")
#6 public_html/administrator/components/com_civicrm/civicrm/CRM/Contribute/BAO/Contribution.php(234): CRM_Contribute_BAO_Contribution::recordFinancialAccounts((Array:59))
#7 public_html/administrator/components/com_civicrm/civicrm/CRM/Contribute/BAO/Contribution.php(508): CRM_Contribute_BAO_Contribution::add((Array:59), (Array:1))
#8 public_html/administrator/components/com_civicrm/civicrm/CRM/Contribute/Form/Contribution.php(1733): CRM_Contribute_BAO_Contribution::create((Array:59), (Array:1))
#9 public_html/administrator/components/com_civicrm/civicrm/CRM/Contribute/Form/Contribution.php(1041): CRM_Contribute_Form_Contribution->submit((Array:36), 2, NULL)
#10 public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Form.php(447): CRM_Contribute_Form_Contribution->postProcess()
#11 public_html/administrator/components/com_civicrm/civicrm/CRM/Core/QuickForm/Action/Upload.php(169): CRM_Core_Form->mainProcess()
#12 public_html/administrator/components/com_civicrm/civicrm/CRM/Core/QuickForm/Action/Upload.php(136): CRM_Core_QuickForm_Action_Upload->realPerform(Object(CRM_Contribute_Form_Contribution), "upload")
#13 public_html/administrator/components/com_civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Upload->perform(Object(CRM_Contribute_Form_Contribution), "upload")
#14 public_html/administrator/components/com_civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contribute_Form_Contribution), "upload")
Not sure what is the good practice here.