I appear to be getting closer to the source of the probelm
The ClassCircularityError is originating from a call to a Castor generated classes unmarshall method!
Commenting out this code makes all the other errors disappear! However I am still not sure why this is happening.
The call to unmarshall is located in a class called from a Stateless Session Bean which is in turn called from an MDB. The issue occurs when more than one session bean attempts to unmarshall at the same time (as far as I can tell).
If anyone has come accross a similar probelm please let me know!
I am using the Sun JDK 1.4.0_02 for Solaris