{"record":{"id":"65f186c32f2f2198","repo":"aosabook/500lines","slug":"database-closed","errorCode":null,"errorMessage":"Database closed.","messagePattern":"Database closed\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"data-store/code/dbdb/interface.py","lineNumber":13,"sourceCode":"from dbdb.binary_tree import BinaryTree\nfrom dbdb.physical import Storage\n\n\nclass DBDB(object):\n\n    def __init__(self, f):\n        self._storage = Storage(f)\n        self._tree = BinaryTree(self._storage)\n\n    def _assert_not_closed(self):\n        if self._storage.closed:\n            raise ValueError('Database closed.')\n\n    def close(self):\n        self._storage.close()\n\n    def commit(self):\n        self._assert_not_closed()\n        self._tree.commit()\n\n    def __getitem__(self, key):\n        self._assert_not_closed()\n        return self._tree.get(key)\n\n    def __setitem__(self, key, value):\n        self._assert_not_closed()\n        return self._tree.set(key, value)\n\n    def __delitem__(self, key):\n        self._assert_not_closed()","sourceCodeStart":1,"sourceCodeEnd":31,"githubUrl":"https://github.com/aosabook/500lines/blob/fba689d101eb5600f5c8f4d7fd79912498e950e2/data-store/code/dbdb/interface.py#L1-L31","documentation":"Error \"Database closed.\" thrown in aosabook/500lines.","triggerScenarios":"Thrown at data-store/code/dbdb/interface.py:13 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Do not call get/set/commit/delete after calling db.close().","Reopen the database with dbdb.connect(path) to continue using it.","Use a context manager (with dbdb.connect(...) as db) so close happens after all operations."],"exampleFix":"db = dbdb.connect('data.db'); db.commit(); db.close(); db = dbdb.connect('data.db')  # reopen instead of using the closed handle","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fba689d101eb5600f5c8f4d7fd79912498e950e2","analyzedAt":"2026-08-13T06:26:32.792Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}