Thread.sleep() in EJB bean considred as antipattern Thread.sleep() in an EJB, because "you should not create or manage threads"
But from EJB 3.1, there is Singleton for which we can define the ConcurrencyManagementType.BEAN. According to EJB spec:
With Bean Managed Concurrency demarcation, the container allows full concurrent access to the Singleton bean instance. It is the responsibility of the bean developer to guard its state as necessary against synchronization errors due to concurrent access. The bean developer is permitted to use the Java language level synchronization primitives such as synchronized and volatile for this purpose.
So if I want to implement method to wait one minute, could I use Thread.sleep() in such Singleton or maybe wait() with timeout, because it is synchronization primitive, or it is still will be considered as antipattern?