Author: smarlow(a)redhat.com
Date: 2010-01-27 09:00:57 -0500 (Wed, 27 Jan 2010)
New Revision: 18644
Modified:
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java
Log:
HHH-4853 3.4.4.3 Lock Mode Properties and Uses, Vendor-specific hints must be ignored if
they are not understood.
Modified:
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java
===================================================================
---
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java 2010-01-27
09:26:42 UTC (rev 18643)
+++
core/trunk/entitymanager/src/main/java/org/hibernate/ejb/AbstractEntityManagerImpl.java 2010-01-27
14:00:57 UTC (rev 18644)
@@ -191,30 +191,35 @@
boolean extended = PessimisticLockScope.EXTENDED.equals( ( PessimisticLockScope )
lockScope );
options.setScope( extended );
}
- else {
+ else if ( lockScope != null ) {
throw new PersistenceException( "Unable to parse " +
AvailableSettings.LOCK_SCOPE + ": " + lockScope );
}
Object lockTimeout = props.get( AvailableSettings.LOCK_TIMEOUT );
- int timeout;
+ int timeout = 0;
+ boolean timeoutSet = false;
if ( lockTimeout instanceof String ) {
timeout = Integer.parseInt( ( String ) lockTimeout );
+ timeoutSet = true;
}
else if ( lockTimeout instanceof Integer ) {
timeout = ( Integer ) lockTimeout;
+ timeoutSet = true;
}
- else {
+ else if ( lockTimeout != null ) {
throw new PersistenceException( "Unable to parse " +
AvailableSettings.LOCK_TIMEOUT + ": " + lockTimeout );
}
- if ( timeout < 0 ) {
- options.setTimeOut( LockOptions.WAIT_FOREVER );
+ if ( timeoutSet != false ) {
+ if ( timeout < 0 ) {
+ options.setTimeOut( LockOptions.WAIT_FOREVER );
+ }
+ else if ( timeout == 0 ) {
+ options.setTimeOut( LockOptions.NO_WAIT );
+ }
+ else {
+ options.setTimeOut( timeout );
+ }
}
- else if ( timeout == 0 ) {
- options.setTimeOut( LockOptions.NO_WAIT );
- }
- else {
- options.setTimeOut( timeout );
- }
}
/**
Show replies by date