I am currently getting ApplicationDeadlockExceptions being thrown. I am familiar with the reasons why deadlock can occur, however I am a little confused as to when entity beans are being locked.
The stack trace for the exception shows that it originates from a method getY on my entity bean X called from a session bean method. I have marked all get* methods as being read-only. Y however is a CMR field, and the only method called before X.getY in my session beans method is a finder that returns the X entity bean. Does this mean the finder method is locking and also the getY method on the X entity bean is locking?
sample code
public void MySessionMethod( String pk ) { XLocal x = getXLocalHome().findByPrimaryKey(pk); YLocal y = x.getY(); ... }