Here is singleton session bean example from Java EE tutorial:
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@Singleton
public class ExampleSingletonBean {
private String state;
@Lock(LockType.READ)
public String getState() {
return state;
}
@Lock(LockType.WRITE)
public void setState(String newState) {
state = newState;
}
}
How it is possible that private String state
field don't have to be volatile? How application server can guarantee that this reference never be cached thread-locally for different, simultaneous HTTP requests?