EJB Bad Practices: Use of Synchronization Primitives

Abstract
The program violates the Enterprise JavaBeans specification by using thread synchronization primitives.

Description
The Enterprise JavaBeans specification requires that every bean provider follow a set of programming guidelines designed to ensure that the bean will be portable and behave consistently in any EJB container [1].

In this case, the program violates the following EJB guideline:

"An enterprise bean must not use thread synchronization primitives to synchronize execution of multiple instances." A requirement that the specification justifies in the following way:

"This rule is required to ensure consistent runtime semantics because while some EJB containers may use a single JVM to  execute all enterprise bean's instances, others may distribute the instances across multiple JVMs."