Hi,
I have just spent a couple of days trying to track down a possible fault when running the shipped Hibernate2.jar from v2.1.2 under IBM JDK1.3.1 in Websphere Studio.
Whilst loading the schema up via...
Code:
sessionFactory = new Configuration().configure().buildSessionFactory()
...it failed after loading only a couple of the 47 hbm.xml files.
I switched into debug mode and tracked it down to the following method in net.sf.hibernate.type.TypeFactory...
Code:
public static PersistentCollectionType set(String role) {
return new SetType(role);
}
...at which point the process just bombed out with no exceptions or any message of any sort. I tried setting breakpoints in the constructors of SetType and PersistentCollectionType to no avail.
Having then read a couple of postings mentioning IBM JDKs, I recompiled the Hibernate2.jar using the IBM compiler for JDK1.3.1 and tried again. Everything now works apart from the following strange message...
Code:
mmiVerifyTpAndGetWorkSize: stack_height=1 should be zero; exit
...which I believe is something to do with the multi-mode interpreter in the JVM (IBM's Hotspot equivalent).
Further to this, I compared the new .jar file to the original and found 3 files fewer in the IBM compiled version, all of which turned out to be anonymous inner classes...
net.sf.hibernate.impl.CriteriaImpl$1
net.sf.hibernate.property.BasicPropertyAccessor$1
net.sf.hibernate.util.IdentityMap$1
This is all a bit of a headache as one presumes that that a piece of java code will execute on any compliant JVM. From the above problems, this appears to be not the case. It would be interesting to see if a version compiled using IBMs javac, executes successfully on Sun's JVMs.
Regards
Chris