{"record":{"id":"cb824cdac24af8f3","repo":"hibernate/hibernate-orm","slug":"attempted-to-lock-a-deleted-instance","errorCode":null,"errorMessage":"attempted to lock a deleted instance","messagePattern":"attempted to lock a deleted instance","errorType":"exception","errorClass":"ObjectDeletedException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java","lineNumber":69,"sourceCode":"\t * requested mode, performing a pessimistic lock upgrade on a given entity, if needed.\n\t *\n\t * @param object The entity for which to upgrade the lock.\n\t * @param entry The entity's {@link EntityEntry} instance.\n\t * @param lockOptions Contains the requested lock mode.\n\t * @param session The session which is the source of the event being processed.\n\t */\n\tpublic static void upgradeLock(\n\t\t\t@Nonnull Object object,\n\t\t\t@Nonnull EntityEntry entry,\n\t\t\t@Nonnull LockOptions lockOptions,\n\t\t\t@Nonnull SharedSessionContractImplementor session) {\n\t\tfinal var requestedLockMode = lockOptions.getLockMode();\n\t\tif ( requestedLockMode.greaterThan( entry.getLockMode() ) ) {\n\t\t\t// Request is for a more restrictive lock than the lock already held\n\t\t\tfinal var persister = entry.getPersister();\n\n\t\t\tif ( entry.getStatus().isDeletedOrGone()) {\n\t\t\t\tthrow new ObjectDeletedException(\n\t\t\t\t\t\t\"attempted to lock a deleted instance\",\n\t\t\t\t\t\tentry.getId(),\n\t\t\t\t\t\tpersister.getEntityName()\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( LOADER_LOGGER.isTraceEnabled() ) {\n\t\t\t\tLOADER_LOGGER.tracef(\n\t\t\t\t\t\t\"Locking %s with id '%s' in mode %s\",\n\t\t\t\t\t\tpersister.getEntityName(),\n\t\t\t\t\t\tentry.getId(),\n\t\t\t\t\t\trequestedLockMode\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tCacheLock cacheLock = null;\n\t\t\ttry {\n\t\t\t\tfinal EntityEntry entryToLock = entry;","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java#L51-L87","documentation":"Error \"attempted to lock a deleted instance\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java:69 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Do not lock entities scheduled for deletion; check the entity state before locking."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}