4.0.0 com.iluwatar java-design-patterns 1.0-SNAPSHOT double-checked-locking junit junit 3.8.1 test