I just made a change to help catch runtime problems that kept cropping 
up.  The change was to org.hibernate.mapping.Value#getColumnIterator.  
The problem is that code in many modules (hem, envers) that actually 
deals with mapping code were making a bad assumption here.  The returned 
iterator actually returns a Iterable<Selectable>, not Iterable<Column>.  
Selectable is the contract shared between Column and Formula.  So when 
code non-defensively tries to treat that thing as a Iterable<Column> we 
often have issues.

Yes, the method is very poorly named.  Actually it predates formula as a 
feature.  But be that as it may, the code casting those elements to 
Column are just wrong.

For envers, I am not actually sure how to handle Formula elements. I 
need some help there.  The issues are all isolated to 
org.hibernate.envers.configuration.internal.metadata  Could someone more 
familiar with envers (and especially its entity definition stuff) take a 
look?

Thanks!
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to