If you want to make this method thread safe then both if(workingCopy == null) and workingCopy = ... should be in the same synchronized block.