{"record":{"id":"8481736eeba66fb9","repo":"hibernate/hibernate-orm","slug":"increment-size-cannot-be-less-than-1-848173","errorCode":null,"errorMessage":"increment size cannot be less than 1","messagePattern":"increment size cannot be less than 1","errorType":"exception","errorClass":"HibernateException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/id/enhanced/PooledLoThreadLocalOptimizer.java","lineNumber":41,"sourceCode":" * @author Scott Marlow\n * @author Steve Ebersole\n * @see PooledOptimizer\n */\npublic class PooledLoThreadLocalOptimizer extends AbstractOptimizer {\n\n\tprivate final ThreadLocal<GenerationState> singleTenantState = ThreadLocal.withInitial( GenerationState::new );\n\tprivate final ThreadLocal<Map<String, GenerationState>> multiTenantStates = ThreadLocal.withInitial( HashMap::new );\n\n\t/**\n\t * Constructs a {@code PooledLoThreadLocalOptimizer}.\n\t *\n\t * @param returnClass The Java type of the values to be generated\n\t * @param incrementSize The increment size.\n\t */\n\tpublic PooledLoThreadLocalOptimizer(Class<?> returnClass, int incrementSize) {\n\t\tsuper( returnClass, incrementSize );\n\t\tif ( incrementSize < 1 ) {\n\t\t\tthrow new HibernateException( \"increment size cannot be less than 1\" );\n\t\t}\n\t\tOPTIMIZER_MESSAGE_LOGGER.creatingPooledLoOptimizer( incrementSize, returnClass.getName() );\n\t}\n\n\t@Override\n\tpublic Serializable generate(AccessCallback callback) {\n\t\treturn locateGenerationState( callback.getTenantIdentifier() )\n\t\t\t\t.generate( callback, incrementSize, returnClass );\n\t}\n\n\tprivate GenerationState locateGenerationState(String tenantIdentifier) {\n\t\tif ( tenantIdentifier == null ) {\n\t\t\treturn singleTenantState.get();\n\t\t}\n\t\telse {\n\t\t\tvar states = multiTenantStates.get();\n\t\t\tvar state = states.get( tenantIdentifier );\n\t\t\tif ( state == null ) {","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/id/enhanced/PooledLoThreadLocalOptimizer.java#L23-L59","documentation":"Error \"increment size cannot be less than 1\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown when an identifier optimizer is configured with an increment size smaller than 1.","commonSituations":"Typical situations: setting hibernate.id.optimizer or allocationSize to 0 or a negative value; a mismatched sequence increment combined with an invalid optimizer configuration.","solutions":["Set the generator increment size (allocationSize) to a value >= 1."],"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"}