Database is MySQL 4.1.14
I have an Entity Bean that I know is not reentrant. I removed the EntityReentranceInterceptor from it's container's interceptor stack and now I am sometimes getting error messages when accessing the bean. The error I get is different each time. A selection are:
java.sql.SQLException: You have an error in your SQL syntax
javax.ejb.EJBException: Could not load field value: longDescription
java.sql.SQLException: Column Index out of range, 2 > 1
The Entity Bean is accessed from a Stateless Session Bean. To reproduce the error more frequently than I am seeing in my application, I created a little client app that creates 10 threads and kicks them off. Each retrieves the same entity from the server. I can quickly reproduce the error this way. The interceptor that the error comes out of is usually EntitySynchronizationInterceptor, but it sometimes makes it past the final interceptor (JDBCRelationInterceptor) but then falls over processing the result set.
Is the EntityReentranceInterceptor doing more than its name would suggest, and actually providing some fundamental locking that cannot be removed from the interceptor stack?