From: <one...@us...> - 2003-02-09 06:28:18
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv20713/hibernate/persister Modified Files: ClassPersister.java EntityPersister.java NormalizedEntityPersister.java Log Message: standardised on dom4j fixed bugs in collection caching (sometimes an exception occurred) allowed null discriminators set autocommit to true in SchemaUpdate collections now deserialize correctly Index: ClassPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/ClassPersister.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ClassPersister.java 28 Jan 2003 10:22:20 -0000 1.6 --- ClassPersister.java 9 Feb 2003 06:28:15 -0000 1.7 *************** *** 28,32 **** * @see EntityPersister */ ! public interface ClassPersister extends Serializable { /** --- 28,32 ---- * @see EntityPersister */ ! public interface ClassPersister { /** Index: EntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/EntityPersister.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** EntityPersister.java 2 Feb 2003 06:41:05 -0000 1.15 --- EntityPersister.java 9 Feb 2003 06:28:15 -0000 1.16 *************** *** 15,20 **** import net.sf.hibernate.mapping.Value; - import java.io.InvalidObjectException; - import java.io.ObjectStreamException; import java.io.Serializable; import java.sql.PreparedStatement; --- 15,18 ---- *************** *** 27,30 **** --- 25,29 ---- import java.util.Map; + import org.apache.commons.lang.ObjectUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; *************** *** 60,92 **** private final SessionFactoryImplementor factory; ! private transient final String qualifiedTableName; ! private transient final String[] tableNames; ! private transient final String deleteString; ! private transient final String insertString; ! private transient final String updateString; ! private transient final String identityInsertString; ! private transient final int[] propertyColumnSpans; ! private transient final boolean[] definedOnSubclass; ! private transient final String[][] propertyColumnNames; ! private transient final String[][] propertyColumnAliases; ! private transient final String[][] subclassPropertyColumnNameClosure; ! private transient final String discriminatorColumnName; ! private transient final String[] subclassColumnClosure; ! private transient final String[] subclassColumnAliasClosure; ! private transient final Type[] subclassPropertyTypeClosure; ! private transient final Class[] subclassClosure; ! private transient final boolean hasColumns; ! private transient final int[] joinedFetch; ! private transient final HashMap subclassesByDiscriminatorValue = new HashMap(); ! private transient final DiscriminatorType discriminatorType; ! private transient final String discriminatorSQLString; ! protected transient final Map loaders = new HashMap(); ! protected transient final Map lockers = new HashMap(); private static final String[] STRING_ARRAY = {}; --- 59,91 ---- private final SessionFactoryImplementor factory; ! private final String qualifiedTableName; ! private final String[] tableNames; ! private final String deleteString; ! private final String insertString; ! private final String updateString; ! private final String identityInsertString; ! private final int[] propertyColumnSpans; ! private final boolean[] definedOnSubclass; ! private final String[][] propertyColumnNames; ! private final String[][] propertyColumnAliases; ! private final String[][] subclassPropertyColumnNameClosure; ! private final String discriminatorColumnName; ! private final String[] subclassColumnClosure; ! private final String[] subclassColumnAliasClosure; ! private final Type[] subclassPropertyTypeClosure; ! private final Class[] subclassClosure; ! private final boolean hasColumns; ! private final int[] joinedFetch; ! private final HashMap subclassesByDiscriminatorValue = new HashMap(); ! private final DiscriminatorType discriminatorType; ! private final String discriminatorSQLString; ! protected final Map loaders = new HashMap(); ! protected final Map lockers = new HashMap(); private static final String[] STRING_ARRAY = {}; *************** *** 196,200 **** public Class getSubclassForDiscriminatorValue(Object value) { ! return (Class) subclassesByDiscriminatorValue.get(value); } --- 195,204 ---- public Class getSubclassForDiscriminatorValue(Object value) { ! if (value==null) { ! return (Class) subclassesByDiscriminatorValue.get(ObjectUtils.NULL); ! } ! else { ! return (Class) subclassesByDiscriminatorValue.get(value); ! } } *************** *** 617,622 **** try { discriminatorType = (DiscriminatorType) model.getDiscriminator().getType(); ! discriminatorValue = discriminatorType.stringToObject( model.getDiscriminatorValue() ); ! discriminatorSQLString = discriminatorType.objectToSQLString(discriminatorValue); } catch (ClassCastException cce) { --- 621,632 ---- try { discriminatorType = (DiscriminatorType) model.getDiscriminator().getType(); ! if ( "null".equals( model.getDiscriminatorValue() ) ) { ! discriminatorValue = null; ! discriminatorSQLString = "null"; ! } ! else { ! discriminatorValue = discriminatorType.stringToObject( model.getDiscriminatorValue() ); ! discriminatorSQLString = discriminatorType.objectToSQLString(discriminatorValue); ! } } catch (ClassCastException cce) { *************** *** 733,754 **** subclassClosure = new Class[subclassSpan]; subclassClosure[0] = mappedClass; ! if ( model.isPolymorphic() ) subclassesByDiscriminatorValue.put( discriminatorValue, mappedClass ); // SUBCLASSES ! iter = model.getSubclassIterator(); ! int k=1; ! while ( iter.hasNext() ) { ! Subclass sc = (Subclass) iter.next(); ! subclassClosure[k] = sc.getPersistentClass(); ! try { ! if ( model.isPolymorphic() ) subclassesByDiscriminatorValue.put( ! discriminatorType.stringToObject( sc.getDiscriminatorValue() ), ! sc.getPersistentClass() ! ); ! } ! catch (Exception e) { ! throw new MappingException("Error parsing discriminator value", e); } - k++; } --- 743,777 ---- subclassClosure = new Class[subclassSpan]; subclassClosure[0] = mappedClass; ! if ( model.isPolymorphic() ) { ! if (discriminatorValue==null) { ! subclassesByDiscriminatorValue.put(ObjectUtils.NULL, mappedClass); ! } ! else { ! subclassesByDiscriminatorValue.put(discriminatorValue, mappedClass); ! } ! } // SUBCLASSES ! if ( model.isPolymorphic() ) { ! iter = model.getSubclassIterator(); ! int k=1; ! while ( iter.hasNext() ) { ! Subclass sc = (Subclass) iter.next(); ! subclassClosure[k++] = sc.getPersistentClass(); ! if ( "null".equals( sc.getDiscriminatorValue() ) ) { ! subclassesByDiscriminatorValue.put( ObjectUtils.NULL, sc.getPersistentClass() ); ! } ! else { ! try { ! subclassesByDiscriminatorValue.put( ! discriminatorType.stringToObject( sc.getDiscriminatorValue() ), ! sc.getPersistentClass() ! ); ! } ! catch (Exception e) { ! throw new MappingException("Error parsing discriminator value", e); ! } ! } } } *************** *** 781,795 **** } ! ! Object readResolve() throws ObjectStreamException { ! try { ! return factory.getPersister( getMappedClass() ); ! } ! catch (MappingException me) { ! throw new InvalidObjectException( me.getMessage() ); ! } ! } ! ! public String[] getTableNames() { return tableNames; --- 804,808 ---- } ! public String[] getTableNames() { return tableNames; Index: NormalizedEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** NormalizedEntityPersister.java 2 Feb 2003 06:41:05 -0000 1.8 --- NormalizedEntityPersister.java 9 Feb 2003 06:28:15 -0000 1.9 *************** *** 14,19 **** import net.sf.hibernate.mapping.Table; - import java.io.InvalidObjectException; - import java.io.ObjectStreamException; import java.io.Serializable; import java.sql.PreparedStatement; --- 14,17 ---- *************** *** 62,107 **** private final SessionFactoryImplementor factory; ! private transient final String qualifiedTableName; ! private transient final String[] tableNames; ! private transient final String[][] tableKeyColumns; ! private transient final String[] subclassTableNameClosure; ! private transient final String[][] subclassTableKeyColumns; ! private transient final boolean[] isClassOrSuperclassTable; ! private transient final String[] deleteStrings; ! private transient final String[] insertStrings; ! private transient final String[] identityInsertStrings; ! private transient final String[] updateStrings; ! private transient final int[] joinedFetch; ! private transient final int[] propertyColumnSpans; ! private transient final int[] propertyTables; ! private transient final boolean[] hasColumns; ! private transient final String[][] propertyColumnNames; ! private transient final String[][] propertyColumnNameAliases; ! private transient final boolean[] definedOnSubclass; ! private transient final String[][] subclassPropertyColumnNameClosure; ! private transient final int[] subclassPropertyTableNumberClosure; ! private transient final String[] subclassColumnClosure; ! private transient final String[] subclassColumnClosureAliases; ! private transient final int[] subclassColumnTableNumberClosure; ! private transient final Type[] subclassPropertyTypeClosure; ! private transient final Class[] subclassClosure; ! private transient final HashMap tableNumberByPropertyPath = new HashMap(); ! private transient final HashMap subclassesByDiscriminatorValue = new HashMap(); ! private transient final String[] discriminators; ! private transient final String[] notNullColumns; ! private transient final int[] tableNumbers; ! private transient final DiscriminatorType discriminatorType; ! private transient final String discriminatorSQLString; ! private transient final String discriminatorColumnName; ! protected transient UniqueEntityLoader loader; ! //protected transient final Map loaders = new HashMap(); ! protected transient final Map lockers = new HashMap(); private static final String[] STRING_ARRAY = {}; --- 60,105 ---- private final SessionFactoryImplementor factory; ! private final String qualifiedTableName; ! private final String[] tableNames; ! private final String[][] tableKeyColumns; ! private final String[] subclassTableNameClosure; ! private final String[][] subclassTableKeyColumns; ! private final boolean[] isClassOrSuperclassTable; ! private final String[] deleteStrings; ! private final String[] insertStrings; ! private final String[] identityInsertStrings; ! private final String[] updateStrings; ! private final int[] joinedFetch; ! private final int[] propertyColumnSpans; ! private final int[] propertyTables; ! private final boolean[] hasColumns; ! private final String[][] propertyColumnNames; ! private final String[][] propertyColumnNameAliases; ! private final boolean[] definedOnSubclass; ! private final String[][] subclassPropertyColumnNameClosure; ! private final int[] subclassPropertyTableNumberClosure; ! private final String[] subclassColumnClosure; ! private final String[] subclassColumnClosureAliases; ! private final int[] subclassColumnTableNumberClosure; ! private final Type[] subclassPropertyTypeClosure; ! private final Class[] subclassClosure; ! private final HashMap tableNumberByPropertyPath = new HashMap(); ! private final HashMap subclassesByDiscriminatorValue = new HashMap(); ! private final String[] discriminators; ! private final String[] notNullColumns; ! private final int[] tableNumbers; ! private final DiscriminatorType discriminatorType; ! private final String discriminatorSQLString; ! private final String discriminatorColumnName; ! protected UniqueEntityLoader loader; ! //protected final Map loaders = new HashMap(); ! protected final Map lockers = new HashMap(); private static final String[] STRING_ARRAY = {}; *************** *** 927,939 **** columnNamesByPropertyPath.put(path, names); - } - - Object readResolve() throws ObjectStreamException { - try { - return factory.getPersister( getMappedClass() ); - } - catch (MappingException me) { - throw new InvalidObjectException( me.getMessage() ); - } } --- 925,928 ---- |