Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/id
In directory sc8-pr-cvs1:/tmp/cvs-serv30148/hibernate/id
Modified Files:
SequenceHiLoGenerator.java TableHiLoGenerator.java
Log Message:
fixed bugs in hi/lo generators (Maarten Coene)
Index: SequenceHiLoGenerator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/id/SequenceHiLoGenerator.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** SequenceHiLoGenerator.java 25 Mar 2003 13:49:35 -0000 1.7
--- SequenceHiLoGenerator.java 2 Apr 2003 02:49:07 -0000 1.8
***************
*** 36,40 ****
private static final Log log = LogFactory.getLog(SequenceHiLoGenerator.class);
! private int maxLoValue;
private int lo;
private long hi;
--- 36,40 ----
private static final Log log = LogFactory.getLog(SequenceHiLoGenerator.class);
! private int maxLo;
private int lo;
private long hi;
***************
*** 43,47 ****
public void configure(Type type, Properties params, Dialect d) throws MappingException {
super.configure(type, params, d);
! lo = maxLoValue = PropertiesHelper.getInt(MAX_LO, params, 9);
returnClass = type.getReturnedClass();
}
--- 43,48 ----
public void configure(Type type, Properties params, Dialect d) throws MappingException {
super.configure(type, params, d);
! maxLo = PropertiesHelper.getInt(MAX_LO, params, 9);
! lo = maxLo + 1; // so we "clock over" on the first invocation
returnClass = type.getReturnedClass();
}
***************
*** 49,56 ****
public synchronized Serializable generate(SessionImplementor session, Object obj) throws SQLException, HibernateException {
! if ( lo>maxLoValue ) {
long hival = ( (Number) super.generate(session, obj) ).longValue();
lo = 1;
! hi = hival * ( maxLoValue+1 );
log.debug("new hi value: " + hival);
}
--- 50,57 ----
public synchronized Serializable generate(SessionImplementor session, Object obj) throws SQLException, HibernateException {
! if ( lo>maxLo ) {
long hival = ( (Number) super.generate(session, obj) ).longValue();
lo = 1;
! hi = hival * ( maxLo+1 );
log.debug("new hi value: " + hival);
}
Index: TableHiLoGenerator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/id/TableHiLoGenerator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** TableHiLoGenerator.java 25 Mar 2003 13:49:43 -0000 1.4
--- TableHiLoGenerator.java 2 Apr 2003 02:49:07 -0000 1.5
***************
*** 48,52 ****
public void configure(Type type, Properties params, Dialect d) {
super.configure(type, params, d);
! lo = maxLo = PropertiesHelper.getInt(MAX_LO, params, Short.MAX_VALUE);
returnClass = type.getReturnedClass();
}
--- 48,53 ----
public void configure(Type type, Properties params, Dialect d) {
super.configure(type, params, d);
! maxLo = PropertiesHelper.getInt(MAX_LO, params, Short.MAX_VALUE);
! lo = maxLo + 1; // so we "clock over" on the first invocation
returnClass = type.getReturnedClass();
}
|