Why are you making the getXXX() methods as read only...
I am setting them as read-only because I do not want them to participate in the transaction, and because these methods do not modify data.
Try a more recent version of jboss, there were
bugs in the original application deadlock detection.
Also a read-only method does lock the bean for the
duration of the invocation. If you have already taken
a write lock on the bean, if will still do a full lock.