diff --git a/core/src/main/java/org/hibernate/id/enhanced/OptimizerFactory.java b/core/src/main/java/org/hibernate/id/enhanced/OptimizerFactory.java index 9ee126b915..018ac36056 100644 --- a/core/src/main/java/org/hibernate/id/enhanced/OptimizerFactory.java +++ b/core/src/main/java/org/hibernate/id/enhanced/OptimizerFactory.java @@ -120,7 +120,7 @@ public class OptimizerFactory { } } - public Serializable generate(AccessCallback callback) { + public synchronized Serializable generate(AccessCallback callback) { if ( lastSourceValue < 0 ) { lastSourceValue = callback.getNextValue(); while ( lastSourceValue <= 0 ) { @@ -168,7 +168,7 @@ public class OptimizerFactory { } } - public Serializable generate(AccessCallback callback) { + public synchronized Serializable generate(AccessCallback callback) { if ( hiValue < 0 ) { value = callback.getNextValue(); if ( value < 1 ) {