public List<String> getSmartPackageList() { if (smartPackageList != null) { return smartPackageList; } synchronized (this) { if (smartPackageList != null) { return smartPackageList; } final List<String> pkgList = new ArrayList<String>(3); pkgList.add(getSmartPackage1()); pkgList.add(getSmartPackage2()); pkgList.add(getSmartPackage3()); smartPackageList = pkgList.stream().filter(pkg -> pkg != null).collect(Collectors.toList()); return Collections.unmodifiableList(smartPackageList); } }