code: 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);
          }
      }
docs: -------------