Skip to content
Snippets Groups Projects
Commit dec99876 authored by Simon Künzel's avatar Simon Künzel
Browse files

py: Bugfixes

parent aa2e04bf
No related branches found
No related tags found
No related merge requests found
......@@ -246,7 +246,7 @@ class AbstractTransaction(ABC):
results.append(self.get_result(filled))
return tuple(results)
def _on_error_close_transaction(self):
def on_error_close_transaction(self):
# noinspection PyBroadException
try:
self._connection.execute_statements(
......@@ -264,18 +264,18 @@ class AbstractTransaction(ABC):
results = self._connection.execute_statements(self._queued_statements)
except DatabaseError as e:
if self._has_executed_statements or not self._connection.is_disconnected(force_ping=True):
self._on_error_close_transaction()
self.on_error_close_transaction()
raise e
if not self._connection.try_reconnect():
self._on_error_close_transaction()
self.on_error_close_transaction()
raise e
try:
results = self._connection.execute_statements(self._queued_statements)
except Exception as e:
self._on_error_close_transaction()
self.on_error_close_transaction()
raise e
except Exception as e:
self._on_error_close_transaction()
self.on_error_close_transaction()
raise e
self._has_executed_statements = True
......@@ -578,7 +578,7 @@ class DbConnectionPool:
transaction.close()
except Exception:
if transaction is not None and not transaction.is_closed():
transaction.close()
transaction.on_error_close_transaction()
raise
@contextmanager
......@@ -602,5 +602,5 @@ class DbConnectionPool:
transaction.rollback()
except Exception:
if transaction is not None and not transaction.is_closed():
transaction.rollback()
transaction.on_error_close_transaction()
raise
......@@ -418,7 +418,8 @@ class ObjectClass:
if object_variant not in self._variants_dict:
raise ApiClientException(ERROR_OBJECT_ERROR(f"Unknown variant {truncate_string(object_variant)}"))
try:
object_variant_db = self._variant_id_type.json_value_to_db(transaction, None, object_variant_json)
object_variant_db = self._variant_id_type.validate_and_convert_json_value(
transaction, None, object_variant_json)
except Exception as e:
raise RuntimeError(f"Variant {truncate_string(object_variant)} is declared as possible variant but "
f"variant type does not accept it") from e
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment