ABSTRACT

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

EXPLANATION

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."

REFERENCES

[1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 574

[2] The Enterprise JavaBeans 2.1 Specification Sun Microsystems