diff --git a/libgnucash/backend/sql/gnc-sql-column-table-entry.hpp b/libgnucash/backend/sql/gnc-sql-column-table-entry.hpp index 7ea6e93c94..926029a38c 100644 --- a/libgnucash/backend/sql/gnc-sql-column-table-entry.hpp +++ b/libgnucash/backend/sql/gnc-sql-column-table-entry.hpp @@ -187,6 +187,7 @@ public: void* pObject, T get_ref) const noexcept { + static QofLogModule log_module = G_LOG_DOMAIN; g_return_if_fail (pObject != NULL); try @@ -199,9 +200,19 @@ public: if (target != nullptr) set_parameter (pObject, target, get_setter(obj_name), m_gobj_param_name); + else + DEBUG("GUID %s returned null %s reference.", + val.c_str(), m_gobj_param_name); + } + else + { + if (val.empty()) DEBUG("Can't load empty guid string for column %s", m_col_name); + else DEBUG("Invalid GUID %s for column %s", val.c_str(), m_col_name); } } - catch (std::invalid_argument&) {} + catch (std::invalid_argument& err) { + DEBUG("set_parameter threw %s for column %s", err.what(), m_col_name); + } } diff --git a/libgnucash/backend/sql/gnc-transaction-sql.cpp b/libgnucash/backend/sql/gnc-transaction-sql.cpp index f794f67022..05ad24b7d2 100644 --- a/libgnucash/backend/sql/gnc-transaction-sql.cpp +++ b/libgnucash/backend/sql/gnc-transaction-sql.cpp @@ -239,6 +239,12 @@ load_single_split (GncSqlBackend* sql_be, GncSqlRow& row) qof_backend_set_error ((QofBackend*)sql_be, ERR_BACKEND_DATA_CORRUPT); pSplit = NULL; } + if (!xaccSplitGetAccount(pSplit)) + { + gchar guidstr[GUID_ENCODING_LENGTH + 1]; + guid_to_string_buff (qof_instance_get_guid (pSplit), guidstr); + PERR("Split %s created with no account!", guidstr); + } return pSplit; } static void