code: protected static File findValidWlpInstallPath(File searchDirectory, SelfExtractor extractor) {
          // Checks the supplied directory to see if it either IS a valid wlp install dir for this archive, or CONTAINS a valid wlp install dir
          // (For core, we'll usually break out right away, as any new directory is valid)
          if ((extractor.isProductAddon() || extractor.isUserSample()) && extractor.validate(searchDirectory) != ReturnCode.OK) {
              // If the install path wasn't valid, and we are installing a product add on it could be
              // that we have been given the same path as the runtime archive installer was given. In this
              // case liberty will actually be installed in the wlp subfolder so we need to check there too.
              File wlpSubdir = new File(searchDirectory, "wlp");
              ReturnCode rc = extractor.validate(wlpSubdir);
              // The validate call does two things, it checks to see if the provided dir is liberty install
              // and it also validates that the archive can be installed into it. If the wlp folder isn't a
              // valid liberty install then we need to return the searchDirectory. If it is a valid directory
              // but it isn't an applicable install we want to return wlpSubdir so a later call to validate
              // will result in the right error message.
              if (rc.getCode() == ReturnCode.BAD_OUTPUT && ("invalidInstall".equals(rc.getMessageKey()) || "LICENSE_invalidInstall".equals(rc.getMessageKey()))) {
                  return searchDirectory;
              } else {
                  return wlpSubdir;
              }
          }
          return searchDirectory;
      }
docs: TODO we should revisit this logic. The validate is doing more work than is required by this method.